← 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

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

Ippo Japanese screenshot: road
Ippo Japanese screenshot: kanji garden
Ippo Japanese screenshot: kana dojo
Ippo Japanese screenshot: dictionary
Ippo Japanese screenshot: today
Ippo Japanese screenshot: lookup
Ippo Japanese screenshot: dojo
Ippo Japanese screenshot: garden
Ippo Japanese screenshot: grammar

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.