Crypto currency tracker with jetpack compose & clean architecture

Overview

Dash Coin

DashCoin is a crypto currency tracker with jetpack compose and clean architecture

This project is developed by MathRoda for more projects GitHub .

Blog

i documented my journey and thoughts for the development process , read my article on https://medium.com/@mathroda/crypto-currency-tracker-with-jetpack-compose-clean-architecture-e93a4330a76d

Application Install

You can Install and test latest DashCoin app from below 👇

DashCoin

or from the IzzyOnDroid F-Droid compatible repo

Get it on IzzyOnDroid

Showcase Video

watch video here DashCoin Showcase

About

  • Clean and Simple UI with Jetpack Compose.
  • Best and Clean Code Quality following Modern Android Development
  • Clean Architecture Approach by uncle bob

Insights into the app 🔎

📸 Screenshots

Technical details

  • DashCoin uses an open opi from Coin Stats
  • DashCoin uses Retrofit to make api requests to coinstats.
  • DashCoin is made using Kotlin & Jetpack Compose and following Modern Android Development practices.
  • DashCoin uses Room to store users favorite coins for watchlist feature
  • DashCoin uses chart visuals library to view market changes by MPAndroidCharts
  • DashCoin uses Kotlin Coroutines and Flow to handle all asynchronous tasks.
  • DashCoin uses all Jetpack libraries and follows clean architecture. It also has a G.O.A.T rating in Android's M.A.D scorecard.

https://madscorecard.withgoogle.com/scorecard/share/1490470347/

Built With 🛠

  • Kotlin - First class and official programming language for Android development.
  • Jetpack Compose - Jetpack Compose is Android’s modern toolkit for building native UI
  • Coroutines - For asynchronous and more..
  • Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
  • StateFlow - StateFlow is a state-holder observable flow that emits the current and new state updates to its collectors.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
  • Dependency Injection -
    • Hilt-Dagger - Standard library to incorporate Dagger dependency injection into an Android application.
    • Hilt-ViewModel - DI for injecting ViewModel.
  • GSON - A modern JSON library for Kotlin and Java.
  • Retrofit - A type-safe HTTP client for Android and Java.
  • Room - an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
  • GSON Converter - A Converter which uses Moshi for serialization to and from JSON.
  • Coil - An image loading library for Android backed by Kotlin Coroutines.
  • Material Components for Android - Modular and customizable Material Design UI components for Android.

Package Structure

Architecture

This app uses Clean Architecture .


If you like my projects you can buy me a cup of coffee

Contact

you can connect with me here LinkedIn .

License

Copyright 2022 MathRoda, Inc. All Rights Reserved.

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.
You might also like...
Vigour - An Android Fitness App that rewards users with Crypto for walking a certain amount of steps.

Vigour Group Project for 2022 Mobile Application Development. Our app rewards user with crypto after walking for a certain amount of steps. We will be

Professional Crypto Application Developed With Kotlin
Professional Crypto Application Developed With Kotlin

ExTracker a professional application for tracking cryptoCurrencies developed with kotlin About This Project ExTracker is a cryptocurrency Application.

Delish, a Food Recipes App in Jetpack Compose and Hilt based on modern Android tech-stacks and MVVM clean architecture.
Delish, a Food Recipes App in Jetpack Compose and Hilt based on modern Android tech-stacks and MVVM clean architecture.

Delish Screens Tech stack & Open-source libraries 100% Kotlin based + Coroutines + Flow for asynchronous. Dagger Hilt 2.37 Accompanist JetPack Jetpack

🚀 Sample Android Clean Architecture on JetRorty App focused on the scalability, testability and maintainability written in Kotlin, following best practices using Jetpack with Compose.
🚀 Sample Android Clean Architecture on JetRorty App focused on the scalability, testability and maintainability written in Kotlin, following best practices using Jetpack with Compose.

Android Clean Architecture in Rorty is a sample project that presents modern, approach to Android application development using Kotlin and latest tech-stack.

 Sample Android Clean Architecture on App focused on written in Kotlin, following best practices using Jetpack with Compose.
Sample Android Clean Architecture on App focused on written in Kotlin, following best practices using Jetpack with Compose.

Rick And Morty Jetpack Compose Sample App Table of Contents About the Project Architecture Features Environment Setup Contact About The Project This S

A cryptocurrency application with clean architecture (MVVM, Jetpack Compose, Flow, Dagger Hilt)

Amirypto A cryptocurrency application built with Clean architecture and Jetpack component (MVVM, Jetpack Compose, Flow, Hilt, Retrofit). It was made t

