Blog   |   Website

Greetings from the JetBrains and Kotlin Community!

This newsletter is dedicated to some big news in the multiplatform development community. JetBrains released the alpha version of Compose Multiplatform for iOS, enabling developers to build cross-platform user interfaces with Kotlin. Compose Multiplatform allows you to create a UI once in Kotlin and re-use it on Android, iOS, and other platforms.

Compose Multiplatform for iOS (Alpha)

Here are some key takeaways from this release: 

  • We encourage you to try Compose Multiplatform for iOS in your experiments.
  • The framework utilizes APIs already used for UI development on Android, making it easy for developers familiar with modern Android development to get started.
  • Compose Multiplatform for iOS is still a work in progress, and we welcome the developer community to give it a go and share their feedback.
  • Sample applications and project templates are available to help developers get started.

In the meantime, we also curated expert opinions on this topic for you to offer you a unique perspective and analysis. We talked to mobile development gurus and asked them how the introduction of Compose Multiplatform for iOS will impact the mobile industry and what main challenges they face when building a cross-platform UI.

Chris Banes

Chris Banes, Freelance

Software Engineer and Android GDE 

"Developing mobile apps is notoriously expensive when you consider the amount of development, testing, and engineering time they require. Cross-platform toolkits have been gaining in popularity for years, as they allow teams to save time and money, which can be better spent on creating great products.

For me, Compose and Kotlin Multiplatform are game-changers as you gain all of the benefits of code sharing across platforms and using a modern reactive UI toolkit, while also enjoying all the advantages of KMP: seamless integration with ‘native’ frameworks/SDKs where needed and native performance.

Cross-platform UI has gotten a bad reputation over the past few years, with a number of high-profile apps ditching their cross-platform solutions in favor of writing everything ‘natively’. Part of this is due to the way that some toolkits work, biasing toward some platforms over others, and leading to bad UX or performance on those platforms.

The hardest part in writing cross-platform is making it feel native. That doesn’t necessarily mean using native-looking components, but more subtle things like scroll friction, gesture handling, motion flourishes (e.g. overscroll), animation curves, interaction feedback, touch bounds, and text sizes, to name but a few. Flutter has done a great job at emulating these things from iOS for instance, and it’s something I hope Compose Multiplatform will follow. It’s early days, though!"

PhilippLackner

Philipp Lackner, Freelance

Native Android Developer

"If Compose Multiplatform gets stable, I think it will have an impact comparable to Flutter's impact right now. All in all, it allows us to build Android and iOS apps in a great programming language while keeping the use of platform specific APIs as simple as possible, since they can be used in native language.

I've built one app with Compose Multiplatform so far and at the moment, you definitely notice its early stage. The core is working well, but as for now, I faced many smaller issues that couldn't easily be resolved, such as properly supporting and switching to dark mode on iOS without needing to restart the app or laggy UI on the iOS side when it comes to animations. Obviously, it's currently in alpha so such issues aren't a surprise. Right now, it feels like you still need a lot of iOS code to work around these issues, but if JetBrains manages to improve this, I see a bright future in Compose Multiplatform."

You can also watch Philipp’s video beginners course Build Your First Compose Multiplatform App (KMM) which describes how you can use Compose Multiplatform to build UI for both Android and iOS in Kotlin.

Johannes Svensson

Johannes Svensson, Instabee

Lead Android Developer

"I think that, in the near future, it will have a big positive impact on the quality of cross-platform apps, since it enables experienced mobile developers with Kotlin experience to develop and maintain apps for two platforms with little extra effort compared to just targeting Android. This is using a language we love with great tooling and an open-source library ecosystem that is growing quickly thanks to the low barrier with KMP to add support for other platforms than Android. That has the potential to be one of the bigger benefits compared to other cross-platform solutions.

This will also greatly increase the number of existing apps that could benefit from using a cross-platform technology since it’ll enable most companies with apps that are currently available for Android at least to really streamline development and enable them to innovate and iterate at great speed. This will be especially useful for startups that want to try out new things, internal apps that usually don’t require native UI components, hobby projects, and even fully designed apps like those from bigger tech companies.

With many mobile developers already proficient in Kotlin, I think this could pick up pretty quickly after a stable-enough release where some of the most important feature requests have been implemented."

Sebastian Aigner

Sebastian Aigner, JetBrains

Kotlin Developer Advocate

"Compose Multiplatform on iOS really closes the distance between the mobile platforms. Personally, I consider Compose Multiplatform on iOS to be “the missing piece” in the Kotlin Multiplatform story: Sharing business logic was already a huge productivity boost, but for situations where it’s not feasible or desirable to maintain different native UIs, Compose Multiplatform provides the missing link that enables a shorter time-to-market and allows a broader audience to be reached without having to make the jump to an entirely new and separate ecosystem.

I'm certain Compose Multiplatform will be a huge boost to the skills of existing and aspiring Android developers. Because the skills of Modern Android Development apply so directly to Compose Multiplatform, it’s going to empower them to write apps that reach more people more quickly.

Usually, cross-platform frameworks tend to be a one-way street: After adopting them, going back to native UIs often means having to rewrite the app entirely from scratch. Compose Multiplatform is in a very unique position here. When running on Android, a Compose Multiplatform application is the exact same as a regular Jetpack Compose application. That means even if, at some point, a team decides to move away from Compose Multiplatform, they will still have a perfectly working, 100% native Android application written using the exact same APIs and structures as other, non-multiplatform apps. By essentially taking an established framework from one platform and bringing it to other platforms, Compose is taking a novel approach that avoids these kinds of drawbacks.

Apps targeting more than one platform either may want to look consistent between different platforms, or need to provide a user experience that is closer to the platform in question. Deciding between the two and then properly realizing that approach can be a challenge."

The authors’ views are entirely their own and do not necessarily reflect the views of JetBrains.

Please don’t forget to share the Modern Mobile Newsletter with your friends and colleagues. Stay tuned! More news and expert advice are coming soon!

The JetBrains team
The Drive to Develop