Kotlin Multiplatform / The Rise of Multiplatform App Development: Smaller Budgets, Better Apps

The Rise of Multiplatform App Development: Smaller Budgets, Better Apps

cover.png

If your company is considering to build a mobile app in 2019, we have some good news. You no longer need to endlessly brainstorm which platform to target first — iOS or Android. You should be developing both versions simultaneously while spending less than you used to. And Kotlin Multiplatform is how you do this.

[Check out the links at the bottom to supply your tech-speaking colleagues with the juicy details on successfully delivering Kotlin Multiplatform projects, six real-life case studies inclusive.]

Read on to learn how your app can become multiplatform without eating into your development budget and at the same time offering your users unique, platform-specific experience.

The usual cross-platform suspects

When it comes to cross-platform mobile app development, the usual suspects that come to mind are tools like PhoneGap, Xamarin, Ionic, and lately also React Native with Flutter.

Their appeal has been hard to resist: a universal tool that can reduce development effort for building iOS and Android apps in parallel has been the holy grail in the app developer community for a while now.

Unfortunately, none of these technologies has managed to become the de facto instrument for building mobile apps, let alone oust native development. When working with these cross-platform app development tools, developers most often gripe about:

  • Poor or limited UI/UX capabilities
  • Lack of access to platform-specific advanced features (e.g., camera and NFC)
  • Necessity to support three code bases: iOS, Android, and “cross-platform”

But with Kotlin/Native, and more specifically Kotlin Multiplatform, things are about to change as this nascent technology promises uncompromised native-app quality while significantly optimizing the app development process.

Multiplatform begs to differ

Kotlin is a programming language that got official support from Google a couple of years ago and since then has become the prime tool for building Android apps natively. But its potential is much more far-reaching than mere Android apps development. The Kotlin/Native technology — a part of the Kotlin ecosystem — allows developers to target the following platforms besides Android:

  • iOS / MacOS
  • Android
  • Windows
  • Linux
  • WebAssembly

Multiplatform projects are an experimental feature in Kotlin that lets developers build iOS and Android apps at the same time using a shared codebase. This shared code base may contain the business logic, client-server pieces, and everything else that iOS and Android apps can share under the hood.

What’s important is that UI and UX remain 100% native for both iOS and Android. As a result, users get to work with apps that offer experiences similar to other best-in-class apps on each platform.

Kotlin Multiplatform advantages for your business

One thing you need to remember about using Multiplatform is that iOS and Android developers will still be working in their usual environment to build out UX/UI and other parts that have to do with advanced hardware functionality. The rest is handled via a shared Kotlin codebase that can and should be modular — to reuse its parts in future apps.

Uncompromised apps quality

iOS and Android apps that we’ve developed using Kotlin Multiplatform projects provide native UX and feature UIs that are specific to each platform. So you don’t need to worry about how your apps will look like on different devices. They will scale accordingly on different screens and will look stunning, while users will appreciate the familiar and comfortable controls.

Faster time to market

Kotlin is currently the primary programming language for developing Android apps. Therefore, it’s natural that an Android developer would be responsible for working on shared libraries on your multiplatform project. And an iOS developer, when working on the app, will be just plugging the Kotlin code pieces that the Android developer has prepared. This means your iOS engineer will not be spending time on developing the code that handles server interactions or the code that is responsible for the overall logic of the application or whatever else they decide to share. And as a result, the apps will hit the app stores quicker.

Lower maintenance costs

It’s a rare case when an app that drives real business value sits in an app store without being updated. How often do we get notifications on our phones to update another app, right? With Kotlin Multiplatform most of the time, you’ll only need to update the shared code (once) and then “apply” it to both apps, which is not the same as iOS and Android devs working separately on a new set of features for both platforms.

Iterative approach

The Multiplatform projects feature is also great because you don’t need to refactor (equals to developing from scratch with cross-platform solutions) your existing apps to start getting the value. Any new functionality can be added via a shared library and will cost you less during maintenance.

Support for more platforms

The true potential of Kotlin Multiplatform lays in how many platforms it supports besides iOS and Android: the desktop OSs such as MacOS and Windows, WebAssembly, etc. It may have a mind-blowing effect on all your business because you will be able to update your apps on all major platforms using far fewer resources than you did before.

Kotlin Multiplatform trade-offs

Of course, as with any new technology, there are some downsides to using Multiplatform on all app development projects.

iOS developers will need to catch up

While Android developers feel completely at home with Kotlin, iOS app developers will need to learn a few things to be able to contribute to developing shared code. One thing that probably makes the whole idea less scary is that Kotlin resembles Swift in many ways: It’s a modern, well-documented programming language with similar syntax and excellent tooling. So the learning curve won’t be that steep.

Android vs. iOS architectures

iOS and Android developers will need to coordinate their approach to the architecture of the future apps, as a shared codebase implies that this architecture will be practically identical on both platforms. This certainly implies some quality time at the start of the project for iOS and Android developers working in tandem.

Experimental feature

Kotlin developers are very explicit about their commitment to the Kotlin Multiplatform functionality, but they also plainly state that the feature is experimental. For app developers, this means that anything can change any time, and this is something they should be ready for.

Got questions about Multiplatform?

At IceRock, we have been investing in Multiplatform a lot because we see the future of mobile development with one universal environment for developing apps on all platforms in parallel.

As of June 2019, we’ve already helped our clients release six apps to the app stores and keep on honing our Kotlin Multiplatform skills, which allows us to offer more appealing development budgets and delivery timelines. For more technical details please read:

The Dos and Dont’s of Mobile Development with Kotlin Multiplatform: Part I

The Dos and Dont’s of Mobile Development with Kotlin Multiplatform: Part II

Please get in touch if you have questions about leveraging the power of Multiplatform on your app projects.