{"id":13611483,"url":"https://github.com/serbelga/Todometer-KMP","last_synced_at":"2025-04-13T04:34:47.254Z","repository":{"id":37083826,"uuid":"301817067","full_name":"serbelga/Todometer-KMP","owner":"serbelga","description":"A meter to-do list built with Compose UI Multiplatform, Wear Compose, SQLDelight, Koin Multiplatform, Glance, ...","archived":false,"fork":false,"pushed_at":"2025-04-09T20:04:16.000Z","size":44423,"stargazers_count":642,"open_issues_count":9,"forks_count":41,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-09T21:20:08.140Z","etag":null,"topics":["android","compose-multiplatform","desktop","glance","ios","kmp","kotlin","kotlin-multiplatform","ktor","multiplatform","sqldelight","wear-os"],"latest_commit_sha":null,"homepage":"https://play.google.com/store/apps/details?id=dev.sergiobelda.todometer","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/serbelga.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}},"created_at":"2020-10-06T18:19:03.000Z","updated_at":"2025-04-09T20:02:23.000Z","dependencies_parsed_at":"2023-02-04T05:16:48.829Z","dependency_job_id":"bc3101f3-80d1-4d43-94d5-4ed6557a90c1","html_url":"https://github.com/serbelga/Todometer-KMP","commit_stats":null,"previous_names":["serbelga/todometer-kmp","serbelga/todometerkotlinmultiplatform"],"tags_count":51,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serbelga%2FTodometer-KMP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serbelga%2FTodometer-KMP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serbelga%2FTodometer-KMP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serbelga%2FTodometer-KMP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/serbelga","download_url":"https://codeload.github.com/serbelga/Todometer-KMP/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248665157,"owners_count":21142118,"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","compose-multiplatform","desktop","glance","ios","kmp","kotlin","kotlin-multiplatform","ktor","multiplatform","sqldelight","wear-os"],"created_at":"2024-08-01T19:01:56.011Z","updated_at":"2025-04-13T04:34:47.249Z","avatar_url":"https://github.com/serbelga.png","language":"Kotlin","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eTodometer Kotlin Multiplatform\u003c/h1\u003e\u003c/br\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/serbelga/ToDometer_Multiplatform/actions/workflows/build.yml\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://github.com/serbelga/ToDometer_Kotlin_Multiplatform/actions/workflows/build.yml/badge.svg\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch5 align=\"center\"\u003e\n✅ A meter to-do list built with Kotlin Multiplatform and Compose UI Multiplatform based on https://cassidoo.github.io/todometer/\n\u003c/h5\u003e\n\n\u003ca target=\"_blank\" href=\"https://play.google.com/store/apps/details?id=dev.sergiobelda.todometer\"\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg width=\"200\" src=\"https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png\"\u003e\n\u003c/p\u003e\n\u003c/a\u003e\n\n\u003cbr/\u003e\n\n## Screenshots\n\n### Android\n\n| \u003cimg width=\"240\" src=\"./screenshots/android/home.png\" /\u003e | \u003cimg width=\"240\" src=\"./screenshots/android/add_task.png\" /\u003e | \u003cimg width=\"240\" src=\"./screenshots/android/delete_task.gif\" /\u003e |\n|----------------------------------------------------------|--------------------------------------------------------------|-----------------------------------------------------------------|\n\n### Material Design 3 Dynamic color\n\n| \u003cimg width=\"240\" src=\"./screenshots/android/drawer_dark_dynamic_color.png\" /\u003e | \u003cimg width=\"240\" src=\"./screenshots/android/home_dark_dynamic_color.png\" /\u003e | \u003cimg width=\"240\" src=\"./screenshots/android/home_light_dynamic_color.png\" /\u003e | \u003cimg width=\"240\" src=\"./screenshots/android/add_task_dark_dynamic_color.png\" /\u003e |\n|-------------------------------------------------------------------------------|-----------------------------------------------------------------------------|------------------------------------------------------------------------------|---------------------------------------------------------------------------------|\n\n### Glance App Widget - Material Design 3 Dynamic color\n\n| \u003cimg width=\"240\" src=\"./screenshots/android/widget_dynamic_color.png\" /\u003e |\n|--------------------------------------------------------------------------|\n\n### Desktop\n\n`./gradlew :app:run`\n\n| \u003cimg width=\"240\" src=\"./screenshots/desktop/home.png\" /\u003e | \u003cimg width=\"240\" src=\"./screenshots/desktop/add_task.png\" /\u003e |\n|----------------------------------------------------------|--------------------------------------------------------------|\n\n### iOS\n\nOpen `app-ios/Todometer.xcodeproj` in XCode or run it in Android Studio using Kotlin Multiplatform Mobile plugin.\n\n| \u003cimg width=\"240\" src=\"./screenshots/ios/home_dark.png\" /\u003e | \u003cimg width=\"240\" src=\"./screenshots/ios/add_task_dark.png\" /\u003e |\n|-----------------------------------------------------------|---------------------------------------------------------------|\n\n### Wear OS\n\n| \u003cimg width=\"240\" src=\"./screenshots/wearos/home.png\" /\u003e | \u003cimg width=\"240\" src=\"./screenshots/wearos/tasks.png\" /\u003e | \u003cimg width=\"240\" src=\"./screenshots/wearos/task.png\" /\u003e | \u003cimg width=\"240\" src=\"./screenshots/wearos/delete_task_list.png\" /\u003e | \u003cimg width=\"240\" src=\"./screenshots/wearos/delete_task.png\" /\u003e |\n|---------------------------------------------------------|----------------------------------------------------------|---------------------------------------------------------|---------------------------------------------------------------------|----------------------------------------------------------------|\n\n\u003cbr/\u003e\n\n## Technologies\n\n#### Android\n\n* [Android Jetpack](https://developer.android.com/jetpack)\n    * [Android KTX](https://developer.android.com/kotlin/ktx)\n    * [Glance App Widget](https://developer.android.com/jetpack/androidx/releases/glance)\n\n#### Wear OS\n\n* [Wear Compose](https://developer.android.com/jetpack/androidx/releases/wear-compose)\n* [Wear Compose Navigation](https://developer.android.com/reference/kotlin/androidx/wear/compose/navigation/package-summary)\n\n#### Common\n\n* [Compose UI Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/)\n* [Compose ViewModel Multiplatform](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-lifecycle.html)\n* [Compose Navigation Multiplatform](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-navigation-routing.html)\n* [compose-vectorize](https://github.com/serbelga/compose-vectorize)\n* [navigation-compose-extended](https://github.com/serbelga/navigation-compose-extended)\n* [Kotlin \u0026 Coroutines](https://kotlinlang.org/docs/coroutines-overview.html)\n    * [Flow](https://kotlinlang.org/docs/flow.html)\n* [Koin Multiplatform](https://insert-koin.io/docs/reference/koin-mp/kmp)\n* [Lyricist](https://github.com/adrielcafe/lyricist)\n* [spotless](https://github.com/diffplug/spotless)\n* [SQLDelight](https://cashapp.github.io/sqldelight/)\n\n## Images\n\n- Illustrations: https://undraw.co/illustrations\n- Icons: https://fonts.google.com/icons\n- Logotype, Isotype: Made with Figma\n\n\u003cbr/\u003e\n\n## License\n\n```\n   Copyright 2023 Sergio Belda\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserbelga%2FTodometer-KMP","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fserbelga%2FTodometer-KMP","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserbelga%2FTodometer-KMP/lists"}