Nico Abramowski
Technical Portfolio
android application repo + technical report

German Learning App

Offline-first Android flashcard app with spaced repetition, deck-based studying, daily limits, and local persistence.

KotlinJetpack ComposeNavigation ComposeRoomSQLiteDataStoreKSP
What it is

This is a small Android flashcard app built to make vocabulary practice more structured while also serving as a real Android development project in Kotlin.

Problem it addresses

Vocabulary study gets harder to sustain when review is unstructured. The app uses spaced repetition and deck-level limits so studying stays manageable instead of turning into a long unsorted card list.

What I implemented
  • An SM-2-style study flow where card ratings update intervals, ease, and next review time.
  • Deck-based study sessions with due-card and new-card counts.
  • A configurable daily new-card limit so study sessions stay realistic.
  • Offline progress storage using Room, with no account or server required.
  • Settings and a layered data/domain/ui project structure to keep the codebase readable as features grow.
What it demonstrates
  • Implementing domain logic in Kotlin instead of only wiring screens together.
  • Building Android UI with Compose while keeping persistence and business logic separated.
  • Thinking in offline-first terms and using local storage intentionally.
  • Using a personal-use product idea to practice architecture, state, and maintainable feature growth.