For devs, designers, or anyone curious about how apps are built, a look behind the scenes of Sudoku BLA is worth it. Nothing is secret, and some of the decisions may interest more the person thinking about building their own app than the casual player looking for a round. But the player can also find value in understanding why the board looks the way it does, why that font, why the app is so small.
Tech stack: pure SwiftUI, no UIKit, no third-party framework. Runs on iOS 26.0+, iPadOS 26.0+ and macOS Tahoe 26.0+. Written from scratch, no inherited code. Every architecture decision is original. Pure SwiftUI is a long-term maintenance decision: less dependency means less breakage with new iOS releases, less time spent on fixes, more time spent on improvements.
The board is a Canvas, not a View hierarchy. The Sudoku grid is drawn in a single Canvas component (SwiftUI’s native 2D drawing API), rather than 81 individual Views (one per cell). Performance decision: Canvas renders much faster, especially during theme transitions, pulse animations and resizing. The difference is not theoretical, it is measurable.
Puzzle generation: eight thousand unique puzzles, generated algorithmically at build time (not at runtime). The generation process uses a cascade-fill algorithm: starting from a complete solution, it removes numbers one by one, always checking that the solution remains unique. When it can no longer remove without losing uniqueness, the puzzle is ready. Each puzzle has been verified to have a unique solution. Two thousand puzzles per level (easy, medium, hard, expert).
Storage: each puzzle is serialized in JSON and bundled directly into the app. No server involved. No network. No dynamic download. The app opens, reads local JSON, and renders the chosen puzzle. That is what enables the full offline-first mode.
Game state is saved automatically in UserDefaults on every move. No save button. No confirmation. You can close the app mid-round and open it five hours later exactly where you stopped. UX decision: the user does not need to think about state management. The app handles it.
Design system extracted to Modelo BLA. Colors (Verde BLA #B0CC42, Coral #D85A30, Sombra #8A8680, Areia BLA #F1EEE7), typography (Literata for the numbers, IBM Plex Mono for the editorial eyebrow), components (BLAButton, BLALogo, theme switcher) were designed for Sudoku BLA, then extracted into a template called Modelo BLA. Subsequent BLA apps (Notas BLA, Lanterna BLA, Cruzadinha BLA) started by cloning that template. Sudoku BLA is, at the same time, game and pattern library.
Built by one person, Ivan Grycuk, in Goiânia. No development team, no outsourced QA, no dedicated product manager. SwiftUI allows that: the iteration cycle is so fast that quality is achievable with a small team. Sudoku BLA is on the App Store, and every release goes through audit before submission. For someone thinking about starting to build apps: you can start. It takes less than you imagine.