With Kotlin and Ktor technologies gaining more popularity among the community of backend developers, dozens of different sample applications and templates are created and published as open-source projects.

Ktor is an asynchronous framework for creating microservices, web applications, and more. It’s fun, free, and open source. So it doesn't force any particular architecture, set of libraries, or framework to be used, which means that you are free to choose what’s best for you and your project.

Today, I’m finally ready to share my personal Ktor template, polished by almost a year of use in production applications. …


With Kotlin Multiplatform technology gaining more popularity among the mobile developers' community, dozens of different sample applications and templates are created and published as open-source projects.

KMP doesn't force any particular architecture, set of libraries, or framework to be used, which means that you are free to choose what's best for you and your project, as well as you are free to choose what to share between platforms.

Today, I'm finally ready to share my personal KMP template polished by almost two years of use in production applications. …


With KMM (Kotlin Multiplatform Mobile) maturing every month, more and more teams are putting it in production on both Android and iOS. But as the adoption grows, new problems arise.

Today we will discuss an issue that may occur in modular applications, which have multiple KMP (Kotlin Multiplatform) frameworks shared and used in the iOS application. These KMP frameworks should use a common code from a 3rd module or library exposed to the iOS app.

Real-world example

Imagine a simple application that allows keeping track of favorite authors and books for all authenticated users. All data is persisted on the backend, so…


I'm a happy user of MasterClass for almost 3 months now, during which I've watched about 5 courses from experts in (very) different domains. These were probably the most engaging lessons I had online in my life.

I've got curious about how they engaged me and millions of other people worldwide to spend time on their platform and pay money for it. If you are as interested in the EdTech solutions as I am, let's try to figure that out together.

With this article, I'm finally starting the series of reviews for EdTech products — the subject I'm passionate about…


Firebase is usually considered a substitute for a "real" backend, mainly used by mobile teams to ship POC / MVP solutions without hiring backend developers and adding another technology (complexity) into a stack.

With the emergence of Ktor, it's now possible to write a real independent backend in Kotlin, which is widely popular among Android developers. See Backend for mobile engineers with Kotlin and Ktor for more details.

Does it mean that Firebase can't be useful for mobile development anymore? Of course, it doesn't! …


Legal matters can make sad even the most sober-minded developer. Especially when it comes to crafting documents, on which corporations, like Google or Facebook, spend thousands of man-hours.

But no worries, to each problem, there should be a solution on GitHub. And there is a great project call App Privacy Policy Generator created and open-sourced by Nishant Srivastava, which solves exactly this problem.

In the article, I'll show you how I generated and hosted Privacy Policy and Terms & Conditions documents for my open-source app Codeforces WatchR in 3 simple steps and about 5 minutes of my time.

Step 1: App information

Generator supports…


Most iOS (and Android) apps are written as a single module with features / layers separated by folders. If done right, modules can be extracted simply by moving whole folders to newly created modules. It’s rarely the case, though.

Modularization is known to be a good architecture decision for many reasons: better separation of concerns and features, cleaner code, easier communication and collaboration in the team.

With a number of modules growing, one day you will surely face a transitive framework dependency problem, which produces “ITMS-90562: Invalid Bundle” issue after uploading the build to App Store.

Disclaimer: We are using…


Let’s make things clear from the beginning. There is no way in which cross-platform mobile apps can match native mobile apps in performance, user, and developer experience. And they won’t ever be able to do it. Everything else is just marketing ;)

Native mobile apps are developed separately for Android (Kotlin) and iOS (Swift). Ecosystems are supported by Google and Apple correspondingly, so developers get the newest, the most stable, the most convenient tools (Android Studio, XCode), SDKs, and libraries for work.

There are only two issues about native mobile development: cost and consistency. If there is a problem, there…


How many times were you thinking about writing your backend for mobile apps you are working on? And how many times have you chosen Firebase instead? Are there any better options at the moment?

In this article, I'll describe our experience of writing Kotlin backend for Codeforces WatchR mobile apps using Ktor, which is officially positioned as follows:

An asynchronous framework for creating microservices, web applications, and more. It’s fun, free, and open source.

Why backend is needed?

Codeforces WatchR started almost 3 years ago as a pet-project, which used official Codeforces API to simply fetch and display data from server. But with time…


Developing breakthrough products is hard. Be it web or mobile, native or cross-platform, proof of concept, or production-ready app. By supporting several platforms, you multiply the difficulty by a factor of 2 or 3.

In this article, we will cover the following questions:

  • what is difficult about developing for multiple operating systems
  • why consistency is important
  • how to decrease complexity and increase the conformity of codebase

I’m going to share our experience of making native mobile applications more consistent, increasing our team’s coherence and bandwidth, and finally making our end-users happier 🤗

Inconsistent by design

As a mobile engineer with experience in both…

Yev Kanivets

Professional Mobile Engineer since 2014, passionated by #EdTech, learning and teaching. Competitive programming enthusiast. Marathon Finisher.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store