# QKeep / КуЗаметки Android notes app published as QKeep and shown on Android as КуЗаметки. It stores notes locally, supports pinned notes, formatted text notes, checklist notes with configurable list behavior, image and drawing notes, voice notes, labels, QSfera collaborators, timed reminders, search filters by note type and color, sending notes to other Android apps, manual card ordering, archive and trash sections, and syncs them with the Keeper Notes REST service in `G:\Repos\QSfera\Server\services\keepernotes`. ## Build The project follows the same baseline as `G:\Repos\QSfera\Android`: Android Gradle Plugin 8.7.2, Kotlin 1.9.20, compile SDK 35, target SDK 35, min SDK 26, and Java 17. ```powershell $env:JAVA_HOME='C:\Program Files\Android\Android Studio\jbr' $env:ANDROID_HOME='C:\Users\seven\AppData\Local\Android\Sdk' $env:ANDROID_SDK_ROOT=$env:ANDROID_HOME .\gradlew.bat :keeperApp:assembleDebug ``` The default backend URL is `https://qsfera.kusoft.xyz/keeper-notes`. The default QSfera cloud used for first-run authorization is `https://qsfera.kusoft.xyz`. To use another backend URL: ```powershell .\gradlew.bat :keeperApp:assembleDebug -PkeeperApiBaseUrl=https://example.org ``` To use another QSfera cloud URL for authorization: ```powershell .\gradlew.bat :keeperApp:assembleDebug -PqsferaCloudBaseUrl=https://qsfera.example.org ``` ## Server From `G:\Repos\QSfera\Server`: ```powershell go run .\services\keepernotes\cmd\keepernotes -addr :8098 -data .\keeper-notes.json ``` ## Publish to Argus Argus publication follows `G:\Repos\Marketplace\ARGUS_PUBLICATION.md`: copy the APK over SSH, then insert release metadata into `/srv/argus-data/argus.db` on the Argus host. The app must only use the public read-only manifest API for updates. Build the APK, then run: ```powershell .\scripts\publish-argus.ps1 ``` Default publish metadata: * slug: `keeper-android` * package: `eu.qsfera.keeper` * name: `QKeep` * Android label: `КуЗаметки` * version: `0.1.22` * Android version code: `23` * channel: `stable`