/crypto-wallet

Demo application for displaying the Bitcoin transaction in Crypto Wallet.

Primary LanguageKotlinApache License 2.0Apache-2.0

Build Status codecov

Crypto Wallet

Demo application for displaying the Bitcoin transaction in Crypto Wallet.

Features:

  • Uses android architecture components.
  • Follows MVVM architecture pattern.
  • Demonstrates testing frameworks like JUnit, Roboelectric and Espresso tests
  • Uses dagger heavily to provide clear separation between different architecture layers. Helps to write testable code.
  • Mocking shared preferences and web server to write accurate tests.

This application is just a demonstration for the possible design of crypto wallet.

Overview

  • Application uses the Multi Address api of the popular crypto wallet Blockchain. Blockchain multi address api gives the list of BTC transaction for the given wallet address. See the API documentation.
  • You can replace the address to retrieve.
  • The dashboard activity shows the number of transaction, available balance, total sent/received amount in BTC and list of each transactions (amount in Satoshi).

How to run tests?

  • Make sure you connect physical device or run an emulator before running the UI tests.
  • To run tests, run following command:
./gradlew cAT

Acknowledgement:

  • This application implements the design and animations from the beautiful post on uplabs. (There are some changes in resources such as fonts, images and texts from the original mock up.)
  • Code coverage currently displays percentage of code tested by the unit tests. (UI tests are not being performed on CI server.)

Screenshots:

Pixel 2 Pixel C
portrait.gif landscape.gif
portrait.gif landscape.gif

What to try this out?

  • You can download the debuggable apk from here and play with it.

Want to contribute?

Every small or large contribution to this project is appreciated. Make sure you read the contribution guide before generating the pull request.

Questions?🤔

Hit me on twitter Twitter

License

Copyright 2018 Keval Patel

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.