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

1.7 KiB

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

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