Making development across platforms easier for developers

MAY 14, 2024
Maru Ahues Bouza Product Management Director Android Developer
Brandon Badger Director, Product Management
I’m looking to build an app that works well across platforms. How do I know which languages, frameworks, and tools are right for me?

This is a common question we hear from developers in the community - sometimes followed by a slight nudge that with all the options from Google, it can be hard to decide, and we hear you!

Making the right decision for your app depends on a variety of factors including team and product goals. We’ve been working on making it easier across Google’s offerings for you. In this blogpost, we’ll offer some guidance to help choose the right tech stack for your project.

Use Kotlin for leveraging the latest and unique capabilities of Android

Kotlin is the recommended programming language if you want to leverage the latest and unique capabilities of Android for your app. Using Kotlin with Jetpack Compose, Android’s modern UI toolkit developed in Kotlin, enables you to access the latest and full Android-specific features and services to create high quality and premium apps. Moreover, you gain access to the best app performance on all the device types and screens Android runs on including: phones, tablets, foldables, laptops, watches, TVs, cars and more. A Kotlin Android app is also the best choice for apps that require access to deep integration with hardware and Android platform. Using Kotlin and Jetpack Compose simplifies and accelerates UI development on Android with Live Edit code editing, Compose UI preview tool support in Android Studio, and intuitive Kotlin APIs. More details on how to get started with Compose.

Sharing business logic across your mobile and web apps? Check out Kotlin Multiplatform.

Kotlin Multiplatform (KMP) is our recommended way to share business logic across your apps. This year at Google I/O, we announced that Android is supporting Kotlin Multiplatform to share business logic across mobile, desktop, web, and server. Using KMP allows you to compile Kotlin code down to platform specific binaries (e.g. Android, iOS, JVM, WASM), so you can call platform specific APIs with minimal overhead. KMP helps reduce code duplication and makes maintenance easier for shared business logic, and you will continue to build your UI using platform specific APIs. More details on the latest updates on Kotlin Multiplatform for Android.

Need to share both UI code
and business logic across platforms? Try Flutter!

Flutter is Google's recommended SDK for when you want to share business logic and UI code across all platforms to deliver a consistent, reliable user experience. With Flutter you can create rich app experiences across Android, iOS, the web, and desktop (Windows, macOS, Linux) all from a single, shared app codebase. Flutter apps are written using the Dart programming language, which compiles directly to machine code (e.g., ARM, x86, RISC-V) on most platforms (e.g., iOS, Android). Dart is also used on the Web, where it compiles to JavaScript, and as announced today at Google I/O also to WebAssembly. Dart also provides stateful hot-reload during development, which Flutter developers use to quickly iterate on visual changes. More details on how to get started with Flutter.

Because we want to continue to offer you choices, we're actively working on improving both Flutter and Kotlin in terms of interoperability across all platforms.

You can pick the approach that fits best for your business, whether you’re sharing both UI and business logic across multiple platforms with Flutter or development with Kotlin Multiplatform for shared business logic. We hope that these technologies enable you to build great apps more quickly and efficiently.