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.