Skip to content

Development journal

Posts tagged: Mobile Games

Published notes filed under this topic.

RSS feed
React Native Game Architecture

How to model board completion events for game feedback in React Native

9 min read

Written by: Jonathan Reis on

A practical event model for distinguishing a completed row, column, or block from the ninth correct placement of one digit, then routing both through sound and haptic feedback.

Game development

How to build a global line of independent logic puzzle games

11 min read

Written by: Jonathan Reis on

A practical strategy for launching Sudoku, Nonogram, Hashi, and other logic puzzles as independent products before connecting them in a shared collection.

Product strategy

How to evaluate mobile app and game ideas before writing the MVP

10 min read

Written by: Jonathan Reis on

A practical method for comparing mobile product ideas using competitors, monetization, distribution, personal fit, and evidence instead of category size alone.

React Native Skia

Drawing an entire Sudoku board in one SkPicture (and why the declarative Canvas stuttered)

9 min read

Written by: Jonathan Reis on

Why the declarative Skia renderer with 81 React components per cell struggled on low-end devices, and how reimplementing the board with Skia.PictureRecorder + <Picture> removes the reconciler from the render hot path.

UX and product

Running a heuristic UX critique on my own app — and actually fixing what it found

9 min read

Written by: Jonathan Reis on

A solo developer walks through a Nielsen-based heuristic evaluation of a published React Native game, prioritizes the findings, and measures the score change after fixing them. Practical process for indie devs without a UX team.

React Native

Your React Native confetti renders behind the cards: sibling order, zIndex, and elevation

8 min read

Written by: Jonathan Reis on

A win-screen celebration overlay fell behind the result cards and dropped too fast. The cause was React Native's sibling paint order, not a missing z-index. Here is why zIndex alone is not enough on Android and how we fixed both bugs.

Game Design

When helpful validation becomes a cheat: Sudoku notes that leaked the answer

7 min read

Written by: Jonathan Reis on

Our Sudoku blocked pencil marks that conflicted with the row, column, or box. It felt like a safety check. It was actually a free solver that told players which numbers were still possible. Here is the fix and the principle behind it.

React Native

A hidden TextInput can't capture a hardware keyboard on React Native's New Architecture

8 min read

Written by: Jonathan Reis on

We wanted physical-keyboard input in a React Native game on Android. The classic hidden TextInput trick failed under Fabric because showSoftInputOnFocus is ignored. adb proved it, and a config plugin fixed it for good.

React Native Skia

The rounded border that pushed every Sudoku digit off-center

8 min read

Written by: Jonathan Reis on

A border on an overflow-hidden container silently shifted our Skia board and un-centered every digit. Here is how screenshots, not eyeballs, found the real cause in a React Native game.

React Native tooling

Why __DEV__ is false in release builds, and how we gated dev tools by config instead

7 min read

Written by: Jonathan Reis on

A developer shortcut hidden behind __DEV__ disappeared exactly when we needed it in a release build. Here is why that happens in React Native and how we moved the gate to runtime config.

Design systems

Design tokens as one source of truth: giving a Sudoku app a real art direction

8 min read

Written by: Jonathan Reis on

How we gave a template-looking Sudoku a bold art direction by changing the theme tokens first, sharing them with our website, and staying inside a low-end performance budget.

React Native Haptics

Adding Expo haptics to a React Native game without making vibration a sound setting

7 min read

Written by: Jonathan Reis on

How Daily Sudoku added a persisted vibration toggle, reused gameplay feedback events, and kept Web bundling safe while using expo-haptics on native.

React Native Android

Disabling Android touch sounds in React Native without fighting Switch

6 min read

Written by: Jonathan Reis on

How one React Native sound setting ended up owning gameplay effects, Android tap feedback, and a double-toggle bug in a nested Switch.

React Native performance

Measuring perceived latency in React Native when frame metrics are not enough

7 min read

Written by: Jonathan Reis on

How we measured React Native response time from tap handler to state update and paint when frame stats did not explain what players felt.

React Native performance

Moving a React Native Sudoku board to Skia without deleting the old renderer

6 min read

Written by: Jonathan Reis on

How we tested a Skia Sudoku board behind config without deleting the React Native renderer, accessibility layer, or rollback path.