{"id":45806479,"url":"https://github.com/rajashekarraju/hangman-compose","last_synced_at":"2026-02-26T14:04:58.750Z","repository":{"id":41393595,"uuid":"478249469","full_name":"RajashekarRaju/hangman-compose","owner":"RajashekarRaju","description":":video_game: Hangman Game for Android :robot: build with Compose :rocket:.  Built with jetpack components, Room for saving game history, preferences for loading game settings, ViewModels for persisting game state, LiveData/States for observing states, Koin for DI, minimal compose animations for good UX, Light/Dark theme :rainbow: MD3.","archived":false,"fork":false,"pushed_at":"2026-02-19T09:55:44.000Z","size":7234,"stargazers_count":20,"open_issues_count":2,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-02-19T12:53:10.048Z","etag":null,"topics":["composable","compose-android","compose-navigation","hangman-game","jetpack-components","jetpack-compose","koin-injection","kotlin-android","material-design","repository-pattern","room-database","viewmodel"],"latest_commit_sha":null,"homepage":"","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/RajashekarRaju.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-04-05T18:17:06.000Z","updated_at":"2026-02-19T09:55:49.000Z","dependencies_parsed_at":"2025-03-14T11:39:57.263Z","dependency_job_id":null,"html_url":"https://github.com/RajashekarRaju/hangman-compose","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/RajashekarRaju/hangman-compose","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RajashekarRaju%2Fhangman-compose","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RajashekarRaju%2Fhangman-compose/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RajashekarRaju%2Fhangman-compose/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RajashekarRaju%2Fhangman-compose/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RajashekarRaju","download_url":"https://codeload.github.com/RajashekarRaju/hangman-compose/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RajashekarRaju%2Fhangman-compose/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29861805,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T08:51:08.701Z","status":"ssl_error","status_checked_at":"2026-02-26T08:50:19.607Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["composable","compose-android","compose-navigation","hangman-game","jetpack-components","jetpack-compose","koin-injection","kotlin-android","material-design","repository-pattern","room-database","viewmodel"],"created_at":"2026-02-26T14:04:52.514Z","updated_at":"2026-02-26T14:04:58.743Z","avatar_url":"https://github.com/RajashekarRaju.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# :video_game: Hangman - Built With Compose Multuplatform :paintbrush:\n\n[![Deploy Web (Production)](https://github.com/RajashekarRaju/hangman-compose/actions/workflows/pages-production.yml/badge.svg)](https://github.com/RajashekarRaju/hangman-compose/actions/workflows/pages-production.yml)\n[![Build Packages](https://github.com/RajashekarRaju/hangman-compose/actions/workflows/packages.yml/badge.svg)](https://github.com/RajashekarRaju/hangman-compose/actions/workflows/packages.yml)\n[![Tests](https://github.com/RajashekarRaju/hangman-compose/actions/workflows/tests.yaml/badge.svg)](https://github.com/RajashekarRaju/hangman-compose/actions/workflows/tests.yaml)\n\n\u003cimg src=\"/assets/banner_hangman.png\" alt=\"Game Banner\" style=\"border-radius: 20px;\" /\u003e\n\n## Play / Download\n\n| Platform      | Access |\n|---------------| --- |\n| 🌐 Web        | [Play in browser](https://rajashekarraju.github.io/hangman-compose/) |\n| 🍎 macOS      | [Download DMG](https://github.com/RajashekarRaju/hangman-compose/releases/download/desktop-latest/hangman-macos.dmg) |\n| 🪟 Windows    | [Download MSI](https://github.com/RajashekarRaju/hangman-compose/releases/download/desktop-latest/hangman-windows.msi) |\n| 🐧 Linux      | [Download DEB](https://github.com/RajashekarRaju/hangman-compose/releases/download/desktop-latest/hangman-linux.deb) · [Download RPM](https://github.com/RajashekarRaju/hangman-compose/releases/download/desktop-latest/hangman-linux.rpm) |\n| 🤖️ Android | [Download APK](https://github.com/RajashekarRaju/hangman-compose/releases/download/android-latest/hangman-android.apk) |\n| 📱 iOS        | Run locally on macOS + Xcode: `bash scripts/run-ios-sim.sh` |\n\n### Thanks to [Cicero Hellmann](https://github.com/cicerohellmann) For giving this cool idea to build Hangman game with Compose for Android.\n\n## :sparkler: What's New: v0.2.0\n\n- [x] Kotlin Multiplatform architecture (`app`, `composeApp`, `game-core`, `core/*`, `feature/*`, `navigation`)\n- [x] Platform support: Android\n- [x] Platform support: Web (WASM + GitHub Pages)\n- [x] Platform support: Desktop (JVM: macOS/Windows/Linux)\n- [x] Platform support: iOS (Xcode project + simulator flow)\n- [x] Gameplay: 60-second timer per level\n- [x] Gameplay: hints (`Reveal`, `Eliminate`) with cooldown\n- [x] Gameplay: persistent game settings + history\n- [x] Gameplay: scoring improvements\n- [x] Difficulty: Introduced `VERY_HARD` difficulty for words \u003e= 11+ chars\n- [x] Categories: Introduced new categories and extended vocabulary.\n- [x] Responsive game layout (mobile/desktop/web) with previews and shared creepy design system.\n- [x] Cross-platform sound support (Android/Web/Desktop/iOS)\n- [x] Navigation3 update\n\n### Screenshots (v0.2.0)\n\n#### Foldable\n\n| Onboarding | Game | History |\n| --- | --- | --- |\n| ![Foldable Onboarding](/assets/fold_onboarding.png) | ![Foldable Game Screen](/assets/fold_game_screen.png) | ![Foldable History](/assets/fold_game_history.png) |\n\n#### Mobile\n\n| Onboarding | Game | Summary |\n| --- | --- | --- |\n| ![Mobile Onboarding](/assets/mobile_onboarding.png) | ![Mobile Game Screen](/assets/mobile_game_screen.png) | ![Mobile Game Summary](/assets/mobile_game_screen_summary.png) |\n\n| History | Select Category | Select Difficulty |\n| --- | --- | --- |\n| ![Mobile History](/assets/mobile_game_history.png) | ![Mobile Select Category](/assets/mobile_select_category.png) | ![Mobile Select Difficulty](/assets/mobile_select_difficulty.png) |\n\n## Initial Version (v0.1.0)\n\n- [x] Players will be challenged with unique words only.\n- [x] Players can view their score/game history.\n- [x] Players should know how many unique words can still guess.\n- [x] Players can see how many attempts they have to guess the word.\n- [x] Players can try out letters in any order they want.\n- [x] Players can to know how many points made when I completed a word.\n- [x] Players can to know how many points scored by completing all levels.\n- [x] Persist the game state at any point of the game.\n\n## Local Development\n\n### Common commands\n\n- Run Android app:\n  - `./gradlew :app:assembleDebug`\n- Run Desktop app:\n  - `./gradlew :composeApp:desktopRun`\n- Run Web locally:\n  - `./gradlew :composeApp:wasmJsBrowserDevelopmentRun`\n- Build Web distribution:\n  - `./gradlew :composeApp:wasmJsBrowserDistribution`\n- Run iOS simulator (from repo root, macOS + Xcode required):\n  - `bash scripts/run-ios-sim.sh`\n\n### Tests\n\n- CI-equivalent local test run:\n  - `./gradlew :app:testDebugUnitTest :game-core:desktopTest :feature:onboarding:desktopTest :feature:game:desktopTest :feature:history:desktopTest`\n- Broader KMP module tests:\n  - `./gradlew :composeApp:allTests :core:data:allTests :core:designsystem:allTests :feature:common-ui:allTests :feature:game:allTests :feature:history:allTests :feature:onboarding:allTests :game-core:allTests :navigation:allTests`\n\n## CI / Releases\n\n- `.github/workflows/tests.yaml`\n  - Runs on pull requests\n  - Runs JVM unit + desktop tests\n  - Runs Android instrumentation on push/workflow_dispatch\n- `.github/workflows/pages-production.yml`\n  - Deploys web app to GitHub Pages\n- `.github/workflows/packages.yml`\n  - On `master` push:\n    - builds Android APK\n    - builds desktop installers (DMG/MSI/DEB/RPM)\n    - updates release artifacts\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n- Open an issue for bugs.\n- Open a discussion for feature ideas.\n- Send a PR with focused changes and passing checks.\n\n## Credits\n\n- Game sounds: [Pixabay](https://pixabay.com/)\n- Font: [Creepster](https://fonts.google.com/specimen/Creepster#about)\n- Icons/background assets: modified assets from [unDraw](https://undraw.co/) and [iconscout](https://iconscout.com/)\n- Sound license documents: [pixabay-license](https://github.com/RajashekarRaju/hangman-compose/tree/master/pixabay-license)\n\n## License\n\nApache License 2.0. See [LICENSE](LICENSE).\n\n```\nCopyright 2022 Rajasekhar K E\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    https://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajashekarraju%2Fhangman-compose","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajashekarraju%2Fhangman-compose","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajashekarraju%2Fhangman-compose/lists"}