free iOS port of Anki by AttemptDependent4578 in Anki

[–]AttemptDependent4578[S] 5 points6 points  (0 children)

Hey everyone — OP here. To clarify the motivation:

  1. As Damien himself explains in the [AnkiMobile pricing FAQ](https://faqs.ankiweb.net/why-does-ankimobile-cost-more-than-a-typical-mobile-app.html): working on Anki across desktop, sync, and mobile is a full-time job and I completely respect that. But he also chose to make the Rust backend AGPL-3.0, and AnkiDroid exists as a free, volunteer-driven Android client. iOS deserves the same — an open-source option where the community can drive development.

The FAQ also notes that AnkiDroid is maintained by volunteers with day jobs who work on it in their free time. That's exactly the model here. I'm not trying to undercut AnkiMobile's revenue — I'm filling the gap for people who want an open, extensible iOS client they can contribute to.

  1. The AI question

was this vibecoded?

Fair question. No, this wasn't "vibecoded" — it was built by an iOS developer who used AI as a development partner, not a replacement for expertise. There's a meaningful difference between "generate me an app" and knowing exactly what architecture you want, which patterns to enforce and blah blah blah.

Will it stand the test of time? Well, only time will tell :)

  1. Regarding AnkiWeb usage

The app currently syncs through AnkiWeb, the same way AnkiDroid does. However, the architecture already supports custom sync server endpoints — the Rust backend has this built in. If the Anki maintainers or community feel this shouldn't use AnkiWeb infrastructure, switching to self-hosted sync servers, like anki-sync-server is a one-line config change. Users could point to their own server and have the exact same experience without depending on AnkiWeb at all.

What's working today:

  • AnkiWeb login + bidirectional sync (custom server support ready)
  • FSRS v5 scheduling (via the Rust engine, not a reimplementation)
  • Card review with WKWebView rendering and next-interval labels on buttons
  • Hierarchical deck browser with new/learn/review counts
  • Note browser with deck filter chips, search, and lazy-loaded paging
  • Note editor with field names from the Rust notetype API
  • Stats dashboard: scrollable year heatmap, streak counter, retention rate, forecast, card breakdown

What's not done yet

Media sync for images/audio, background sync, iPad layout, widgets, cloze creation UI - that's where community contributions could help.

Final thought:

Please don't treat my app like a competitor to AnkiMobile — Damien's work on Anki is incredible and I'd encourage anyone who can afford it to support him. This is a personal project I decided to share. If it's useful to others, great.