Files
pipu-music/apps/mobile/app.config.ts
T
mrleo1nidandClaude Opus 5.5 9fd616da57
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m39s
ci / contract / contract (сгенерированный код совпадает с openapi.yaml) (push) Successful in 1m2s
ci / ts / ts (packages + web) (push) Successful in 1m5s
ci / docker / docker (образы собираются — их сервер собирает сам при обновлении) (push) Successful in 39s
feat(mobile): sign-in, tabs, search, collection and background player (M5)
- expo-router app in src/app: connect (server check, recent servers),
  login, mandatory credential / password change, tabs Home / Search /
  Collection / Profile, album and artist pages, full-screen player
- AuthSession per server with the refresh token in expo-secure-store
  (Android Keystore); language from the profile
- player on react-native-track-player: ExoPlayer queue with a
  notification and lock-screen controls via a playback service, 500 MB
  stream cache, quality by network (Wi-Fi high, cellular medium),
  play events with played time, reactions, playback state restore and
  the endless My Wave with feedback
- home: pulsing wave circle driven by BPM / energy in the cover
  palette, activity and mood chips that switch the wave on the fly
- New Architecture is off until react-native-track-player supports it;
  the release build runs codegen only when it is on; query-string is a
  direct dependency because expo-router 5.1 imports it undeclared

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:48:55 +03:00

38 lines
1.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { ConfigContext, ExpoConfig } from 'expo/config';
// Версию проставляет CI из git-тега (scripts/version.mjs): PIPU_VERSION=1.2.3, PIPU_VERSION_CODE=1020399.
const version = process.env.PIPU_VERSION ?? '0.0.0';
const versionCode = Number(process.env.PIPU_VERSION_CODE ?? '1');
export default ({ config }: ConfigContext): ExpoConfig => ({
...config,
name: 'Pipu Music',
slug: 'pipu-music',
scheme: 'pipu',
version,
orientation: 'portrait',
userInterfaceStyle: 'automatic',
// react-native-track-player 4 не поддерживает New Architecture (React Native Directory) — фоновое
// воспроизведение и уведомление важнее; вернём, когда плеер её поддержит (docs/mobile.md).
newArchEnabled: false,
backgroundColor: '#05070D',
android: {
package: 'app.pipu.music',
versionCode,
edgeToEdgeEnabled: true,
allowBackup: false,
permissions: ['REQUEST_INSTALL_PACKAGES'],
},
platforms: ['android'],
plugins: [
// Маршруты — файлы в src/app (docs/mobile.md).
['expo-router', { root: './src/app' }],
'expo-secure-store',
// Сервер часто живёт в домашней сети без TLS (http://192.168.1.10:8080), а release-сборка
// Android по умолчанию запрещает незашифрованный HTTP.
['expo-build-properties', { android: { usesCleartextTraffic: true } }],
],
extra: { versionCode },
experiments: { typedRoutes: false },
});