J.BLOG

Category

IT Dev

Development notes from apps and services I build.

IT Dev

Rules that make an App Store review submission safe to rerun

If the server accepts a review request but the response is lost, a rerun is rejected as a duplicate. How DailySudoku decides what a rerun should do.

IT Dev

Fixing the order of the UMP explainer and the ATT request on iOS

DailySudoku requested ATT from the app, while Google UMP could also request it after an explainer. How I found the ATT calls in the SDK and reordered them.

IT Dev

Keeping the export compliance answer in sync across two files and ASC

The encryption export answer lives in Info.plist, a submission declaration file, and App Store Connect. Fixing a false success and a blocking regression.

IT Dev

When parallel tests disturbed each other through global notifications

An ad banner test that passed locally in 0.02 seconds hit a 45-minute limit in CI. The cause was a global notification from another test, fixed by injection.

IT Dev

How a canceled Task still ran to the end in a review prompt

A review prompt scheduled 2 seconds after a win could still run after the screen was left. A cancel after Task.sleep returns does not come back as an error.

IT Dev

Turning Apple Pencil handwriting into Sudoku digits

Placing a handwritten digit in DailySudoku: splitting strokes into taps and ink, grouping them, building model input, and applying only trusted results.

IT Dev

Exposing 81 Sudoku cells to VoiceOver and TalkBack

The DailySudoku board is one view on screen, but assistive technology needs 81 cells. How iOS and Android expose each cell, and what is still unverified.

IT Dev

Why a daily puzzle ID needs a generator version

A daily board is made from the date. If the generator changes, one date can give two boards, and a date-only ID cannot tell them apart. Design and proposal.

IT Dev

Keeping and revoking a one-time remove-ads purchase on iOS and Android

A remove-ads purchase looks final, but reinstalls, pending payments, and refunds make the purchase result alone unreliable. Read current entitlements instead.