Cross-Platform Development: Native vs. Native Cross-Platform vs. Hybrid Cross-Platform
By: Austin Howard Tech
Tags: Mobile App Development, Cross Platform, Web Development, Software Development, Software Engineering

Developing a cross-platform application can be done a few different ways and each way comes with advantages and disadvantages.

The first way is to develop separate native applications: one for iOS, one for Android, one for Web, several for desktop, and others depending on which platforms will be supported. The second approach is using a native cross-platform framework in which code is shared but components are built separately for each platform and rely on native controls. The third approach is using a hybrid cross-platform framework in which code, UI components, and controls are shared completely.

Native App Development

Native apps are built for the specific platform and the devices supported. Since native apps are built to support a particular operating system, there is full access to the latest device specific hardware and software technologies. Native apps typically offer the best performance and latency. The downside is that the app will also require native implementations for other platforms with separate code bases which takes a lot of time or requires a team of developers.

Advantages & Disadvantages

Advantages

- Benefit from all available features of the platform, including the latest technologies.

- Platform specific UI design (users get the platform look and feel that they expect)

- Fully customizable

- Generally better performance and latency

Disadvantages

- Developer must know and be capable of implementing the application for all platforms or must have a team of developers who specialize in each platform

- Multiple code bases (must update each code base for each update/feature)

- Developer must consider the device specific hardware and software components throughout each step in the development process

- Long development time

Frameworks, Tools, & SDKs

A lot of these tools can be used for multiple platforms, but here are some tools that you can use to start developing with each.

iOS

- Swift/Xcode: The standard for native applications for Apple devices

- Jazzy: Command line utility to generate docs for Swift or Objective C

- Hyperion: Design debugging tool

Android

- Android Studio: The standard for native applications for Android devices

- IntelliJ IDEA: Another popular IDE for building applications

Web

- Visual Studio: Powerful IDE with a huge suite of tools (also iOS and Android)

- Sublime Text: Text editor

Native Cross-Platform Development

There are a lot of popular native cross-platform SDKs like Flutter and React Native that are being used by tech giants like Google and Facebook to develop apps. Native cross-platform is a middle ground between purely native, and hybrid cross-platform. You get a solid framework to bridge the gap between platforms to reduce the amount of code needed to be written which makes the development process quicker than native. You also get high performance and a native UI so users get the experience that they expect when using their specific device.

Advantages & Disadvantages

Advantages

- Faster development time than purely native development

- Can share a large portion of the code base across platforms

- Platform specific UI design (users still get the platform look and feel that they expect)

Disadvantages

- Separate code for building the UI for each platform (code is shared but not UI components)

- Updates to the framework UI components have to be considered throughout the development process and also once the app is shipped and needs to be maintained

Frameworks, Tools, & SDKs

Flutter

- Developed and maintained by Google

- Mobile, Web, and Desktop applications from a single code base

- Language(s): Dart

- Popular App(s): Google Ads, AppTree, Hamilton Musical

Unity

- Developed and maintained by Unity Technologies

- Mobile, Desktop, Web, Game Consoles, VR, TV applications (very popular for game development)

- Language(s): C#, UnityScript

- Popular App(s): Pharos AR, Osiris: New Dawn, Monument Valley 2, Cuphead, Hearthstone, Cities Skylines

NativeScript

- Developed and maintained by Progress

- iOS and Android applications

- Language(s): TypeScript, JavaScript

- Popular App(s): Sennheiser Smart Control, California Court Access, Smart Evaluation, UH Now

Hybrid Cross-Platform Development

Hybrid cross-platform development is popular among developers who are looking to quickly build an app. Hybrid SDKs like Ionic use a front-end framework like Angular (now supports Vue, and React) to build the UI. This means that the UI is built once for all platforms which makes the design consistent across platforms.

Advantages & Disadvantages

Advantages

- Shortest development time

- One code base (all code and UI components are shared across all platforms

- Web UI (developers experienced with HTML, CSS, JavaScript can quickly and easily implement UI)

- Consistent UI across all platforms

- Developer can concentrate on the behavior of the application rather than designing the UI components

Disadvantages

- Not platform specific UI (users who want their app to look and feel native may not like this)

- Performance and latency generally not as good as the native methods (this doesn’t mean you can’t produce a quality hybrid cross-platform app)

- Access to device specific technologies is limited to the support available through whichever software development kit is used (maybe not the best method for advanced applications)

Frameworks, Tools, & SDKs

PhoneGap

- Developed and maintained from the team behind Apache Cordova

- Mobile applications

- Language(s): HTML, CSS, JavaScript

- Popular App(s): Untappd, FanReact, Sworkit, Localeur, Browser Quest, TripCase, snowbuddy

Ionic

- Developed and maintain by the Ionic team

- Mobile, web, desktop applications

- Language(s): HTML, CSS, JavaScript, TypeScript

- Popular App(s): MarketWatch, McLaren Automotive, Vertfolio, Honeyfi

Final Thoughts

Building purely native apps gives you full access to the latest hardware and software technologies on the platform, and they also typically have better performance than using cross-platform frameworks. Development time will be longer especially if you need to implement the app on many different platforms and getting a consistent design is more difficult.

Native cross-platform is a great option if you want the benefits of consolidating your code for all platforms while maintaining high performance.

If you want to build an app quickly with a consistent design, or you’re already familiar with front-end frameworks, hybrid cross-platform maybe be for you. You sacrifice a bit of performance and the native look and feel of the UI, but you can save time and money with this method.