{"id":13626879,"url":"https://github.com/aaronoe/ComposeArcade","last_synced_at":"2025-04-16T19:30:51.321Z","repository":{"id":115841206,"uuid":"377044988","full_name":"aaronoe/ComposeArcade","owner":"aaronoe","description":"A Sudoku game for Android \u0026 Desktop written with Jetpack Compose Multiplatform","archived":false,"fork":false,"pushed_at":"2021-06-24T22:49:00.000Z","size":421,"stargazers_count":53,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-01T22:37:47.950Z","etag":null,"topics":[],"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/aaronoe.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}},"created_at":"2021-06-15T05:21:23.000Z","updated_at":"2024-07-25T19:34:11.000Z","dependencies_parsed_at":"2023-03-08T22:30:35.988Z","dependency_job_id":null,"html_url":"https://github.com/aaronoe/ComposeArcade","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/aaronoe%2FComposeArcade","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronoe%2FComposeArcade/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronoe%2FComposeArcade/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronoe%2FComposeArcade/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aaronoe","download_url":"https://codeload.github.com/aaronoe/ComposeArcade/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223725842,"owners_count":17192637,"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":[],"created_at":"2024-08-01T22:00:24.149Z","updated_at":"2024-11-08T17:30:41.735Z","avatar_url":"https://github.com/aaronoe.png","language":"Kotlin","funding_links":[],"categories":["Games"],"sub_categories":[],"readme":"# 🚀 Compose Arcade\n\nA sample Kotlin Multiplatform Compose Sudoku app for Android \u0026 Desktop.\nMost code is shared between Android \u0026 Desktop using Kotlin Multiplatform and [Jetbrains Compose](https://github.com/JetBrains/compose-jb).\n\n![Alt text](screenshots/sudoku-demo.png?raw=true \"Demo running on Android \u0026 Ubuntu\")\n\n\n### This example supports the following targets: \n- `Android` (Compose)\n- `JVM` (Compose - Win / Linux / MacOS)\n\n### Libraries used:\n- [Jetpack Compose](https://github.com/JetBrains/compose-jb) - shared UI\n- [Decompose](https://github.com/arkivanov/Decompose) - navigation and lifecycle\n- [Mavericks](https://github.com/airbnb/mavericks) - state management using MVI. For this project I created a \n  minimalistic multi-platform ViewModel implementation using MavericksStateStore.\n- [Sudoku Game Logic](https://github.com/a11n/sudoku) A Sudoku generator and solver, ported to Kotlin multi-platform.\n\n### There are multiple modules:\n- `:common:sudoku` - displays a list of todo items and a text field\n- `:common:utils` - some shared utilities, including the state management classes\n- `:common:root` - UI entrypoint and navigation logic\n- `:common:compose-ui` - platform specific UI implementations (expect/actual funs)\n- `:android` - Android application\n- `:desktop` - Desktop application\n\nThe root module is integrated into Android and Desktop apps.\n\n### Features:\n- 99% of the code is shared: data, business logic, presentation, navigation and UI\n- View state is preserved when navigating between screens, Android configuration change, etc.\n- Model-View-Intent (aka MVI) architectural pattern\n\n### Running desktop application\n```\n./gradlew :desktop:run\n```\n\n### Building native desktop distribution\n```\n./gradlew :desktop:package\n# outputs are written to desktop/build/compose/binaries\n```\n\n### Running Android application\n\nOpen project in Intellij IDEA or Android Studio and run \"android\" configuration.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaronoe%2FComposeArcade","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faaronoe%2FComposeArcade","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaronoe%2FComposeArcade/lists"}