{"id":23150190,"url":"https://github.com/amanbhobhria/architecturepatterns","last_synced_at":"2025-11-05T23:02:44.743Z","repository":{"id":266595038,"uuid":"898793618","full_name":"amanbhobhria/ArchitecturePatterns","owner":"amanbhobhria","description":"Android Design Pattern Advanced","archived":false,"fork":false,"pushed_at":"2024-12-05T03:50:36.000Z","size":117,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-04T14:44:33.131Z","etag":null,"topics":["diffutil","expense-tracker","livedata","mvvm","repository","room-database","room-persistence-library"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amanbhobhria.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-12-05T03:36:17.000Z","updated_at":"2024-12-05T03:50:40.000Z","dependencies_parsed_at":"2024-12-05T12:06:40.076Z","dependency_job_id":null,"html_url":"https://github.com/amanbhobhria/ArchitecturePatterns","commit_stats":null,"previous_names":["amanbhobhria/architecturepatterns"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/amanbhobhria/ArchitecturePatterns","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amanbhobhria%2FArchitecturePatterns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amanbhobhria%2FArchitecturePatterns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amanbhobhria%2FArchitecturePatterns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amanbhobhria%2FArchitecturePatterns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amanbhobhria","download_url":"https://codeload.github.com/amanbhobhria/ArchitecturePatterns/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amanbhobhria%2FArchitecturePatterns/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264824542,"owners_count":23669319,"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":["diffutil","expense-tracker","livedata","mvvm","repository","room-database","room-persistence-library"],"created_at":"2024-12-17T18:16:39.880Z","updated_at":"2025-11-05T23:02:39.706Z","avatar_url":"https://github.com/amanbhobhria.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# App Demo Projects\n\nThis repository contains a collection of demo applications showcasing various Android development concepts and best practices. Each project is designed to provide a hands-on understanding of key components and patterns used in modern Android development.\n\n---\n\n## Projects Overview\n\n### 1. **LiveData**\n- **Description**: Demonstrates the use of `LiveData` to observe and react to changes in data in a lifecycle-aware manner.\n- **Use Case**: Ideal for scenarios where UI components need to react to changes in underlying data, such as updating a list or reflecting user preferences dynamically.\n\n---\n\n### 2. **MVVM - Expense Tracker**\n- **Description**: Implements the Model-View-ViewModel (MVVM) architecture in an expense tracker app.\n- **Use Case**: Learn how to structure your app for better separation of concerns, maintainability, and scalability.\n- **Features**:\n  - Add, delete, and view expenses.\n  - Integration with `RoomDB` for persistent storage.\n  - `ViewModel` for managing UI-related data.\n  - `LiveData` for observing database changes.\n\n---\n\n### 3. **ViewModel**\n- **Description**: A simple app showcasing how to use `ViewModel` to store and manage UI-related data across configuration changes.\n- **Use Case**: Perfect for understanding how to handle device rotations and lifecycle-related challenges without losing data.\n\n---\n\n### 4. **RoomDB**\n- **Description**: Demonstrates the use of `RoomDB` for local database storage.\n- **Use Case**: Suitable for learning how to store, retrieve, and manage structured data locally within the app.\n\n---\n\n### 5. **Repository Pattern**\n- **Description**: A project showcasing the Repository Pattern for managing data sources.\n- **Use Case**: Understand how to abstract data access logic, making it easier to swap between different data sources (e.g., local database, network API).\n\n---\n\n### 6. **DiffUtil**\n- **Description**: Demonstrates the use of `DiffUtil` for efficiently updating RecyclerView data.\n- **Use Case**: Learn how to optimize RecyclerView updates by calculating and applying differences between old and new datasets.\n\n---\n\n### 7. **Retrofit**\n- **Description**: A simple app integrating `Retrofit` to perform network operations.\n- **Use Case**: Understand how to fetch, post, or update data from a remote API and parse responses.\n\n---\n\n### 8. **Cache**\n- **Description**: Demonstrates caching techniques for offline data handling.\n- **Use Case**: Learn how to implement caching mechanisms to provide a seamless user experience even when the app is offline.\n\n---\n\n## Purpose\nThese demo applications are designed for:\n- **Beginners**: To understand and practice core Android development concepts.\n- **Experienced Developers**: To explore best practices and architectural patterns.\n- **Reference**: As a starting point for integrating these concepts into your own projects.\n\nEach project is well-documented to help you quickly understand the implementation and its use case. Explore the projects to strengthen your Android development skills!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famanbhobhria%2Farchitecturepatterns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famanbhobhria%2Farchitecturepatterns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famanbhobhria%2Farchitecturepatterns/lists"}