Why KoLearn?


None of the apps I found in the store had the features I was looking for and provided a good UX (most were bloated with ads).

That's when I decided to create my own app. Something that would allow beginners to start smoothly but would also stay relevant as the user progresses on the language learning journey.

Creating KoLearn

How the App Evolved
2017 - 2019


This first iteration of the app was more of a learning experience. I used Java (Kotlin was not that known) and I did not think much about architecture and other best practices.

2019 - 2020

Baeuran and Learnion Kr

I worked on top of what I had, migrated whole codebase to Kotlin and started using jetpack libraries. I also followed more best practices and took design decisions more seriously.

2020 - 2021

Learnion Kr and Start of KoLearn

I got used to MVVM architecture, Material Design, Prototyping and Testing.

2021 - 2022


The app was way more mature. Branding and UI/UX was more cohesive. Codebase fully done in Kotlin using MVVM and other Jetpack libraries. Before creating a new feature I divided on small tasks and used Adobe XD for Prototyping.

How it was built



  • Adobe XD for prototyping. XML used for Android Views (with data binding) and Material design for guidelines.


  • Kotlin, Gradle, MVVM (architecture), Coroutines, Flows, Room (Database), ML Kit, Paging, Fragments (Single Activity), Work Manager, LeakCanary


  • Firebase Storage, Firestore, Firebase Cloud Messaging (Push Notifications), Crashlytics, Analytics, Auth, Admob, Functions, Test Lab

Main Features

  • All
  • Flashcards
  • Quizzes
  • Lessons
  • Community

Custom Quizzes

Quizzes View

Customizable Quizzes

You have different type of quizzes. With Timer, multiple option and hand-drawn.

Each quiz depends on the content the user has added. They can generate quizzes by priority, category and deck.

Each quiz will have a Summary Screen upon completion. You will be able to see the correct/incorrect, as well as the points given to you.


Managing flashcards

Flashcards View

Managing Flashcards

KoLearn allows the user to create flashcards however they want. They can also create their own categories.

You can have audio, an image or text as the flashcard front. You can also filter, change how flashcards are displayed and search by a flashcard content.

Every time you get a flashcard wrong in a quiz, the app will give more priority to that card. This way it will be likely you will get a card more frequently the more you get it wrong.


Learning with Lessons

Lessons View


For beginners, you can learn how to write and read basic Korean with lessons. They contain flashcards you can add and quizzes relevant to the topic.

The app will also track your progress and give you achievements upon reaching certain milestones.


Reaching others

Community View


KoLearn is an offline-first app. But if you want, you can create an account to chat with others. You can create posts to share images, share flashcards and more.

A moderation feature is also there. Moderators are able to delete or block users.