A Sudoku game for Android & Desktop written with Jetpack Compose Multiplatform

Overview

πŸš€ Compose Arcade

A sample Kotlin Multiplatform Compose Sudoku app for Android & Desktop. Most code is shared between Android & Desktop using Kotlin Multiplatform and Jetbrains Compose.

Alt text

This example supports the following targets:

  • Android (Compose)
  • JVM (Compose - Win / Linux / MacOS)

Libraries used:

  • Jetpack Compose - shared UI
  • Decompose - navigation and lifecycle
  • Mavericks - state management using MVI. For this project I created a minimalistic multi-platform ViewModel implementation using MavericksStateStore.
  • Sudoku Game Logic A Sudoku generator and solver, ported to Kotlin multi-platform.

There are multiple modules:

  • :common:sudoku - displays a list of todo items and a text field
  • :common:utils - some shared utilities, including the state management classes
  • :common:root - UI entrypoint and navigation logic
  • :common:compose-ui - platform specific UI implementations (expect/actual funs)
  • :android - Android application
  • :desktop - Desktop application

The root module is integrated into Android and Desktop apps.

Features:

  • 99% of the code is shared: data, business logic, presentation, navigation and UI
  • View state is preserved when navigating between screens, Android configuration change, etc.
  • Model-View-Intent (aka MVI) architectural pattern

Running desktop application

./gradlew :desktop:run

Building native desktop distribution

./gradlew :desktop:package
# outputs are written to desktop/build/compose/binaries

Running Android application

Open project in Intellij IDEA or Android Studio and run "android" configuration.

You might also like...
Welcome Fruit Ninja πŸ₯  on Jetpack Compose Desktop πŸš€, using Canvas API 🎨
Welcome Fruit Ninja πŸ₯ on Jetpack Compose Desktop πŸš€, using Canvas API 🎨

Compose-Fruit-Ninja πŸ₯ Welcome Fruit Ninja on Jetpack Compose Desktop πŸš€ , using Canvas API 🎨 Featured on jetc-dev How to Run From gradle tab from ri

Alien invasion πŸ‘Ύ gane is back! this time specially on Jetpack Compose Desktop πŸš€, using Canvas API 🎨
Alien invasion πŸ‘Ύ gane is back! this time specially on Jetpack Compose Desktop πŸš€, using Canvas API 🎨

Compose Space-Invaders πŸ‘Ύ Alien invasion πŸ‘Ύ is back! this time specially on Jetpack Compose Desktop πŸš€ , using Canvas API 🎨 Featured on Compose Diges

Jetpack Compose Desktop Galaxy Example
Jetpack Compose Desktop Galaxy Example

Compose-StarWars Compose-StarWar 3D Space particle System build using Canvas API Jetpack Compose Desktop πŸš€ How to Run From gradle tab from right-hand

A Slack demo app for desktop using Jetpack Compose UI toolkit
A Slack demo app for desktop using Jetpack Compose UI toolkit

ComposeSlackDesktop A Slack demo app for desktop using Jetpack Compose UI toolkit Demo Jetpack Compose Jetpack Compose is Android’s modern toolkit (no

Spotify Demo Desktop app using Jetpack compose
Spotify Demo Desktop app using Jetpack compose

Compose Spotify Desktop Declarative UI A Spotify demo app for desktop using Jetpack Compose UI toolkit Demo Home Search & Detail Jetpack Compose Jetpa

Schedule sample to play with Jetpack Compose Desktop
Schedule sample to play with Jetpack Compose Desktop

Schedule sample to play with Jetpack Compose Desktop

Exercising Compose for Desktop and Compose for Web (Canvas)
Exercising Compose for Desktop and Compose for Web (Canvas)

Compose Counting Grid A simple application to check Compose for Desktop and Compose for Web (Canvas) drawing speeds when drawing grids (or tables) wit

Pokedex Compose is an independent re-write of a demo application by the name of Pokedex, but written in jetpack compose.
Pokedex Compose is an independent re-write of a demo application by the name of Pokedex, but written in jetpack compose.

Pokedex Compose Pokedex Compose is an independent re-write of a similar project by the name of Pokedex. I am recreating the UI but I am doing it using

🧱  A tetris game fully built using Jetpack Compose
🧱 A tetris game fully built using Jetpack Compose

A tetris game fully built using Jetpack Compose, almost all UI elements are created by code, including the following app icon, which is also generated by Composable with @Preview.

Owner
Aaron Oertel
Android @ Microsoft
Aaron Oertel
Briar-desktop - A desktop program for Briar, bringing secure messaging to your desktop and mobile devices

Briar Desktop A desktop program for Briar, bringing secure messaging to your des

Briar Project 16 Dec 17, 2022
A Multiplatform GUI for Hashing, written in Compose for Desktop

HashHash A Multiplatform GUI for Hashing, written in Compose for Desktop Report Bug . Request Feature About The Project HashHash is a Multiplatform Gr

BanDev 20 Dec 29, 2022
A desktop code editor app using Jetpack Compose for Desktop and IntelliJ Platform

Compose Code Editor A desktop code editor app using Jetpack Compose for Desktop and IntelliJ Platform. Project Structure The code is contained in the

Alex 73 Dec 19, 2022
Test-compose-for-desktop - Hello World in Compose for Desktop

Testing Run from command line: ./gradlew run Regular build: ./gradlew packageUb

Sebastian 3 Sep 20, 2022
πŸ’» A cross-platform desktop application to identify libraries used inside an android application. Made possible by Compose Desktop ⚑

?? stackzy A desktop app to analyse APK. Built using Compose desktop ✨ Demo Watch demo ??️ Usage Show usage ?? Install Platform Download Status Linux

theapache64 876 Dec 24, 2022
Jetpack Compose Boids | Flocking Insect 🐜. bird or Fish simulation using Jetpack Compose Desktop πŸš€, using Canvas API 🎨

?? ?? ?? Compose flocking Ants(boids) ?? ?? ?? Jetpack compose Boids | Flocking Insect. bird or Fish simulation using Jetpack Compose Desktop ?? , usi

Chetan Gupta 38 Sep 25, 2022
Simple space game, built with Compose for Desktop!

Asteroids, built with Compose for Desktop Want to learn how I built it? Read the two-part article in which I describe the most interesting parts of th

Sebastian Aigner 69 Nov 28, 2022
A simple Snake game implemented using Compose for Desktop

CompoSnake A simple Snake game implemented using Compose for Desktop. Run: ./gradlew run Author Twitter: @arkann1985 If you like this project you can

Arkadii Ivanov 58 Dec 27, 2022
Odyssey it's a declarative multiplatform navigation library for Multiplatform Compose

Odyssey Odyssey it's a declarative multiplatform navigation library for Multiplatform Compose ?? WARNING! It's an early preview, so you use it with yo

Alex 168 Jan 5, 2023
Resume of Louis CAD, made with Jetpack Compose. Supports the Web, Desktop, and Android.

ResumeComposition What This project is the source code of the resume/CV of Louis CAD. The latest PDF export is available here, it is ready to print. H

Louis CAD 22 Aug 14, 2022