Native Cross-platform Game (1 of …)

Ana Redmond
Jun 30, 2018 · 2 min read

I started building math games for kids on Android, because… I saw the pickup of Chromebooks in schools; I wanted to build for those who couldn’t afford an iPad; others built for iOS first, and I wanted to try something different.

My idealism of reaching the most, however, met the reality that the influencers (writers, editors, bloggers, researchers, teachers, investors) who recommend apps have iPads. Over the 7 years I have been creating educational games for kids, I’ve been asked hundreds of times: ‘Where do I get the iOS app?’. The answer has so far been: ‘There isn’t one’. This year I plan to change that.

I’ve been looking at the different ways to do cross-platform development:

  1. React-Native: No, ‘cos Javascript, absense of type safety just drives me crazy. And, too slow for games. This : AirBnB said they spent 2 years on it, and are not going to use it anymore. Big company with a lot of resources dropping it, is concerning.
  2. Flutter: The ‘everything is a widget’ is too heavy-weight for game development. I will probably look at this again for supporting screens, but not for games. I will definitely use it if Google decides to replace Dart with Kotlin.
  3. Xamarin: No. ‘cos C-sharp. I suppose it is useful for someone who already has a lot of investment in the Microsoft eco-system. We don’t. I am fluent in Java and barely know C-sharp.
  4. Unity: It seems overly complex framework for mere 2D games. ‘Build once, retest everywhere’ paradigm is not appealing. Doesn’t mix well with rest of the apps native screens/code.
  5. Kotlin-Native: Yes. ‘cos Kotlin. It compiles into native code, so is superfast. Kotlin is already native for Android. With Kotlin-Native, there is native compilation for iOS too. I can use whichever layer of abstraction/platform-library I need or want. Plus, can add other platforms (even windows) in the future.

My easy-peasy-fun plan before I started writing the code was:

The pulling-my-hair-out reality right now is more like:

The good news, however, is that the toughest part i.e. the Game SDK with the drawing, audio, and touch handling in iOS and Android is almost done. I can soon start converting our existing games to multi-platform. Next post on how I built a multi-platform Game SDK wrapper using Kotlin-Native.

Written by

Software Designer and Developer. Mother. Building educational apps for my daughters to teach them math concepts at

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade