n most cases, a good portion of the technical stack for native apps is already defined for you – or at least limited in number/variety of options. You’ll use either Java or Kotlin for Android, and Swift or Objective-C for iOS, for example. With cross-platform apps, there are many more options and possible combinations.
The easiest way to narrow these options down to get started in defining project requirements is to determine what’s most important for your app — performance, appearance, features, and functionality, etc. Fortunately, you have three main options to choose from:
- Compile-time options are interpreted by the OS and are the best choice for high-performance apps with close to native UI/UX look-n-feel. Developers will need to know the APIs for all targeted platforms, and write code specific for each.
- Runtime options rely upon a virtual machine (a virtual OS), look and feel just like native apps, but their APIs are limited and extra functions create risks.
- Web-based options work through browsers and are usually the least expensive, offer universal coverage, but tend to have more limited functionality than native apps.
To compare the various pros and cons of each: