crypto_demo
It's a demonstrative app about Crypto. Parsing Json file in assets to obtain list of CurrencyInfo in order to display in Fragment via Activity and db. The master branch uses ShareViewModel to let Activity communicate with Fragment, based on doc. Another branch uses bundle to let Activity provide dataset to Fragment.
This Repo also adds tests to test ViewModel, Repository, and Dao, etc.
Feature
- Display list of CurrencyInfo
Tech stack & Open-source libraries
- Minimum SDK level 26
- Kotlin based, Coroutines + Flow for asynchronous.
- Gradle Kotlin DSL - For writing Gradle build scripts using Kotlin.
- Jetpack
- Databinding - Bind UI components in the layouts to data sources in the app.
- Hilt - For dependency injection.
- Lifecycle - Build lifecycle-aware components, like ViewModel and LiveData that can automatically adjust their behavior based on the current lifecycle state of an activity or fragment.
- Recyclerview - Use to efficiently display large sets of data.
- Room - Construct a database using the abstract layer for offline cache.
- Test - For unit tests and instrumented tests
- Truth - For tests' assertions
- Third Party Library
- Material - Help to build material components like bottom navigation bar, floating action button.
- detekt - Use static code analysis tool for the Kotlin to improve code smell.
- Ktlint - To make code follow Kotlin official code style.
- Architectural and Design pattern
- MVVM
- Observer
- Adapter
- Dependency Injection
- Singleton
Contact
Dante Yu