F-Droid's RFP scanner flagged the repo for missing Fastlane metadata (https://gitlab.com/fdroid/rfp/-/work_items/4395#note_3827250669): without it, F-Droid can't show app screenshots and description edits require going through the F-Droid team directly. Screenshots are symlinked from docs/assets/screenshots/android/ rather than duplicated, keeping one source of truth. Also drops the stock fastlane .gitignore rule that was silently excluding these PNGs -- unlike Play Store screenshots, F-Droid reads them straight from the repo with no separate regeneration step, so they're meant to be committed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FXcrACM5sok3M1KQJ8kByy
SatsPrice
This app fetches the price of Bitcoin relative to common fiat currencies from multiple sources, and converts inputted amounts between Sats, BTC, and the selected fiat currency.
Download and Install
Supported Platforms
iOS 16.0+ • macOS 13.0+ • Android 7.0+
Screenshots
Android
iPhone
iPad
macOS
Kotlin Multiplatform
This is a Kotlin Multiplatform project targeting Android, iOS, macOS, Web, and Desktop (JVM).
-
/shared contains almost the entire app — UI (built with Compose Multiplatform), view models, data sources, and domain logic. commonMain holds code shared by every target, alongside platform-specific source sets:
androidMain,jvmMain(Desktop),appleMain(iOS and macOS), andwebMain(JS and Wasm). -
/androidApp, /desktopApp, and /webApp are thin launcher shells around
shared's Compose UI. -
/iosApp is a native SwiftUI app (shared across iOS and macOS), not Compose — it talks to
sharedthrough a hand-written bridge rather than rendering Compose directly.
Running the apps
Use the run configurations provided by the run widget in your IDE's toolbar. You can also use these commands and options:
- Android app:
./gradlew :androidApp:assembleDebug - Desktop app:
- Hot reload:
./gradlew :desktopApp:hotRun --auto - Standard run:
./gradlew :desktopApp:run
- Hot reload:
- Web app:
- Wasm target (faster, modern browsers):
./gradlew :webApp:wasmJsBrowserDevelopmentRun - JS target (slower, supports older browsers):
./gradlew :webApp:jsBrowserDevelopmentRun
- Wasm target (faster, modern browsers):
- iOS app: open the /iosApp directory in Xcode and run it from there.
Running tests
Use the run button in your IDE's editor gutter, or run tests using Gradle tasks:
- Android tests:
./gradlew :shared:testAndroidHostTest - Desktop tests:
./gradlew :shared:jvmTest - Web tests:
- Wasm target:
./gradlew :shared:wasmJsTest - JS target:
./gradlew :shared:jsTest
- Wasm target:
- iOS tests:
./gradlew :shared:iosSimulatorArm64Test
Attribution
This project uses Kotlin Multiplatform, Compose Multiplatform, and Kotlin/Wasm.
The Bitcoin Calculator icon was created by Icon home and licensed as free for personal and commercial use with attribution.
The following free APIs are used:
- Coinbase
- CoinGecko































