The development of mobile cross-platform apps is now a viable alternative to native app development. Through cross-platform app development, developers can create an app in one go, and then release it simultaneously on Android as well as iOS simultaneously. It is becoming increasingly popular for startups since it’s a fast and cost-effective method of reaching an array of users.
One of the latest cross-platform frameworks hitting on the scene are Kotlin Multiplatform. You can find from the table below, which is from Statista, that Kotlin Multiplatform is not among the top market investors. Although it’s yet to be introduced in the marketplace, I think it is packed with features that will bring more developers to the platform over the next year.
Introduction to Kotlin
Koltin is a framework for development that JetBrains developed in the year 2011. It was named in honor of Kotlin Island, an island situated near St. Petersburg, as an allusion at Java’s Java Island namesake. Kotlin was released officially in the year 2016. In the year 2017, Google declared first-class support to Kotlin for Android. In the year 2019, Google announced Kotlin as the preferred language for Android app developers instead of Java
Although Kotlin is mostly a software programming language it also has another aspect: Kotlin Multiplatform. Kotlin Multiplatform is created to support compilation for platforms in which virtual machines aren’t suitable or feasible like embedded devices or iOS.
The platforms that Kotlin intends to target for its Kotlin Multiplatform are:
- WatchOS, iOS, TVOS
- Windows (MinGW)
- Android NDK (code written in C/C++)
Kotlin Multiplatform Mobile (KMM)
KMM is an application development kit (SDK) to support iOS and Android application development that provides all the benefits of creating native and cross-platform apps that share code with Android as well as iOS. The beta was released in the year 2020, which means several companies are hesitant to upgrade until it becomes more well-established and stable. There are however production apps running with KMM such as Philips, Netflix, Leroy Merlin and VMWare.
KMM has many benefits. KMM are:
- Constructing applications for Android and iOS apps simultaneously
- DRY (Do not repeat yourself) principle. Sharing code among iOS and Android prevents you from repetition of your work.
- KISS (Keep it simple, dumb) principle. Working in KMM’s KMM shared library makes your codebase clean and organized.
- Software engineers can deliver features rapidly, but with high quality.
In KMM you can make use of one, shared script to compose:
- Data Models/Serialization derived from API JSON
- API Authentication and Calls
- Analytics Tags
- Monitoring of problems and exceptions
- Accessibility Text-to-text voiceovers are available taken from API calls
- Dev/Feature Switch Management
- Any business rule that required manipulating data prior to when it was delivered to the client
- Data mocks to test for compatibility with iOS and Android
When working with KMM project, you generally have a shared module, an iOS application as well as one Android application. The shared module includes all the common logic of both Android as well as iOS applications. When you build the scripts, they are built into both an Android library as well as the iOS framework. KMM includes a common program that implements the business logic and the shared module defines what code is used to call any native APIs you want to use within your application. For instance, if, for example, you have a Unique Identifier (UID) within the common code, you may specify a call to an operating system specific to one or both of these libraries.
The data and business logic layer of your application can be fully shared across Android and iOS using KMM. Since KMM was first released it has also seen further efforts to improve sharing of presentation logic as well as UI logic.
Disadvantages of KMM
In KMM they write server-side logic using Kotlin. Kotlin was originally developed as an Android program development language. The issue is that not many of iOS developers have the knowledge to utilize it for app development. It’s not difficult to find the right team to tackle this kind of approach.
The framework’s uniqueness. KMM is in its beta stage. This means that nobody can assure its stability. Therefore, if you take the choice to build mobile applications using KMM You will likely require a maintenance staff to deal with any issues that might appear. The good thing is the Kotlin team has committed that they will release the alpha version in the coming year.
This is a short description of KMM and doesn’t go deep into the details of this framework. As with all frameworks, KMM comes with its own set of benefits and issues. In the end, I believe that the advantages of KMM include the shared and reused code library as well as the efficiency of development that it provides, which will allow KMM to keep gaining popularity and traction for software developers.