{"id":19290096,"url":"https://github.com/nour5eldin/crypto_tracker_compose","last_synced_at":"2025-07-04T06:34:32.937Z","repository":{"id":259908757,"uuid":"879791959","full_name":"Nour5Eldin/Crypto_Tracker_Compose","owner":"Nour5Eldin","description":"Build a Dynamic initial commit Crypto Tracker","archived":false,"fork":false,"pushed_at":"2024-11-10T15:09:35.000Z","size":10475,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-23T23:44:07.393Z","etag":null,"topics":["api-rest","chucker","coil-compose","compose","coroutines","cryp","cryptocurrency","linegraph","multithreading","retrofit2","tracker","viewmodel"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nour5Eldin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-28T14:56:42.000Z","updated_at":"2024-11-25T19:03:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"dd9dc012-e979-4645-af95-7079ec586e99","html_url":"https://github.com/Nour5Eldin/Crypto_Tracker_Compose","commit_stats":null,"previous_names":["nour5eldin/crypto_tracker_compose"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Nour5Eldin/Crypto_Tracker_Compose","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nour5Eldin%2FCrypto_Tracker_Compose","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nour5Eldin%2FCrypto_Tracker_Compose/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nour5Eldin%2FCrypto_Tracker_Compose/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nour5Eldin%2FCrypto_Tracker_Compose/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nour5Eldin","download_url":"https://codeload.github.com/Nour5Eldin/Crypto_Tracker_Compose/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nour5Eldin%2FCrypto_Tracker_Compose/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263463208,"owners_count":23470447,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-rest","chucker","coil-compose","compose","coroutines","cryp","cryptocurrency","linegraph","multithreading","retrofit2","tracker","viewmodel"],"created_at":"2024-11-09T22:18:04.210Z","updated_at":"2025-07-04T06:34:32.912Z","avatar_url":"https://github.com/Nour5Eldin.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Crypto Tracker Compose Ui\n\nA modern Android application built with Jetpack Compose that allows users to track cryptocurrency prices, view historical data, and manage their favorite coins.\nThe Best Practice Guide to Android Architecture Course.\n\n# :camera_flash: **Screenshots** :camera_flash:\n\n| Coin List  Screen                                   | Coin Detail  Screen                                   |\n|-----------------------------------------------------|-------------------------------------------------------|\n| \u003cimg width=\"160\" src=\"./assets/CoinListScreen.gif\"\u003e | \u003cimg width=\"160\" src=\"./assets/CoinDetailScreen.gif\"\u003e |\n\n\n\n## Table of Contents\n\n- [Features](#features)\n- [Technologies Used](#technologies-used)\n- [Architecture Overview](#architecture-overview)\n  - [Network Handling](#network-handling)\n  - [Data Mapping](#data-mapping)\n  - [Domain Logic](#domain-logic)\n  - [Observing Data](#observing-data)\n  - [Data Sources](#data-sources)\n- [Installation](#installation)\n- [License](#license)\n\n## Features\n\n- ✅ Real-time cryptocurrency price tracking.\n- ✅ Detailed info for each cryptocurrency.\n- ✅ A user-friendly interface powered by Jetpack Compose.\n- ✅ Interactive charts to explore historical price data.\n- ✅ Favorites management for quick access to top coins.\n\n## Technologies Used\n\n### 1. Kotlin\n- **Description**: Modern programming language for Android development.\n- **Benefits**: Concise syntax, null safety, and strong functional programming support.\n\n### 2. Jetpack Compose\n- **Description**: UI toolkit for building native Android UIs.\n- **Benefits**: Simplifies UI development with a declarative approach and reduces XML usage.\n\n### 3. Retrofit\n- **Description**: Type-safe HTTP client for Android.\n- **Benefits**: Simplifies API calls and JSON parsing, supports asynchronous requests.\n\n### 4. Hilt\n- **Description**: Dependency injection library for Android.\n- **Benefits**: Simplifies dependency management and improves testability.\n\n### 5. Coroutines\n- **Description**: Asynchronous programming framework in Kotlin.\n- **Benefits**: Simplifies async code, reduces callback hell, and provides structured concurrency.\n\n### 6. Room\n- **Description**: Persistence library for SQLite.\n- **Benefits**: Simplifies database interactions, supports compile-time SQL verification.\n\n### 7. Material Design\n- **Description**: Design system for building visually appealing UIs.\n- **Benefits**: Ensures consistency and usability across the app.\n\n### 8. LiveData and StateFlow\n- **Description**: Observable data holders for UI components.\n- **Benefits**: Lifecycle-aware updates and better state management.\n\n## Architecture Overview\n\nThe app follows a clean architecture pattern, which promotes separation of concerns and enhances maintainability.\n\n### Network Handling\n- **Retrofit** is used to make API requests to cryptocurrency APIs (e.g., CoinGecko, CoinPaprika).\n- Proper error handling is implemented to manage network issues and inform users.\n\n### Data Mapping\n- **Data Transfer Objects (DTOs)** represent the structure of JSON responses.\n- Mapping functions convert DTOs to domain models for use in the application.\n\n### Domain Logic\n- **Use Cases** encapsulate business operations and interact with repositories.\n- **Repositories** mediate between data sources and the domain layer, providing a clean API for data access.\n\n### Observing Data\n- **LiveData** and **StateFlow** are used in ViewModels to expose data to the UI.\n- The UI reacts to changes in data, ensuring a responsive user experience.\n\n### Data Sources\n- **Remote Data Source**: Fetches data from APIs using Retrofit.\n- **Local Data Source**: Interacts with the Room database for offline data storage and retrieval.\n\n## Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/YourUsername/Crypto-Tracker-Compose.git\n\n\n## License\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnour5eldin%2Fcrypto_tracker_compose","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnour5eldin%2Fcrypto_tracker_compose","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnour5eldin%2Fcrypto_tracker_compose/lists"}