Carved out from the app-store monorepo. Kotlin + Material 3 client that browses the private distribution server and installs APKs via PackageInstaller. Keystore password redacted from docs.
App Store — Android
Kotlin Android client for the App Store project: browses a private app distribution server on your network and installs APKs directly via PackageInstaller — Material Design 3 UI with a Room database for app metadata.
Part of the App Store project:
| Repo | What it is |
|---|---|
| app-store | FastAPI distribution server (APKs + metadata + web frontend) |
Features
- Browse all apps from the store server in a Material 3 grid
- Search and filter apps
- View app details: description, permissions, screenshots
- Download and install APKs directly (PackageInstaller, no Play Store)
- Configurable server address (Settings screen)
- Room database for cached app metadata
Building
Prerequisites: Java 17, Android SDK (platform-tools, build-tools 34.0.0, platforms android-34).
# Configure SDK path (adjust to your SDK location)
echo "sdk.dir=/path/to/android-sdk" > local.properties
# Build debug APK
./gradlew :app:assembleDebug
# Build release APK (signed with your store keystore)
./gradlew :app:assembleRelease
APKs are output to app/build/outputs/apk/.
First Run
- Open the app → Settings
- Enter your server address (e.g.
http://192.168.1.50:8080) - Browse and install
Distributing Apps to the Store
See UPLOAD_APP.md and UPLOAD_APP_REMOTE.md for the build → sign → upload workflow.
Project Structure
.
├── app/
│ └── src/main/
│ ├── kotlin/ # Android app sources
│ └── res/ # Resources, Material 3 theme
├── build.gradle
├── settings.gradle
├── gradle.properties
└── gradlew
Description
Languages
Kotlin
100%