Ikar Android Kotlin
Отдельный Android-клиент на Kotlin/Jetpack Compose, создаваемый как поэтапная замена текущего MAUI-клиента.
Что уже перенесено в этом проекте:
- базовая Gradle/Android-структура
- Compose-приложение с экранами
Login,Chats,Chat - HTTP-клиент к
ikar.kusoft.xyz - хранение сессии
- прямой Android update manifest через
argus.kusoft.xyz - базовая модель данных, совместимая с текущими DTO
Ikar.Shared
Что еще не перенесено:
- push/FCM
- SignalR realtime и звонки
- запись и проигрывание voice notes
- загрузка вложений и аватаров в полном объеме
- контакты телефона, профиль, настройки, боты и остальная функциональность MAUI-клиента
Текущее состояние нужно считать рабочим стартом переписывания, а не полным feature parity.
Подготовка к публикации в Argus
- Локальная release-подпись хранится в gitignored файлах
argus-signing.local.propertiesиsigning/. - Единая координата публикации для клиента Икар: slug
ikar-android, channelstable, platformandroid. Именно этот manifest запрашивают текущий Android-клиент и серверный proxy обновлений. - Публикация новых версий в Argus выполняется только по инструкции
G:\Repos\Marketplace\ARGUS_PUBLICATION.md. У Argus больше нет HTTP admin API/upload endpoint для публикации: файл релиза передается на Pi по SSH, кладется в/srv/argus-data/Packages, а запись релиза добавляется в/srv/argus-data/argus.db. - Первый запуск локального signing pipeline:
.\scripts\new-argus-upload-keystore.ps1
- Подготовка signed APK и metadata JSON для Argus:
.\scripts\prepare-argus-publication.ps1
- Публикация уже подготовленного APK:
.\scripts\publish-release.ps1 -SshPassword "<ssh-password>" -Slug "ikar-android" -Name "Ikar" -Summary "<summary>" -Description "<description>" -Version "<version>" -PackagePath "<apk>"
Скрипт подготовки собирает release APK, проверяет подпись и извлекает из самого APK:
androidPackageNameandroidVersionCodeversiontargetSdkVersion- ABI/
platform
После этого он складывает готовый APK и metadata JSON в build/argus-publication/v<versionCode>/.