An android application that lists crypto coins, we can add to favorites, and we can search among all cryptos.
You can find following apis implementation in this project.
- Room
- SQLite
- Coroutines
- Navigation
- RXJava
- Retrofit
- Data Binding
- Grid Layout
- Gson converter
- Glide
- View Model
- Live Data
- MVVM
- Pull data from crypto api
- Listing cryptocurrencies
- Adding and removing the cryptocurrencies we want to favorites
- Keep favorites in sqlite using room
- Searching between cryptocurrencies
- Uses view model and live data
-
Architecture - Start with classes for managing your UI component lifecycle and handling data persistence.
- lifecycle - As a user navigates through, out of, and back to your app, the Activity instances in your app transition through different states in their lifecycle.
- ViewModel - Easily schedule asynchronous tasks for optimal execution.
- livedata - is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services.
- Navigation - Handle everything needed for in-app navigation. asynchronous tasks for optimal execution.
- Data Binding - The Data Binding Library is a support library that allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
- Coroutines - A coroutine is a concurrency design pattern that you can use on Android to simplify code that executes asynchronously.
- Room - The Room persistence library provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
- SQLite - The androidx.sqlite library contains abstract interfaces along with basic implementations which can be used to build your own libraries that access SQLite.
-
UI - Details on why and how to use UI Components in your apps - together or separate
- Layout - Lay out widgets using different algorithms.
- Grid Layout - A layout that places its children in a rectangular grid.
- Swipe-to-Refresh Layout The swipe-to-refresh user interface pattern is implemented entirely within the SwipeRefreshLayout widget, which detects the vertical swipe, displays a distinctive progress bar, and triggers callback methods in your app.
-
Third party and miscellaneous libraries