Something went wrong. Try again.
Monorepo for Aesthetic.Computer aesthetic.computer
Something went wrong. Try again.
README.md
# Aesthetic Computer - Android App
Native Android wrapper for [aesthetic.computer](https://aesthetic.computer).
## Build Flavors
This project has two build flavors:
| Flavor | App ID | Purpose |
|--------|--------|---------|
| **consumer** | `computer.aesthetic` | Play Store distribution |
| **kiosk** | `computer.aesthetic.kiosk` | Dedicated device installations |
### Consumer Flavor
Simple WebView app that loads `https://aesthetic.computer`. For Google Play Store distribution.
Features:
- Clean WebView wrapper
- Camera/microphone permissions for pieces that need them
- Deep linking for `aesthetic.computer/*` URLs
- Splash screen with purple branding
### Kiosk Flavor
Device owner mode app for dedicated installations (art exhibits, kiosks, etc).
Features:
- Local HTTPS server with self-signed SSL
- Device admin/owner mode for lock task
- Boot receiver for auto-start
- Blocks back/home buttons
- Hides system UI
## Building
### GitHub Actions (Recommended)
The easiest way to build is via GitHub Actions:
1. **Automatic builds**: Push changes to `android/` on `main` branch
2. **Manual builds**: Go to Actions → "Android Build" → Run workflow
- Choose `debug` or `release`
- Choose `consumer`, `kiosk`, or `all`
3. **Download APKs**: From the workflow run artifacts
APKs are available as downloadable artifacts for 30 days (debug) or 90 days (release).
### Local Build Prerequisites
- Java 17+ (`brew install openjdk@17` on Mac)
- Android SDK (via Android Studio or standalone)
- Set `ANDROID_HOME` environment variable
- **Note**: Building in the devcontainer won't work (ARM64 can't run x86_64 Android SDK tools)
### Build Commands
```bash
cd android
# Consumer (Play Store)
./gradlew assembleConsumerDebug # Debug APK
./gradlew assembleConsumerRelease # Release APK (needs signing)
# Kiosk (Device installations)
./gradlew assembleKioskDebug
./gradlew assembleKioskRelease
# Build both
./gradlew assembleDebug
./gradlew assembleRelease
```
### Output Locations
```
app/build/outputs/apk/consumer/de…