logo
EducationiOS ApplicationCompletedFeatured

Vocapy Language Learning

Making vocabulary stick through science-backed learning

Vocapy is a language learning application that focuses on long-term vocabulary retention using proven memory techniques such as the Leitner spaced repetition system.

My Role
iOS Developer & Tech Lead
Year
2024
Duration
3 months
Team Size
3 members
Vocapy Language Learning
100+
Active Users
10K+
Words Learned
85%
Retention Rate
60%
Daily Active

The Journey

The Vocabulary Learning Problem

Why flashcard apps fail most learners

During our user research at Apple Developer Academy, we discovered something interesting: most language learners struggle with vocabulary retention, but it's not because they don't try hard enough. The problem with existing flashcard apps: • They're designed for fast learners (overwhelming for slow-paced learners) • They're too gamified (turns learning into a stressful competition) • They don't respect the natural forgetting curve • They're cluttered with features that distract from actual learning We interviewed 50+ language learners and found a consistent pattern: people wanted a simple, distraction-free app that would help them learn at their own pace without pressure.

Implementing Leitner System

Science-backed spaced repetition

As the Tech Lead, I researched various spaced repetition algorithms and decided on the Leitner system - a proven method that's been used since the 1970s. The implementation: 1. Words start in Box 1 (review daily) 2. Correct answers move words to the next box (longer intervals) 3. Incorrect answers send words back to Box 1 4. Each box has optimal review intervals based on memory research I built this using SwiftData for local storage and CloudKit for sync across devices. The architecture was Clean Architecture with MVVM, separating: • Domain layer (business logic, Leitner algorithm) • Data layer (SwiftData, CloudKit) • Presentation layer (SwiftUI views) This separation made it easy to test the spaced repetition logic independently from the UI.

The UI/UX Philosophy

Less is more for language learners

Working with our UI/UX designer, we decided on a radical approach: remove everything that's not essential for learning. No leaderboards. No streaks that make you feel guilty. No XP points. Just you and your vocabulary. The core flows we focused on: • Adding words (should take <30 seconds) • Reviewing words (minimal friction, maximum focus) • Tracking progress (motivating, not stressful) For the review interface, we used large, readable typography with ample whitespace. The SwiftUI animations were subtle - just enough to provide feedback without being distracting. One interesting technical challenge: implementing smooth swipe gestures that felt natural while preventing accidental inputs. I used SwiftUI's DragGesture with careful threshold tuning.

Helping Slow Learners Succeed

Real people, real progress

After launching on TestFlight, the feedback was overwhelming. One user wrote: "This is the first vocabulary app that doesn't make me feel like I'm failing." The metrics showed: • 85% retention rate (users still active after 1 month) • 60% daily active users • Average of 100+ words learned per user • Positive reviews highlighting the "distraction-free" design But the most rewarding moment? When a user messaged us saying they finally passed their language exam after struggling for months with other apps. That's when I realized - sometimes the best technology is the one that gets out of your way and lets you focus on what matters.

Technologies Used

SwiftUI
SwiftData
Firebase
Clean Architecture
Supabase
CloudKit

Key Features

Word list creation and categorization
Vocabulary retention method
Leitner spaced repetition system
Progress tracking with reminders
Simple, clean, and learner-focused user interface

Key Learnings

1

Clean Architecture might seem like overkill for a small app, but it made testing and iteration so much easier

2

SwiftData is powerful for local-first apps, but you need to carefully plan your data models upfront

3

CloudKit sync is tricky - handling conflicts and ensuring data consistency requires thoughtful design

4

As Tech Lead, my job wasn't just writing code - it was making sure the team understood the architecture and could work independently

5

User research is invaluable - we almost built a completely different app before talking to real language learners

Project Gallery

Vocapy Language Learning screenshot 1
Vocapy Language Learning screenshot 2
Vocapy Language Learning screenshot 3

Interested in this project?

Feel free to explore the code or see it in action. I m always happy to discuss the technical details!