Book Image

Simplifying Application Development with Kotlin Multiplatform Mobile

By : Róbert Nagy
Book Image

Simplifying Application Development with Kotlin Multiplatform Mobile

By: Róbert Nagy

Overview of this book

Sharing code between platforms can help developers gain a competitive edge, and Kotlin Multiplatform Mobile (KMM) offers a sensible way to do it. KMM helps mobile teams share code between Android and iOS in a flexible way, leaving room for native development. The book begins by helping you to gain a clear understanding of the Kotlin Multiplatform approach, how it works, and how it is different from cross-platform technologies, such as React Native and Flutter, and code sharing options, such as C++. You'll then see how your team can use this software development kit (SDK) to build native applications more effectively by learning timeless concepts and working through practical examples. As you advance, you'll get to grips with the core concepts, understand why UI sharing fails, and get hands-on with developing a small KMM application. Finally, you'll discover expert tips and best practices, along with production- and adoption-related questions, that will help you take the next step in your project and career. By the end of this Kotlin book, you'll have gained a solid understanding of the capabilities of KMM and be able to share code between Android and iOS flexibly.
Table of Contents (15 chapters)
Section 1 - Getting Started with Multiplatform Mobile Development Using Kotlin
Section 2 - Code Sharing between Android and iOS
Section 3 - Supercharging Yourself for the Next Steps

App size best practices

Many people are interested in how big of an impact shared KMP code can have on their iOS app's size. This will depend on what kind of logic it contains and what third parties your KMP code uses.

Generally speaking, since Kotlin and Swift are both fairly static languages, there is not much difference between the binary size of a Kotlin class and a Swift class. So, what's the catch?

As you may recall from Chapter 2, Exploring the Three Compilers of Kotlin Multiplatform, we discussed how your Obj-C/Swift code can see this native output of the Kotlin/Native compiler by generating Obj-C adapters. Since Obj-C is a more dynamic language, it negatively impacts binary size.

So, what can you do to manage binary size? The simple answer is to limit how many Obj-C adapters you use. How? Mark everything that you don't need to expose through your shared code as internal.

If you notice that your binary size has increased in a non-linear, exponential...