Files
zapstore/README.md
T

2.2 KiB

Zapstore

Release Kotlin Compose

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 wiring
  • iolite/ — 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.