{"id":18859910,"url":"https://github.com/kashif-e/the-mvvm-template-2022","last_synced_at":"2025-11-01T03:04:38.084Z","repository":{"id":116310151,"uuid":"434698225","full_name":"Kashif-E/The-MVVM-Template-2022","owner":"Kashif-E","description":"Clean MVVM with eliminating the usage of context from view models by introducing hilt for DI and sealed classes for displaying Errors in views using shared flows (one time event), and Stateflow for data","archived":false,"fork":false,"pushed_at":"2022-07-24T12:35:46.000Z","size":116,"stargazers_count":24,"open_issues_count":0,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T01:26:18.520Z","etag":null,"topics":["android-application","android-library","flow","kotlin","kotlin-android","kotlin-coroutines","kotlin-flow","kotlin-flow-paging","mvvm","mvvm-architecture","mvvm-sample","sealed-class","sharedflow","stateflow","stateflow-demo","stateflow-sample","viewmodel","viewmodels"],"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/Kashif-E.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":"2021-12-03T18:37:59.000Z","updated_at":"2024-07-24T11:48:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"88962e5a-1050-49b0-b198-d9e61325f485","html_url":"https://github.com/Kashif-E/The-MVVM-Template-2022","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kashif-E%2FThe-MVVM-Template-2022","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kashif-E%2FThe-MVVM-Template-2022/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kashif-E%2FThe-MVVM-Template-2022/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kashif-E%2FThe-MVVM-Template-2022/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kashif-E","download_url":"https://codeload.github.com/Kashif-E/The-MVVM-Template-2022/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248877968,"owners_count":21176244,"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":["android-application","android-library","flow","kotlin","kotlin-android","kotlin-coroutines","kotlin-flow","kotlin-flow-paging","mvvm","mvvm-architecture","mvvm-sample","sealed-class","sharedflow","stateflow","stateflow-demo","stateflow-sample","viewmodel","viewmodels"],"created_at":"2024-11-08T04:19:40.705Z","updated_at":"2025-11-01T03:04:38.029Z","avatar_url":"https://github.com/Kashif-E.png","language":"Kotlin","funding_links":["https://www.buymeacoffee.com/kashifmehmood","https://img.buymeacoffee.com/button-api/?text=Buy"],"categories":[],"sub_categories":[],"readme":"# Clean ViewModel with Sealed Classes \n\n\u003ca href=\"https://www.buymeacoffee.com/kashifmehmood\"\u003e\u003cimg src=\"https://img.buymeacoffee.com/button-api/?text=Buy me a coffee\u0026emoji=\u0026slug=kashifmehmood\u0026button_colour=FFDD00\u0026font_colour=000000\u0026font_family=Cookie\u0026outline_colour=000000\u0026coffee_colour=ffffff\" /\u003e\u003c/a\u003e\n\nFollowing are the purposes of this repo\n\n1. Showing how you can remove the need of context in ViewModels. \u003c/br\u003e\n  I. By using dependency injection and providing dependencies outside of viewModel.\u003c/br\u003e\n  II. By using sealed classes to show error messages so you dont need context to get strings. \u003c/br\u003e\n  \n2. To show how you can clean you Activity/Fragment by not observing/collecting livedata/flow that are not needed to be \n\n3. Basic MVVM with flow, stateflow, sharedflow\n\n\nif this helps dont forget to star ⭐ ⭐ ⭐ \n\nContact me on linkedin: [Kashif Mehmood](https://www.linkedin.com/in/kashif-mehmood-km/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkashif-e%2Fthe-mvvm-template-2022","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkashif-e%2Fthe-mvvm-template-2022","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkashif-e%2Fthe-mvvm-template-2022/lists"}