SudokuNova v0.2.0: Bringing Offline-First Sudoku to More Platforms
SudokuNova v0.2.0 is now available on GitHub.
SudokuNova is an open-source, offline-first Sudoku project built with Kotlin, Jetpack Compose, Kotlin Multiplatform, and Compose Multiplatform.
While the project started with Android as its primary application platform, the longer-term goal is to build a consistent Sudoku experience across desktop, mobile, and the web.
Version 0.2.0 represents another step toward that goal.
A Shared Sudoku Foundation
At the center of SudokuNova is a Kotlin Multiplatform Sudoku engine.
It handles fundamental puzzle operations independently of platform-specific UI code, including:
- Classic 9×9 Sudoku board validation
- Puzzle solving and generation
- Seven difficulty levels
- Conflict detection
- Candidate calculations
- Unique-solution validation
- Logical solving and hint foundations
Separating the Sudoku engine from the user interface makes it easier to reuse correctness-critical logic across platforms.
Puzzle Exchange and Validation
One of the most interesting capabilities in this release is puzzle-code exchange.
SudokuNova uses a versioned puzzle-code format named SNP1.
Rather than immediately accepting arbitrary imported puzzle data, the shared puzzle exchange system validates the input.
It checks the encoded structure, Sudoku constraints, and whether the imported puzzle has exactly one solution.
This helps ensure that imported puzzles meet the project's correctness requirements before becoming playable sessions.
Platform-specific exchange adapters provide additional integration foundations for clipboard, sharing, and file operations. Some asynchronous platform integrations remain under development.
Restoring Imported Games
Saving generated puzzles and restoring imported puzzles are not necessarily the same problem.
An imported game needs to preserve the original puzzle identity rather than accidentally reconstructing a different puzzle.
SudokuNova addresses this using versioned session formats.
Existing generated sessions use SNG1, while imported sessions use SNG2, retaining validated puzzle provenance.
The restoration process checks imported puzzle data again rather than trusting a saved snapshot blindly.
This is an important foundation for reliable cross-platform persistence.
Cross-Platform Distribution
SudokuNova v0.2.0 introduces automated packaging for several targets.
The release includes:
- Windows MSI installer
- macOS DMG installer
- Linux DEB installer
- WebAssembly distribution ZIP
- Android debug/testing APK
- iOS simulator framework for developers
These artifacts serve different purposes.
The Android debug build is intended for testing, not production distribution. The iOS simulator framework is not a standalone installable iOS application.
Desktop packages also require additional platform-specific signing and real-world installation validation.
The goal is to expand practical distribution while documenting the limitations accurately.
Offline-First by Design
SudokuNova's architecture prioritizes local gameplay and storage.
The shared settings and gameplay persistence systems are designed to operate without requiring a cloud account or analytics service.
This makes local storage, data validation, and predictable state restoration important engineering concerns.
What's Next?
There is still work ahead.
Future improvements include broader cross-platform feature parity, deeper device testing, accessibility validation, more complete browser integration, and production distribution readiness.
The project remains open to feedback, bug reports, and contributions.
Explore SudokuNova
Release:
https://github.com/sanskarIN/SudokuNova/releases/tag/v0.2.0
Source code:
https://github.com/sanskarIN/SudokuNova
If you enjoy Sudoku, Kotlin Multiplatform, or open-source development, I'd be interested in hearing your thoughts.
Thanks for following the project's progress!
SudokuNova — Think. Solve. Master the Grid.

Top comments (0)