← All projects
Ippo Japanese
Learn Japanese from the first kana to JLPT N1.
- Status
- TestFlight beta
- Platforms
- iPhone, iPad, Mac
- Started
- 2026
- Built with
- Swift, SwiftUI, SwiftData, CloudKit, WidgetKit
Website ↗ (opens in a new tab)Privacy ↗ (opens in a new tab)Support ↗ (opens in a new tab)
Why I made it
Most language apps are built for engagement and revenue rather than learning: hearts that stop you studying, paywalls, guilt notifications, padded lessons, romaji crutches, and grammar that never gets explained. The tools that do work, like Anki and textbooks, are effective but joyless.
Ippo (一歩, “one step”) is my attempt at the quickest evidence-based route from zero to N1. It's free, with no ads, accounts or data collection, and one of the project's rules is that it never optimises for time spent in the app.
What it does
- A full course from the first hiragana to JLPT N1, laid out as an illustrated road with one town per unit.
- Teaches each item before testing it, then asks for it again through choice, tiles, typing and listening.
- Reviews scheduled with FSRS, the spaced-repetition algorithm modern Anki uses.
- An adaptive placement test, and “walk ahead” tests to skip what you already know.
- Kana Dojo with stroke tracing, Kanji Garden, Word Garden, Listening Lab and a Grammar Library.
- A Japanese–English dictionary with tap-to-look-up that understands inflected forms (食べずに → 食べる).
- Recorded audio for every lesson cue, about 18,600 clips, bundled so it works offline.
- Optional iCloud sync and a daily reminder. Nothing to buy, nothing to sign up for.
Screenshots









Under the hood
- No third-party dependencies. The tokeniser, deinflector, FSRS scheduler (checked against the official test vectors) and the pipeline that compiles lessons, JMdict and KanjiVG into one bundled database were all written for the app.
- Answer checking follows one rule: never mark a correct answer wrong. Answers are normalised, variants accepted, near-misses caught, and anything unclear is accepted and logged.
- Progress syncs across devices through CloudKit with no server of my own, so the data models are kept CloudKit-safe: optional fields, additive changes only.
- The rewards system has its own ethics checklist. Streak freezes, energy meters and artificial waits are banned outright.
