Opinion: Going native to go cross-platform

(Image Credit: iStockPhoto/Charles Schug)

We’d all love to be able to cut our workload by half, two-thirds or even more. The problem is, less effort often means a compromise on quality. For instance, developing applications for multiple platforms and devices using the same code across all environments often results in an app that is not optimised for the operating system, has less functionality, and delivers poorer performance.

Although the developer Holy Grail is to “write once, deploy anywhere,” the app wrap ― additional coding ― needed to develop native apps poses too great a challenge for there to be any silver bullet. However, there are new technologies, hybrid development tools and importantly, open source frameworks that certainly help relieve the development burden.

Learning a specific language for a platform, such as Objective-C for iOS or Java for Android, can add a significant time pressure to our workload. While many would consider themselves full-stack developers and count a number of native device languages in their portfolios, the truth is most are primarily fluent in Web languages.

In fact, according to Redmonk’s programming language rankings, JavaScript is the most popular coding language in the world today. With ES6 (now called ES2015) adding extra flexibility to the language, and Node.js enabling JavaScript for server side applications, the rise and popularity of JavaScript is set to continue.

In all, this strengthens the case for using Web languages to develop across platforms. Yet the “coding app wrap” that complicates native development still persists. Some hybrid development tools like Apache Cordova and PhoneGap already exist for cross-platform native development, and help developers to access native device functions such as cameras or accelerometers. While they are easy to use and highly productive, they don’t provide direct access to native APIs for building native experiences and integrating third-party controls.

However, open source frameworks such as NativeScript enable you to use pure JavaScript to build native mobile applications running on all major mobile platforms including; Apple’s iOS, Google’s Android, and in the future, Windows.

By using the native capabilities of mobile devices, these frameworks ensure you can build out the common functions and core application logic, along with a UI that caters to the specifics of each platform; all abstracted away into the elegant simplicity of the JavaScript language.

Ultimately, such frameworks can ensure large chunks of code for apps are reusable across platforms without sacrificing functionality.

Other benefits are specific to each framework, but can include:

  • Standards based JavaScript language for the application logic and standards based markup and CSS syntax for the UI
  • Support for third party native libraries out of the box, meaning that the developer can add any native Java or Objective-C library into a project for added functionality.
  • Ability to fork, view or contribute to code in the corresponding GitHub repository.
  • Integration with existing JavaScript libraries, enables developers to run any JavaScript library (without a DOM dependency)
  • Ability to declare app UI in simple, easy-to-read cross platform markup
  • Rich data-binding from one-way or two-way binding to either a data module, property or function to deliver clean, data-driven applications
  • Truly native output ensures that existing cross-platform tools can be used for testing
  • Ability to take full advantage of the native accessibility features offered by the native platforms

While frameworks such as NativeScript aren’t a “write once, deploy everywhere” solution, they are a “learn once, write anywhere” solution which is the silver bullet that mobile developers have been looking for. Users ― whether they are consumers or employees of businesses ― expect quality.

If an app is sub-standard in functionality or looks, it is likely to receive poor adoption rates and be abandoned early on. In an age where the average person uses multiple devices and operating systems every day, multi-platform isn’t just an advantage, it’s an absolute necessity.

Do you use a framework for cross-platform development? Let us know in the comments.

 
Related Stories

Leave a comment

Alternatively

This will only be used to quickly provide signup information and will not allow us to post to your account or appear on your timeline.

romseguy
24 Jun 2015, 11:53 a.m.

No mention of React Native, surprising.

Reply

MikeO
16 Sep 2015, 2:04 p.m.

I would recommend V-Play from personal experience. V-Play is aimed at all levels but has a very gradual learning curve, making it a great option for beginners.

http://v-play.net/

There are a lot of beginner tutorials showing you exactly how to get started and there's also great technical support to help you out along the way.

http://v-play.net/doc/vplay-entity-concept/

V-Play is a cross-platform development framework based on Qt that can be used to develop both apps and games. You can develop your game on any system and deploy it to every app store, meaning you never have to use native SDKs.

One of the best features of V-Play is that it's component-based. This means you write less code and get fewer bugs.

This also makes it easy for beginners to use. There's a lot less code than other platforms and a lot of code can be copied straight from the documentation.

http://v-play.net/doc/

There also a lot of in-depth tutorials like "how to make a game like Flappy Bird game".

http://v-play.net/doc/howto-flappybird-game/

like 2048

http://v-play.net/doc/how-to-make-2048-tutorial/

or like Match-3 game like Candy Crush

http://v-play.net/doc/how-to-make-a-match-3-game-like-candy-crush/

Reply