Your gateway to the world of Bitcoin Cash (BCH) apps.
Badger Mobile Wallet is a Bitcoin Cash (BCH) and Simple Ledger Protocol (SLP) wallet. Designed to be simple and straightforward to highlight exciting world of BCH and SLP.
Feature Highlights
BCH Wallet
Wallet on 145 derivation path
Multi-currency fiat conversions for display
SLP vault
Wallet on 245 derivation path
All of your SLP tokens in one place
BIP70 support
BCH
SLP
Paper wallet wif sweeping
BCH - Bitcoin Cash paper wallets
SLP - Simple Token paper wallets
Application Overview
Primary Technology
react-native
redux
react-navigation
styled-components
bcash (Bitcoin Cash version of bcoin)
prettier
yarn
TypeScript
File Structure
/
Configuration files and project setup
assets/
Images and fonts packaged with the app
/atoms/
Lowest level UI components, such as Text, Buttons, Spacer, etc
/components/
UI components used throughout the app, should be mainly composed of atoms with additional logic
/data/
The redux store, and all data management logic
/navigation/
The router of the application
/screens/
Top level screens, these are what the navigation renders
/themes/
App color files
/hooks/
Custom react hooks
/utils/
Utility methods, mainly for Bitcoin Cash (BCH) related logic
/ios/
iOS specific project files, modify these through xCode
/android/
Android specific project files
Data
All data which lives longer than a single screen is stored in redux, the structure of which can be found in the /data folder.
Local State and React Lifecycle
Only use Functional Components with React and stick to using the hook paradigm; except for rare exceptions.
Keeping the entire app on this single pattern will make the code more consistent, future-proof, and easier to maintain.
Styling
All styling is done with the styled-components library.
Most of the base components we reuse should be turned into atoms and put into the /atoms folder.
To reuse variables throughout the app (like colo and spacing), define them in one of the ./themes files.
Navigation
Navigation is managed with the react-navigation library. To contain the logic of navigation in a single place, keep all navigation and router setup in the /navigation folder.
Development Setup
This project use react-native. Please refer to the React Native documentation to get the iOS or Android emulator installed and running before running badger-mobile
> yarn install
>cd ios
> pod install
>cd ..
> yarn run ios
Different iOS Device
> yarn run ios --simulator="iPhone 11 Pro Max"> yarn run ios --simulator="iPhone 11 Pro"> yarn run ios --simulator="iPhone 8 Plus"> yarn run ios --simulator="iPhone 6"> yarn run ios --simulator="iPhone SE"> yarn run ios --simulator="iPhone X"
Suggestion to not commit secrets by mistake: git update-index --assume-unchanged android/gradle.properties
Android Local Install
> yarn install
> Start an Android device - either
> Android emulator from Android Studio
> Physical device with USB debugging enabled
> yarn run jetify
> jetify only required once
> yarn run android
Create Bundles'n'Builds
Increment versionCode in android/app/build.gradle
Build .apk
The .apk file is good for distributing online, or for sending to people direct to sideload.
> yarn run android-build
Bundle the build
The bundle is be used to distributed on the Play Store.
请发表评论