2.2 KiB
Zapstore
Zapstore is an open Android app store where apps can be published directly by developers and curated by communities.
It combines app discovery, publisher identity, direct APK distribution, and social trust signals into a different model for Android app distribution.
This repo is the Kotlin / Jetpack Compose client for Zapstore. Catalog listings, curated stacks, releases, and publisher profiles sync from Nostr relays through the local iolite module.
Get the app
The production APK is still published from the Flutter client. This tree is the Kotlin rewrite (dev.zapstore.beta).
GitHub Releases · zapstore.dev
Requirements
- JDK 21
- Android SDK (compile / target API 37, min SDK 29)
- A device or emulator for
make run
Build from source
make build
That runs ./gradlew assembleDebug. The debug APK lands in build/outputs/apk/debug/.
make emulator # Pixel_9 AVD (created on first run)
make run # installDebug, launch, then press r to rebuild
Or call Gradle directly:
./gradlew assembleDebug
./gradlew installDebug
./gradlew test
./gradlew test runs unit tests for the app and iolite. Instrumented UI tests need a connected device or emulator:
./gradlew connectedDebugAndroidTest
Layout
src/main/kotlin/dev/zapstore/app/— Compose UI, navigation, view models, and catalog wiringiolite/— local-first Nostr client (SQLite event store, relay sessions, outbox routing) on top of Quartz
Contributing
Minor fixes: PRs welcome. For larger changes, please reach out first while the project is in beta.