Clean Architecture Modular Project: MVI + Jetpack Compose + Coroutines + Flows + Hilt + UnitTests
Clean Architecture Modular Project: MVI + Jetpack Compose + Coroutines + Flows + Hilt + UnitTests

NyTimes for Clean Architecture The purpose of this project is to consolidate some of the learned insights throughout the years about the Clean Archite

🍭 GithubSearchKMM - Github Repos Search - Android - iOS - Kotlin Multiplatform Mobile using Jetpack Compose, SwiftUI, FlowRedux, Coroutines Flow, Dagger Hilt, Koin Dependency Injection, shared KMP ViewModel, Clean Architecture
🍭 GithubSearchKMM - Github Repos Search - Android - iOS - Kotlin Multiplatform Mobile using Jetpack Compose, SwiftUI, FlowRedux, Coroutines Flow, Dagger Hilt, Koin Dependency Injection, shared KMP ViewModel, Clean Architecture

GithubSearchKMM Github Repos Search - Kotlin Multiplatform Mobile using Jetpack Compose, SwiftUI, FlowRedux, Coroutines Flow, Dagger Hilt, Koin Depend

Jetpack Compose & Clean Architecture app with Huawei Mobile Services.
Jetpack Compose & Clean Architecture app with Huawei Mobile Services.

Big Market From traditional asset classes (e.g. stocks and ETFs) to economic metrics, exchange rates to cryptocurrencies, fundamentals to technical in

