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.
60 lines
1.7 KiB
Markdown
60 lines
1.7 KiB
Markdown
# 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](https://git.jarianc.com/jarianc/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).
|
|
|
|
```bash
|
|
# 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
|
|
|
|
1. Open the app → Settings
|
|
2. Enter your server address (e.g. `http://192.168.1.50:8080`)
|
|
3. Browse and install
|
|
|
|
## Distributing Apps to the Store
|
|
|
|
See [UPLOAD_APP.md](UPLOAD_APP.md) and [UPLOAD_APP_REMOTE.md](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
|
|
```
|