Thursday, September 11, 2025
HomeiOS DevelopmentGoogle Endorses Kotlin Multiplatform | Kodeco

Google Endorses Kotlin Multiplatform | Kodeco


Throughout 2017 Google I/O, Android builders rejoiced with the announcement of Kotlin as one of many predominant languages for app improvement. With the language’s steady improvement and powerful neighborhood adoption, the Android workforce quickly switched solely to Kotlin. From that time forth, all of the libraries had been written solely in Kotlin.

This yr, with the soundness of Kotlin Multiplatform, the rising developer adoption, and the brand new K2 compiler, Google joined the neighborhood to announce its assist for multiplatform improvement.

Notice: This text supplies a short overview of the Kotlin Multiplatform framework. If you’re searching for a deep dive, see our Kotlin Multiplatform by Tutorials e-book. It’s written by the writer of this text.

Kotlin Multiplatform

Kotlin Multiplatform, or KMP, is a know-how that enables builders to share their enterprise logic throughout a number of platforms: Android, iOS, Desktop, Internet and Server. It stands out amongst cross-platform options like Flutter and React-Native as a result of its aim isn’t to have a single codebase and share your complete code however to share what is sensible on your mission. This solely pertains to your app’s enterprise logic and never UI.

There are clear benefits:

  • You don’t must commit your whole mission to a single framework: This is a crucial level, particularly now that the assist from Xamarin ended. Apps that had been constructed with it now must be migrated to .NET or rewritten in… Kotlin Multiplatform.
  • You determine what’s value sharing and when: KMP adoption doesn’t carry threat to your mission. You don’t must migrate your app instantly: you can begin utilizing it when there’s a brand new function to implement. Then, use it once more within the subsequent requirement and the one after. As soon as your workforce is assured, you may analyze if it’s value refactoring components of your app. If it’s not, preserve them as they’re. Kotlin Multiplatform is interoperable along with your current code.

Give attention to sharing the enterprise logic as a result of the UI is often carried out natively, both with XML/ Compose for Android or UIKit/Swift UI for iOS. This lets builders use native APIs to construct a extra performant and scalable app constructed on a robust basis.

Adjustments to Kotlin Multiplatform

For many who are already acquainted with Kotlin Multiplatform, the framework has leveled up a bunch of recent additions similar to:

Android Libraries With KMP Assist

Together with the announcement, Google launched updates in a few Android libraries, now with assist for Kotlin Multiplatform. They’re at the moment in several ranges of improvement. Those thought of steady are:

Whereas the alpha variations are:

  • Android Libraries With KMP Assist

    Together with the announcement, Google launched updates in a few Android libraries, now with assist for Kotlin Multiplatform. They’re at the moment in several ranges of improvement. Those thought of steady are:

    • Annotations: Use annotations in your courses, capabilities, and properties.
    • Collections: A set of assortment varieties and utilities.
    • DataStore: Gives a key-value information storage resolution.
    • Paging: Simplifies loading giant datasets by creating teams of smaller chunks (paginated) that the person can simply entry.
    • WindowSize Class: Defines the present dimension of a window. Use it to signify totally different display sizes and configurations.

    Whereas the alpha variations are:

    • Room: Android’s official library for native storage (SQLite).
    • Lifecycle: Manages the lifecycle of actions, permitting parts to regulate their habits relying on the lifecycle state.
    • ViewModels: Shops and manages UI information relying on the exercise lifecycle.

Google Docs Joins the KMP Journey!

Google Docs migrated to make use of Kotlin Multiplatform for the enterprise logic, which is now shared throughout Android, iOS, and Internet. Though there have been no additional particulars, the Google Workspace workforce is anticipated so as to add the identical assist to different apps like Gmail, Calendar, Drive, and Meet later within the yr.

Google Docs has over one billion downloads on the Google Play Retailer and a mean of 4.3 stars. These metrics are essential to indicate Google’s dedication to Kotlin Multiplatform and make sure its validation on a extensively used app that must be performant to satisfy customers’ wants.

Documentation Replace

The Android workforce additionally up to date the official documentation so builders can see which courses can be found for Multiplatform. As an example, go to androidx.assortment to see which information varieties you should utilize on Android, Desktop, and iOS (Native).

Android documentation for androidx.collection showing the current support for Kotlin Multiplatform

Pattern Apps

There’s now a GitHub repository for Kotlin Multiplatform samples on Android. Right here, yow will discover two pattern apps that use the libraries introduced throughout Google I/O:

Each initiatives goal Android and iOS. Earlier than you’re employed on these apps, you could configure your setup.

As you may see, KMP supplies a variety of superior updates. Earlier than you may actually recognize them, you could get it working in your machine. Fortunately, it’s not too tough.

Putting in KMP

Earlier than opening the apps, you could set up:

As soon as put in, open the pattern that you just wish to compile.


brew set up cocoapods

After synchronizing the mission, you may choose which app you wish to run by way of configurations: androidApp or iosApp. One app targets Android units/emulators, and the opposite iOS units/simulators.

You can compile your apps to Android or iOS targets.

Right here’s DiceRoller compiled for each platforms:

DiceRoller app running on the Android emulator and on the iOS simulator

You’ll get this error as a result of the pattern makes use of an older model of AGP (Android Gradle Plugin). To resolve this, open the libs.model.toml file situated contained in the gradle folder and search for agp. Exchange the present model with:

Synchronize the mission. Now you may compile the app for each targets.

When compiling the iOSApp configuration you would possibly see the next error:

Subsequent to it, you’ll see a button with the textual content Repair on it. Click on it to open Xcode, which ought to load the proper schema.

For those who nonetheless see the earlier error, compile the mission straight from Xcode.

Alternatively, you may attempt to reboot your Mac.

Notice: Relying on the model of Android Studio you’re utilizing, you would possibly see the next error when making an attempt to run your app:


Assortment accommodates no component matching the predicate.

You’ll get this error as a result of the pattern makes use of an older model of AGP (Android Gradle Plugin). To resolve this, open the libs.model.toml file situated contained in the gradle folder and search for agp. Exchange the present model with:


agp = "8.4.1"

Synchronize the mission. Now you may compile the app for each targets.

When compiling the iOSApp configuration you would possibly see the next error:


Error: cannot seize Xcode schemas with /usr/bin/xcodebuild

Subsequent to it, you’ll see a button with the textual content Repair on it. Click on it to open Xcode, which ought to load the proper schema.

For those who nonetheless see the earlier error, compile the mission straight from Xcode.

Alternatively, you may attempt to reboot your Mac.


Assortment accommodates no component matching the predicate.

agp = "8.4.1"

Error: cannot seize Xcode schemas with /usr/bin/xcodebuild

Right here’s Fruitties operating on the Android Emulator and iOS Simulator:

Fruitties app running on the Android emulator and on the iOS simulator

Notice: To compile the iOS model, you have to set up a MacBook with Xcode on each apps.

It’s lastly time to get began!

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments