3.3 KiB
Разработка
Toolchain
Текущая версия проекта:
- Android Studio Quail 1 (2026.1.1) или новее
- Gradle 8.13
- Android Gradle Plugin 8.13.0
- Kotlin 2.3.21
- Compose BOM 2026.06.00
- compileSdk 36
- minSdk 26
- Java 17 target
- Room 2.8.4
- Lifecycle 2.10.0
Проект не использует сторонние runtime-библиотеки вне стандартного Android/Jetpack stack.
Запуск
Откройте BalanceAndroid/ в Android Studio.
Затем:
- Gradle Sync.
- Установить Android SDK Platform 36.
- Создать/подключить Android 8+ устройство или emulator.
- Запустить configuration
app.
CLI
./gradlew test assembleDebug
Полная чистая проверка:
./gradlew clean test assembleDebug
Проверить JVM:
./gradlew --version
Используется Java 17–23; bytecode target — Java 17.
SDK
Можно использовать:
export ANDROID_HOME="/path/to/Android/Sdk"
export ANDROID_SDK_ROOT="$ANDROID_HOME"
или local.properties:
sdk.dir=/home/USER/Android/Sdk
local.properties не должен попадать в Git.
Unit tests
Тесты находятся в:
app/src/test/
Основной текущий тестовый класс:
FinanceMathTest
Тестируй отдельно:
- balance;
- period summary;
- adjustment exclusion;
- spending grouping;
- edge cases around period boundaries.
Local development
Приложение работает без сервера. Локальные данные хранятся в Room.
Для Android Emulator host server:
http://10.0.2.2:8080
Для физического Android device localhost указывает на сам телефон, поэтому нужен доступный по сети HTTPS endpoint.
Application ID
Текущий пример:
com.example.balanceandroid
Перед Google Play release замени его на уникальный production application ID.
Release checklist
- Production applicationId.
- Release signing key.
- HTTPS server.
- Проверен backup/data extraction policy.
- Проверена миграция Room.
- Проверена background sync.
- Проверена авторизация и token refresh.
- Нет секретов в APK source/config.
./gradlew clean test assembleDebugпроходит.
Troubleshooting
Gradle не находит SDK
Проверь ANDROID_HOME, ANDROID_SDK_ROOT или local.properties.
Неверная Java
Android Studio → Gradle JDK → Embedded JDK.
Нужна Java 17–23.
Старый Gradle daemon
./gradlew --stop
./gradlew clean test assembleDebug
Sync не работает
Проверь:
- server URL;
- HTTPS/local HTTP rule;
- login/session;
- network connection;
- cursor/lastPush;
- совместимость BalanceServer protocol.
Данные не удаляются на другом устройстве
Убедись, что вызывается FinanceDao.deleteTransaction/deleteCategory/deleteBudget, а не delete*Direct.