Keep the past independent of the catalog
A brew captures its recipe and equipment values as a historical snapshot. Editing or deleting catalog entries does not redefine the conditions of an earlier cup.
Native coffee journal
Remember what made this cup worth making again.
A native coffee journal for recording brews, keeping recipes, and comparing the conditions behind each cup. I built and released the app for iPhone and iPad, with Korean, English, and Japanese localization.
Development and review captures with synthetic demo data. Dates are shown below; later App Store builds may look different.

Reuse earlier settings and change the variables that matter for this cup. Optional measurements stay separate from zero values.
Captured
Keep elapsed time, the current pour target, and the planned water sequence together during brewing.
Captured
Search previous brews and inspect the conditions and ratings recorded for each one.
CapturedEngineering details reflect source reviewed on September 17, 2026. App Store releases may contain an earlier subset.
The interface edits value types. Repositories own persistence, while a shared coordinator manages an active or unsaved brew across app windows.
A brew captures its recipe and equipment values as a historical snapshot. Editing or deleting catalog entries does not redefine the conditions of an earlier cup.
A monotonic clock tracks elapsed time and atomic JSON checkpoints support relaunch recovery. Saving a result and removing its checkpoint are reconciled so a retry can recognize an already stored brew.
Recipe scaling checks overflow, non-finite values, and rounding residuals before producing a replacement. A failed adjustment preserves the original draft. This case is available as a standalone Swift package.
Naerim · 내림
I used Codex for bounded development tasks. For the brew-entry refinement, I requested a simpler flow based on individually selected measurements. The implementation preserved missing values, target versus actual water amounts, and the separation between new drafts and previous results.
I define product behavior, choose which changes to accept, and own release decisions. Builds, XCTest results, UI checks, and source snapshots document what was verified. Brewing and comparison use native Swift data and calculation logic.
The public recipe-validation package has 14 passing tests, including 324 deterministic ratio-and-target combinations, and a successful GitHub Actions run. The full app’s separate, dated verification is documented in its technical overview.