CryptoCoinTracker is an Android application written in Kotlin, utilizing Kotlin DSL for a clean and readable build configuration. The app demonstrates the use of various modern Android development technologies and libraries to create a robust and efficient cryptocurrency tracking application.
- MVVM Architecture: The app follows the Model-View-ViewModel (MVVM) architecture pattern, promoting a clean separation of concerns and making the codebase more maintainable.
- Clean Architecture: Adheres to Clean Architecture principles to ensure a scalable and testable code structure.
- Retrofit2: Used for making API requests to fetch cryptocurrency values from a public API.
- GSON: Employed to parse JSON responses from the API into Kotlin data classes.
- Room: Serves as the local database to store cryptocurrency values for offline access.
- LiveData: Ensures the UI components observe changes in the data and update automatically.
- Picasso: Handles image loading and caching within the app.
- Coroutines: Used for asynchronous programming, making the app responsive and efficient.
- Foreground Service: Keeps the app running in the background to continuously fetch and update cryptocurrency values even when the app is closed, using CoroutineWorker for background processing.
- Data Extraction: CryptoCoinTracker fetches real-time cryptocurrency values from a public API using Retrofit2.
- Data Storage: The fetched data is parsed with GSON and inserted into a Room database.
- Data Display: The app's UI observes the data stored in the Room database via LiveData and displays the cryptocurrency values using a clean and intuitive interface.
- Background Updates: A Foreground Service ensures that data fetching and updating continues even when the app is closed, leveraging CoroutineWorker for efficient background operations.
- Programming Language: Kotlin
- Libraries: Retrofit2, GSON, Room, LiveData, Picasso, Coroutines
- Architecture Patterns: MVVM, Clean Architecture
- Services: Foreground Service, CoroutineWorker
To get started with the project, follow these steps:
- Clone the repository:
git clone https://github.com/art3mvp/crypto-coins-tracker.git cd crypto-coins-tracker
- Open the project in Android Studio.
- Ensure you have the necessary dependencies installed.
- Build and run the project on an emulator or physical device.
- Launch the app on your device.
- The main screen will display a list of cryptocurrencies with their current values.
- The app will update the values in the background, ensuring you always have the latest data.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature-branch
). - Create a new Pull Request.
If you encounter any issues or have a feature request, please create an issue in the Issues section of the repository.