Should developers opt to code for Web or native apps? (Part 2)

Diem Do

Part 1


Mobile grows up


With mobile platforms, native apps remain the first choice due to hardware resource limitations. Typical development factors remain in play: screen size, UI fluency, touch events, and other unique features that contrast with a PC environment. The use of iOS or Android requires extensive experience with the knowledge of Objective-C or Java.


There is good news for those that don’t have such experience. Word is, Samsung is developing a new mobile operating system: Tizen. It is said it will be based on Linux and allows developers to write applications in HTML5.


Alternatively, developers can create mobile apps with HTML5, CSS and JavaScript for Firefox OS, a new mobile operating system developed by Mozilla. What’s more, since Chrome head Sundar Pichai took over Android, word is he’s pushing the convergence of the two operating systems.


Despite the rapid growth and heavy consumption of cloud and mobile technologies, desktops still remain very dominant. Let’s assume you have a location-based app, which allows users to find available parking spots. It seems a no-brainer that you should first develop a native app for one of the mobile platforms. This will let you take advantage of a smartphone built-in location sensor. But, then you might want to provide users a Web entrance to access their personal data, historical or trend charts generated by data mining, and more. A native desktop application would allow for more robust use of such data points.


It’s important for developers to understand Web apps and native apps do not need to be counterparts. They can be collaborative partners to make software more interesting. Facebook is a typical example that benefits from Web and native apps. On the website, Facebook allows users to install apps for desktop, leisure and more. On mobile platforms, Facebook Messenger for Android, iPhone and Windows Phone enhances mobile communication.


Development thoughts


To develop on desktop platforms, there are many known programming language options: Java, C#, C/C++, Python, Objective-C, and so forth. For some sophisticated developers, it may not be a big deal to implement applications for operating systems with different languages (Linux, Mac OS X and Windows). But, for many developers, it takes time to get familiar with a new language. Developers know well that each OS upgrade means learning new APIs to make their applications compatible with the new OS. To lower the cost of development and maintenance for different platforms, you can create remote services with a preferred language. Then deploy Web apps (HTML5 + JavaScript + CSS) for user access from any operating system.


As for the mobile market, it is almost monopolized by iOS and Android. (As a side note regarding Apple, the company’s new Swift programming language might provide a good opportunity for some developers. If you never learned Objective-C before, Swift may be an opportunity to be on the starting line with others in a new platform.) Google has delivered the new runtime ART, which provides better performance than Dalvik. When you compare Swift and Dalvik, the difference between iOS and Android is becoming smaller. So, why not focus on just one of them: Select Swift or Java to create your apps. Such considerations are countless.


However, it’s obvious that if you can implement both Web and native apps, you stand to maximize your users’ benefits across more platforms. Too many developers today forego this opportunity. It’s still about the desktop as much as it is about cloud computing and mobile technology.

Share the news now

Source :