aipat.chDarren Sharman
Case studies

No more platform compromise

From Flutter to Kotlin

Why I used Flutter, what I noticed when the first Kotlin apps were on my phone, and moving 13 Android apps across.

Android apps moved to Kotlin
13
24 October to 2 November 2026
10 days
for Control, from asking to in use on my phone
Overnight

The situation

I was originally using Flutter because of the cross-platform side: one codebase for Linux, Windows and Android. By October 2026 I wasn't convinced it was the best for mobile, to be honest.

What I noticed

The Kotlin apps just feel a bit more fluid. In terms of user experience it's chalk and cheese, and sometimes I felt like I was fighting the interface in the Flutter apps. Everything seemed to work straight out of the box, which impressed me. On some apps the difference in battery use was astounding. On roamPlay there wasn't too much in it.

What I did

Control and roamPlay went first, on 24 October. On 27 October I decided all new Android apps would use Kotlin. dKeep, roadTerm and Lore followed, then Career Compass, Transcriptor, listShop and Task Focus, and Pulse on 2 November. Control's Kotlin app was asked for one evening and was on my phone the next morning.

I kept each Flutter app until its functionality had been confirmed in the new Kotlin app. The new apps go through the same e2e testing as everything else, on an emulator or a real phone.

The result

Thirteen Android apps are now Kotlin. Flutter is staying for the Linux and Windows desktop apps for the time being, but I'm having a serious look at Rust. Every new Android app is Kotlin with Jetpack Compose, and the web apps are React.

What a team can take from it

I think I can do better with apps specific to each platform. I picked cross-platform to have one codebase, and with an AI writing the code I don't need to make that compromise any more.

If you'd like to talk about this, get in touch.

More case studies