Apps · 7 min de leitura

Como o Sudoku BLA foi feito

Bastidor técnico. SwiftUI puro, sem UIKit, sem dependência de terceiros. Geração algorítmica de oito mil puzzles, Canvas no lugar de View hierarchy, design system extraído pro Modelo BLA.

Pra quem é dev, designer, ou curioso de como apps são feitos, vale uma olhada nos bastidores do Sudoku BLA. Não é segredo, e parte das decisões pode interessar mais quem está pensando em fazer o próprio app que o jogador casual que quer só uma partida. Mas quem joga também pode encontrar valor em entender por que o tabuleiro é assim, por que a fonte é aquela, por que o app é tão pequeno.

Stack técnico: SwiftUI puro, sem UIKit, sem framework de terceiros. Roda em iOS 26.0+, iPadOS 26.0+ e macOS Tahoe 26.0+. Foi escrito do zero, sem código herdado. Cada decisão de arquitetura é original. SwiftUI puro é decisão de manutenção a longo prazo: menos dependência significa menos quebra com novas versões de iOS, menos tempo gasto em correção, mais tempo gasto em melhoria.

Tabuleiro é Canvas, não View hierarchy. A grade do Sudoku é desenhada num único componente Canvas (API nativa SwiftUI pra desenho 2D), em vez de 81 Views individuais (uma pra cada célula). Decisão de performance: Canvas renderiza muito mais rápido, especialmente em transição de tema, em animação de pulso, e em redimensionamento. A diferença não é teórica, é mensurável.

Geração de puzzles: oito mil puzzles únicos, gerados algoritmicamente em build-time (não em runtime). O processo de geração usa algoritmo de cascade fill: a partir de uma solução completa, vai removendo números um por um, sempre verificando que a solução continua única. Quando não consegue mais remover sem perder unicidade, o puzzle está pronto. Cada puzzle foi verificado pra ter solução única. Dois mil puzzles por nível (fácil, médio, difícil, expert).

Tela de seleção de puzzles do Sudoku BLA no nível Expert, mostrando cards numerados de #1.969 a #1.992.
Dois mil puzzles por nível, oito mil no total. Gerados em build-time, empacotados em JSON no bundle do app.

Storage: cada puzzle é serializado em JSON e empacotado direto no bundle do app. Não tem servidor envolvido. Não tem rede. Não tem download dinâmico. O app abre, lê o JSON local, e renderiza o puzzle escolhido. É o que permite o modo offline-first total.

Estado de jogo é salvo automaticamente em UserDefaults a cada jogada. Não tem botão de salvar. Não tem confirmação. Você pode fechar o app no meio da partida e abrir cinco horas depois exatamente onde parou. Decisão de UX: usuário não precisa pensar em gerenciamento de estado. O app cuida disso.

Design system extraído pro Modelo BLA. Cores (Verde BLA #B0CC42, Coral #D85A30, Sombra #8A8680, Areia BLA #F1EEE7), tipografia (Literata pros números, IBM Plex Mono pro eyebrow editorial), componentes (BLAButton, BLALogo, tema switcher) foram desenhados pro Sudoku BLA, depois extraídos pra template chamado Modelo BLA. Os apps BLA seguintes (Notas BLA, Lanterna BLA, Cruzadinha BLA) começaram clonando esse modelo. O Sudoku BLA é, simultaneamente, jogo e biblioteca de padrões.

Foi feito por uma pessoa, Ivan Grycuk, em Goiânia. Sem time de desenvolvimento, sem QA terceirizado, sem produto manager dedicado. SwiftUI permite isso: o ciclo de iteração é tão rápido que dá pra ter qualidade alta com equipe pequena. Sudoku BLA está na App Store, e cada release passa por auditoria antes do submit. Pra quem está pensando em começar a fazer app: dá pra começar. Demora menos do que você imagina.

baixe o app

Ícone do Sudoku BLA

Sudoku BLA

Sudoku, puro. Oito mil puzzles em quatro níveis. Sem propaganda, sem assinatura. Universal pra iPhone, iPad e Mac.

próximo ensaio

O silêncio do Sudoku BLA