Mobile Development

Mobile Development Today, Part 1: The Big Picture

Kotlin or Swift? Flutter or React Native? Native or cross-platform? Choosing a mobile stack shapes the whole project. Part 1 maps the landscape, with opinions but without dogma.

Illustration: three monitors showing code with the words Swift, Kotlin, and Dart on an electronics workbench with a breadboard, an oscilloscope, and a desk lamp AI-generated image

Anyone who wants to build an app today faces a question that simply did not exist twenty years ago: which language should it be? Back then there was hardly any choice at all. J2ME for phones, and that was it. Today, the list of options piles up so high that at first glance it confuses more than it helps.

And the decision is not purely technical. It has consequences that shape the entire project: development time, maintainability, performance, team size. As someone who comes from electronics and at some point made the jump into software development, I know the feeling well. You want to understand what happens under the hood before you commit to a tool.

The mobile world roughly splits into three camps. The first is native development: Kotlin for Android, Swift for iOS. Each platform gets its own codebase, its own tooling, its own logic. The second camp relies on cross-platform frameworks such as Flutter or React Native, which promise to serve both worlds from a single codebase. And then there is the hybrid approach, which essentially wraps a web app in an app shell.

Sounds tidy? It is not. Within each of these camps there are further differences that massively affect a developer's day-to-day work. Which rendering model is behind it? How tightly is the framework bound to the platform APIs? How large and how active is the community? Those are the questions that count, not the marketing copy on the respective websites.

In the next parts of this series, I take a closer look at the most important candidates: Swift and Kotlin as the native representatives, Flutter and React Native as the two cross-platform heavyweights, and Kotlin Multiplatform as the option that personally occupies me the most right now. At the end, there is no ranking and no winner. Instead, there is an honest decision framework that leads to different answers depending on the project, the team, and the budget.

One thing up front: the "best" language does not exist. But the wrong choice for your particular project certainly does.