Convert SatsPrice to a Skip multiplatform app
This commit is contained in:
45
README.md
45
README.md
@@ -2,14 +2,49 @@
|
||||
|
||||
This app fetches the price of Bitcoin relative to the United States Dollar from multiple sources, and converts inputted amounts between Sats, BTC, and USD.
|
||||
|
||||
## Notes
|
||||
This is a free [Skip](https://skip.tools) dual-platform app project.
|
||||
It builds a native app for both iOS and Android.
|
||||
|
||||
Precision is attempted to be kept up to 20 digits.
|
||||
## Building
|
||||
|
||||
When NaN is displayed, it means "not a number", which can be caused by invalid input or problems fetching the price of Bitcoin from the selected source.
|
||||
This project is both a stand-alone Swift Package Manager module,
|
||||
as well as an Xcode project that builds and transpiles the project
|
||||
into a Kotlin Gradle project for Android using the Skip plugin.
|
||||
|
||||
Building the module requires that Skip be installed using
|
||||
[Homebrew](https://brew.sh) with `brew install skiptools/skip/skip`.
|
||||
|
||||
This will also install the necessary transpiler prerequisites:
|
||||
Kotlin, Gradle, and the Android build tools.
|
||||
|
||||
Installation prerequisites can be confirmed by running `skip checkup`.
|
||||
|
||||
## Testing
|
||||
|
||||
The module can be tested using the standard `swift test` command
|
||||
or by running the test target for the macOS destination in Xcode,
|
||||
which will run the Swift tests as well as the transpiled
|
||||
Kotlin JUnit tests in the Robolectric Android simulation environment.
|
||||
|
||||
Parity testing can be performed with `skip test`,
|
||||
which will output a table of the test results for both platforms.
|
||||
|
||||
## Running
|
||||
|
||||
Xcode and Android Studio must be downloaded and installed in order to
|
||||
run the app in the iOS simulator / Android emulator.
|
||||
An Android emulator must already be running, which can be launched from
|
||||
Android Studio's Device Manager.
|
||||
|
||||
To run both the Swift and Kotlin apps simultaneously,
|
||||
launch the SatsPriceApp target from Xcode.
|
||||
A build phases runs the "Launch Android APK" script that
|
||||
will deploy the transpiled app a running Android emulator or connected device.
|
||||
Logging output for the iOS app can be viewed in the Xcode console, and in
|
||||
Android Studio's logcat tab for the transpiled Kotlin app.
|
||||
|
||||
## Attribution
|
||||
|
||||
The [Bitcoin Calculator](https://www.flaticon.com/free-icons/bitcoin-calculator) icon was created by Icon home and licensed as free for personal and commercial use with attribution.
|
||||
This project depends on [Skip](https://skip.tools) to build as a multi-platform app.
|
||||
|
||||
This project depends on [BigDecimal](https://github.com/mgriebling/BigDecimal), an MIT-licensed package for providing arbitrary-precision and fixed-precision decimal arithmetic in Swift.
|
||||
The [Bitcoin Calculator](https://www.flaticon.com/free-icons/bitcoin-calculator) icon was created by Icon home and licensed as free for personal and commercial use with attribution.
|
||||
|
||||
Reference in New Issue
Block a user