How to create a Language Learning Application?
By: Alla Dubovska
Tags: iOS, Kotlin Multiplatform, Education, Android, Language Learning

The story of “BaOui: Master French” mobile app started almost a year ago with a traditional French greeting “Bonjour, comment allez-vous?”, to which I’ve got the not less traditional “Bonjour, ça va bien!” response.

It was the only typical part of the whole project, which is now successfully finished, released to Google Play and App Store, and started to onboard its first paying customers. What an amazing journey it was!

Thanks to our dear clients, we’ve learned a lot about the “Language Learning” space, its rules, and challenges. We’ve got the priceless knowledge and experience, which now we want to share with you.

Language Learning Landscape

The best place to start the research is the Language Learning section in HolonIQ Education’s “Global Learning Landscape” report. There are 40+ companies listed already, but many are still missing.

“App driven language learning for kids and adults has made language learning, particularly English, one of the top app categories on all platforms.”

This quote can be easily verified using App Annie’s Top Apps live report for the Education category in Google Play and App Store. On October 11th, 2020, language learning apps take more than 20% of the Top 50 (Grossing).

It is a massive part of the EdTech market, but it shouldn’t surprise anyone. Learning a foreign language is probably one of the most useful and universal skills you can get in the modern globalised world.

Check Rosetta Stone’s article about ROI of language learning.

Content Comes First

Language learning is commonly associated with mobile applications when it comes to smartphones and tablets. Hence most people think, that having a great mobile app is enough to compete in the space.

But the truth is that content is even more important than application. Actually, you have to start with content, and design your app in such a way, that it presents your content in the best way possible.

This is exactly what happened with BaOui project, where all dialogs, grammar, exercises, and vocabulary were prepared well before even starting to work on the design (not saying about development).

Of course, we changed and updated content many times while designing and developing mobile applications, but its style and format always stayed the same. We’ve ended up with a super-authentic content-centric mobile language learning app, and not just a copycat of some existing competitor.

Imagine the scale: 50+ topics, 100+ dialogs, hundreds of exercises, and thousands of essential words, phrases, expressions, and slang terms. All crafted and recorded from scratch by bilingual founders.

Content Delivery

BaOui team put an enormous effort into creating the content, so it was about half-ready when we started to work together. Here we faced the first challenge: how to transform human-readable content into a machine-readable one, and keep it flexible for future updates?

Creating the authoring tool for an MVP project with a limited budget can be hardly justified, so we resolved the problem in a smart way: initial human-readable content (created in Mac’s Notes) was half-manually, half-automatically transformed into Markdown files, which we then parsed with scripts, and transformed to JSON format (perfect fit for computers).

The second challenge was about keeping the content in sync, so it could be easily updated by clients, and shipped to users at any moment. To address the problem, we leveraged GitHub repository for collaboration on the content, changes and updates verification, safely shipping everything to end-users.

And finally, we used Firebase to host all the content in a form of short lessons, which were grouped into topics. In such a way, we were able to flexibly deliver a learning experience to our users, both online and offline, for free.

Mobile Applications

Once the content was ready, application design and development came into play. It’s important to remember, that the main purpose of apps is to engage users, make them learn, and retain the new language.

So the app was split into 3 parts:

Learn : guide the user through different topics, which include dialogs, theory, exercises and vocabulary.

: guide the user through different topics, which include dialogs, theory, exercises and vocabulary. Practice : give a 24/7 access to essential words, phrases, expressions, so they are always there, when the user needs them.

: give a 24/7 access to essential words, phrases, expressions, so they are always there, when the user needs them. Review: repeat all learnt vocabulary, so it’s retained and can be used later.

As a result, we designed and developed 44 screens, which implement the full user flow, starting from authentication and onboarding, and ending by subscription and user feedback.

Sounds like a lot of work? Yes, it is! But thanks to Kotlin Multiplatform technology we were able to share the vital business-logic between native iOS and Android applications, which reduced the time spent on development by approximately 30%. In this article you will find more details about the KMP.

There is no better way to show up the app than demo done by our dear clients and satisfied users. Happy watching!

Conclusions

Developing a language learning application is a complex, but interesting process, which takes a lot of dedication from the whole team. We should always remember that software development is just a tool, which helps to bring ideas to life and scale existing solutions to solve bigger problems.

So always start with an idea, innovative learning approach, unique and engaging content. Once you have a clear vision, find a technology partner, which is capable of understanding and guiding you to the project completion.

Need an advice? Don’t hesitate to drop us a line on hello@xorum.io.