Comments
  • License question

    License question

    Thanks for making your app available here! However, I cannot find any license information in your repository. Could you please add which license your app is covered by? As all the libraries you're using are licensed Apache-2.0, is it correct to assume the same license for your app? Thanks in advance!

    opened by IzzySoft 4
  • Merge feat/update profile picture to develop

    Merge feat/update profile picture to develop

    • Upload image to firebase storage
    • Update user with the new image url
    • Handle UI states ( Loading, Success, Failure )
    • Refactor profile image composable ( Add upload button, show default placeholder when user doesn't have a picture )
    • Separate DrawerNavigation components into different files for better readability
    opened by M0Coding 1
  • Update README.md

    Update README.md

    Hi,

    This small PR adds a button to get your app via the IzzyOnDroid open source app repo in a F-Droid client. It also change the link to download the apk from your repo to something that redirects directly and automatically to the last release.

    It will help people without Google Play to find and use your app, as well as helping them to keep it updated.

    Since the apk provided by IzzyOnDroid is simply taken from the Release Section of this repo, please never forget to attach your signed apk to the release when tagging a new version, so that Izzy can take it and make it available via a F-Droid client to your users !

    opened by Poussinou 1
  • versionCode is not increased

    versionCode is not increased

    While your latest release is tagged v1.1.0, your build.gradle still has versionCode:1 and versionName: "1.0". Could you please adjust that for future releases? For some background:

    • versionCode: what Android uses to tell versions apart. Two APKs with the same versionCode are considered being the same. No update notification/offer will be made. So today's update reached my repo, but existing users won't notice :scream:
    • versionName: what the user gets to see. If that stays the same, users can never tell which version they're running. Not only bad for their updates, but also for their issue filings :wink:

    Thanks in advance for taking care!

    opened by IzzySoft 4
Releases(v1.1.0)
  • v1.1.0(Aug 25, 2022)

    What's Changed

    • Adding Lottie Loading Animations by @MathRoda in https://github.com/MathRoda/Dash-Coin-App/pull/13
    • Integrated notification feature and fixed the app icon bug by @MathRoda in https://github.com/MathRoda/Dash-Coin-App/pull/14
    • Integrated Firebase Authentication & Firestore by @MathRoda in https://github.com/MathRoda/Dash-Coin-App/pull/15
    • Removed all local database classes and files by @MathRoda in https://github.com/MathRoda/Dash-Coin-App/pull/16
    • Integrated nested scroll feature on the bottom navigation by @MathRoda in https://github.com/MathRoda/Dash-Coin-App/pull/17
    • Integrated splash screen feature by @MathRoda in https://github.com/MathRoda/Dash-Coin-App/pull/18
    • Integrated navigation drawer and removed profile from bottom navigation by @MathRoda in https://github.com/MathRoda/Dash-Coin-App/pull/19
    • Integrated splash screen api and removed the previous splash screen by @MathRoda in https://github.com/MathRoda/Dash-Coin-App/pull/20
    • Enhancement to splash screen loading time by @MathRoda in https://github.com/MathRoda/Dash-Coin-App/pull/21
    • Edit profile/drawer screen by @MathRoda in https://github.com/MathRoda/Dash-Coin-App/pull/22
    • Merge all new features to master branch by @MathRoda in https://github.com/MathRoda/Dash-Coin-App/pull/23

    New Contributors

    • @Poussinou made their first contribution in https://github.com/MathRoda/Dash-Coin-App/pull/10
    • @kanake10 made their first contribution in https://github.com/MathRoda/Dash-Coin-App/pull/12

    Full Changelog: https://github.com/MathRoda/Dash-Coin-App/compare/v1.0.1...v1.1.0

    Source code(tar.gz)
    Source code(zip)
    DashCoin.apk(17.61 MB)
  • v1.0.1(Jul 27, 2022)

    What's Changed

    • fix favorite button state in detail screen. by @commandiron in https://github.com/MathRoda/Dash-Coin-App/pull/8

    New Contributors

    • @commandiron made their first contribution in https://github.com/MathRoda/Dash-Coin-App/pull/8

    Full Changelog: https://github.com/MathRoda/Dash-Coin-App/compare/v1.0.0...v1.0.1

    Source code(tar.gz)
    Source code(zip)
    DashCoin.apk(7.45 MB)
  • v1.0.0(Jul 4, 2022)

    What's Changed

    • Api setup done by @MathRoda in https://github.com/MathRoda/Dash-Coin-App/pull/1
    • database implementation done/working by @MathRoda in https://github.com/MathRoda/Dash-Coin-App/pull/2
    • database test cases done/working by @MathRoda in https://github.com/MathRoda/Dash-Coin-App/pull/3
    • Coins screen by @MathRoda in https://github.com/MathRoda/Dash-Coin-App/pull/4
    • Whatchlist & news feature by @MathRoda in https://github.com/MathRoda/Dash-Coin-App/pull/5

    New Contributors

    • @MathRoda made their first contribution in https://github.com/MathRoda/Dash-Coin-App/pull/1

    Full Changelog: https://github.com/MathRoda/Dash-Coin-App/commits/v1.0.0

    Source code(tar.gz)
    Source code(zip)
    Dash.Coin.apk(7.45 MB)
Owner
MathRoda
Android Engineer/ Youtuber
MathRoda
Crypto-candlestick-service - Crypto candlestick service Coding Challenge

Coding Challenge Your task is to build a system that enables users to view price

Moses Thomas 0 Feb 6, 2022
Coin Stalker App is an android application that displays current crypto currency rates.

Coin-Stalker Coin Stalker App is an android application that displays current crypto currency rates based on modern Android application tech-stacks an

Barış Sağlam 1 Aug 16, 2022
An application for tracking the value of crypto currency

CriptoApp an application for tracking the value of crypto currency API https://m

Alex92w 0 Dec 19, 2021
Built with Jetpack compose, multi modules MVVM clean architecture, coroutines + flow, dependency injection, jetpack navigation and other jetpack components

RickAndMortyCompose - Work in progress A simple app using Jetpack compose, clean architecture, multi modules, coroutines + flows, dependency injection

Daniel Waiguru 9 Jul 13, 2022
An example of a test task for creating a simple currency converter application for the Android platform. The app is developed using Kotlin, MVI, Dagger Hilt, Retrofit, Jetpack Compose.

Simple Currency Converter Simple Currency Converter Android App by Isaev Semyon An example of a test task for creating a simple currency converter app

Semyon Isaev 1 Nov 8, 2021
A personal project made using Jetpack Compose, Clean-MVVM architecture and other jetpack libraries

A basic CRUD for recording your personal credit and debit transactions. Made using Jetpack Compose, Clean-MVVM and other Jetpack libraries, incorporated with Unit Tests.

Shoaib Ahmed 3 Dec 6, 2022
Kotlin Multiplatform Application to show Crypto Coins

This is the codebase of Crypto currency Tracking Kotlin Multiplatform App. Components Shared Components Ktor (Network Client) SQL Delight (Local DB) A

Aman Bansal 10 Oct 31, 2022
Track your favorite crypto-currencies with daily reminders

COIN STALK Track your favourite crypto-currencies with daily reminders Screenshots Contribute Clone the repo Get your api key from Coinranking Site Cr

Nwaelugo Noel Orisaemeka 7 Aug 14, 2022
It's a demonstrative app about Crypto

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 Acti

Dante 1 Feb 13, 2022