app-store-android/README.md
Jarian Cottingham 2f8187832e Initial commit: App Store Android client
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.
2026-08-21 18:35:50 +00:00

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
```