A modern Android application built with Jetpack Compose that allows users to track cryptocurrency prices, view historical data, and manage their favorite coins. The Best Practice Guide to Android Architecture Course.
| Coin List Screen | Coin Detail Screen |
|---|---|
- ✅ Real-time cryptocurrency price tracking.
- ✅ Detailed info for each cryptocurrency.
- ✅ A user-friendly interface powered by Jetpack Compose.
- ✅ Interactive charts to explore historical price data.
- ✅ Favorites management for quick access to top coins.
- Description: Modern programming language for Android development.
- Benefits: Concise syntax, null safety, and strong functional programming support.
- Description: UI toolkit for building native Android UIs.
- Benefits: Simplifies UI development with a declarative approach and reduces XML usage.
- Description: Type-safe HTTP client for Android.
- Benefits: Simplifies API calls and JSON parsing, supports asynchronous requests.
- Description: Dependency injection library for Android.
- Benefits: Simplifies dependency management and improves testability.
- Description: Asynchronous programming framework in Kotlin.
- Benefits: Simplifies async code, reduces callback hell, and provides structured concurrency.
- Description: Persistence library for SQLite.
- Benefits: Simplifies database interactions, supports compile-time SQL verification.
- Description: Design system for building visually appealing UIs.
- Benefits: Ensures consistency and usability across the app.
- Description: Observable data holders for UI components.
- Benefits: Lifecycle-aware updates and better state management.
The app follows a clean architecture pattern, which promotes separation of concerns and enhances maintainability.
- Retrofit is used to make API requests to cryptocurrency APIs (e.g., CoinGecko, CoinPaprika).
- Proper error handling is implemented to manage network issues and inform users.
- Data Transfer Objects (DTOs) represent the structure of JSON responses.
- Mapping functions convert DTOs to domain models for use in the application.
- Use Cases encapsulate business operations and interact with repositories.
- Repositories mediate between data sources and the domain layer, providing a clean API for data access.
- LiveData and StateFlow are used in ViewModels to expose data to the UI.
- The UI reacts to changes in data, ensuring a responsive user experience.
- Remote Data Source: Fetches data from APIs using Retrofit.
- Local Data Source: Interacts with the Room database for offline data storage and retrieval.
- Clone the repository:
git clone https://github.com/YourUsername/Crypto-Tracker-Compose.git
This project is licensed under the MIT License - see the LICENSE file for details.