Blog

Blog

The Evolution of Cross Platform App Languages

Contactpoint has been designing and developing mobile apps for our clients for over 8 years. The languages used to build apps have changed significantly over that time – both within a particular platform (aka “native apps“), as well as the languages used to build what was first known as “cross-platform” apps, which are now differentiated by the labels “hybrid” and “cross-platform”.

Native apps are so-called because they are written in the language that is native-to-the-operating-system of the destination device. Apple (and the iOS operating system) originally required apps to be built in Objective C, however in the last 3 years Swift, Apple’s replacement language, has overtaken Objective C. Both Objective C and Swift started out being proprietary languages; Swift is now open source. Android apps have always been built in the Java programming language, however, more recently Google now also supports the Kotlin langugage. The IDEs that programmers use to build Android mobile apps have changed significantly over the years, which also impacts on the method and efficiency of programming. Eclipse was the IDE of choice for several years. Android Studio has taken over as the tool of choice, providing a much more “drag and drop” style IDE.

The term “hybrid app” refers to apps that are written in HTML, CSS and Javascript, and then rendered within the native WebView component. That means the resulting apps perform much more like websites. Access to hardware components such as GPS and cameras is limited, and requires that the native platform has provided a plugin allowing the WebView to access that particular component.

The goal of hybrid apps was to reduce the time and cost of development, by reducing the need to code your application twice – once for iOS, and again for Android. In reality, depending on the functionality required for an app, even the simplest would often require customisations for a particular native platform, so perhaps 80% of the app was written in the cross-platform language, and the balance was added in native code instead. In addition, the resulting app will be larger and slower than a native app, and the look and feel, being the same for all platforms, will lack the distinctive and standard user interface features that you would expect on an Apple device or Android device.

Over the last year or two, the programming languages landscape has changed significantly with regard to the development of what is now labelled “cross-platform” apps. Cross-platform apps are built in a particular language, and then compiled directly into the native code of the destination platform. In addition, a cross-platform app can usually also be deployed for desktop operating systems (Mac, Windows and Linux), providing even greater opportunities for deployment of your solution. These new languages include ReactNative and DART. The Flutter software development kit (SDK) is used along with DART to compile an app. Flutter is an open-source SDK created by the team at Google, and being the youngest option on offer is still gaining widespread use i.e. it will be more difficult to hire a developer with DART and Flutter skills.

Some functionality still cannot be developed in these newer cross-platform tools. Interacting with another device over bluetooth, for example, requires that portion of the app to be developed in the native language, and the end result may not perform as well as a native app.

Whilst cross-platform apps perform much better than Hybrid apps, in comparison with native apps cross-platform apps:
– are 50-60% larger than native apps
– use approximately 30% more memory than native apps
– use the CPU less efficiently

At Contactpoint we continue to build both cross-platform and native apps. An important part of the app planning process is to help our clients to choose the best platform for the development of their desired app, having regard for:

  • functionality, and in particular what hardware elements are to be utilised by that functionality
  • target audience
  • budget
  • time to market
  • long term goals

Please get in touch to discuss your app idea, and which style of development will be best for your solution.

Leave a Reply

Your email address will not be published. Required fields are marked *