3 different ways to build a mobile app

KG.codes · 1 minute read ·     

⁣Thinking about entering mobile app development?

It’s important to select the correct type of mobile app development based on the app’s needs and the developer skill/resources available.

Here are the different types of mobile app development to consider:

1. Pure/native

This is ‘pure’ mobile development using the tools provided directly from Google and Apple.

iOS: code in Swift or Objective C using the Apple Xcode IDE

Android: code in Java or Kotlin using Android Studio (or other Java-based IDE)

Advantage: completely native and performant for each platform; easier to update to latest platform features

Disadvantage: double development (per platform); need to know both platform languages

2. Cross-platform frameworks/libraries

Apps can be written in a single language/framework and be ‘cross’-built to both iOS and Android from a single codebase

Great options are React Native (JavaScript/React), Native Script (JavaScript/Vue.js/Angular), and Flutter (Dart), and .Net MAUI (C#/.Net)

Advantage: share code between iOS and Android (write once, deploy on both); use the language you know well (like JavaScript or C#)

Disadvantage: can be less performant than pure native; can be more difficult to support native platform features/UI at times

3. “No-code” app builders, or Hybrid

Alternative solutions are using “No-code” app builders, and Hybrid solutions like Cordova

“No-code” app builders: various services that enable you to build apps without coding - Advantage: can built quickly without knowing how to code

Disadvantage: there could be notable limitations in deeper app capabilities

Hybrid: most logic/UI is proxied through a web view embedded into the app; more like a web app embedded into a native app frame. I don’t recommend this today since it typically had very poor performance and/or quality

More thoughts

I also want to mention that any of these options still require you to work with Apple and Google for:

  • Publishing to their app stores
  • Using their services (push notifications, payments, etc.)

I’ve used all three options but my favorite is native as it’s the the most powerful/flexible.

The one I use the most however is cross-platform as it’s the most time-saving/optimal.

Which option(s) interest you? If you have some experience, feel free to share.

Want to share this?