Just shipped Rushi — my first iOS app, built solo with Codex over the past 4 months. Wanted to share what I learned, especially for anyone considering Codex as their primary coding partner for an iOS project.
Background
I'd never written Swift before. Started with Codex as my pair-programmer, learning Swift by doing as I built. The app is a Buddhist toolkit — sutra reader + 108-bead mala counter + sutra calligraphy practice. Free for the first week, then $1.99 — early users keep it free forever via App Store purchase history.
What worked surprisingly well with Codex
- SwiftUI scaffolding from natural-language descriptions — first iteration was usable; ~80% of layouts hit on first generation
- Localizing 17 languages — Codex generated all the .strings files from English seeds with cultural awareness (e.g. it correctly chose Vietnamese honorifics for Buddhist terms; same for Tibetan transliteration)
- SwiftData migration code when I changed schemas mid-project
- CoreText fallback chain for CJK fonts — UIFont in iOS 17 has bugs with Chinese serif fonts, and Codex correctly recommended bypassing it with CTFontDescriptor explicit fallback
- Apple Search Ads keyword research — Codex generated competitive keyword lists that matched what ASA actually showed as high-volume
Where I had to take over
- Apple-specific UX nuances (haptic timing, large title behavior, dynamic type quirks) — needed multiple rounds with screenshots
- Audio concurrency — Codex tended to over-engineer with actors when AVAudioPlayer would do
- App Store metadata (privacy labels, age rating) — Codex would sometimes suggest things that didn't match actual data flow ("data collection: false" while suggesting analytics SDK in another file)
Codex-specific tips for iOS solo devs
- Show Codex the entire SwiftUI view file when iterating — partial context leads to half-broken layouts
- When testing, paste the exact Xcode error text including line numbers — Codex maps stack traces well
- For App Store review, ask Codex to write your privacy label statements based on your actual data flow, not your intent — it catches "I think we don't collect X" mistakes
- Don't let Codex pick your dependency list — it prefers "popular" libraries over "minimal" ones; for a solo iOS app you want the latter
Outcome
- Apple review: 2 days, no rejections
- 17 UI languages, 9 full-text languages
- 0 crashes in TestFlight beta
- Open-sourced everything: sutra texts CC0 1.0, app source on GitHub
- Codex token usage during development: ~50M input tokens, ~3M output tokens
Repo (with the open-source sutra texts): github.com/hooosberg/Rushi
Vibe coding made me anxious; building this calmed me down. Happy to answer specific Codex/SwiftUI/CoreText questions in the comments.
Top comments (0)