Platform selection

Want to develop apps? You need to decide whether you want to do it for a single platform or more, and in the latter case whether or not to use a cross-platform framework. The table below may help, but you’ll need to weight the advantages and disadvantages yourself.

(Note that if you want to write components for multiple development platforms, you need to assume that cross-platform frameworks are different target platforms for your components as well!)

Single platform Cross-platform (single framework), native output Cross-platform (single framework), interpreted output Multiple platforms
E.g. One of:

  • WPF (C#)
  • UWP (C#)
  • iOS (Swift)
  • macOS (Swift)
  • Android (Kotlin)
  • Linux (C++)
  • Web (TypeScript)
  • Unity 3D (C#)
  • etc.
One framework:

  • Xamarin: UWP, iOS, macOS, Android (C#)
  • Unity 3D: UWP-HoloLens, desktop, Web (C#)
  • etc.
One framework:

  • Cordova: UWP, iOS, Android, Web (TypeScript)
  • Electron: Windows, macOS, Linux, Web (TypeScript)
  • etc.
More/all of:

  • WPF (C#)
  • UWP (C#)
  • iOS (Swift)
  • macOS (Swift)
  • Android (Kotlin)
  • Linux (C++)
  • Web (TypeScript)
  • Unity 3D (C#)
  • etc.
Learning Easy, short Medium Medium Easy, long
Native apps (good performance) Yes Yes No Yes
Expected issues Few, easy to fix Many, difficult to fix Many, difficult to fix Many, easy to fix
Maintenance Easy Medium Medium Easy, long
Market size Small Large Large Large/Largest
Advertisements

About Sorin Dolha

My passion is software development, but I also like physics.
This entry was posted in Development and tagged , , , , , . Bookmark the permalink.

Add a reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s