Ever since Apple created the iOS ecosystem, countless developers moved to focus their energies on the mobile world. As a result, more and more content is being consumed and more apps are being used as routine parts of people’s daily lives. It seems mobile is dominant in every way.
However, according to Web analytics company StatCounter, mobile browser usage hit only 20% at the end of 2013, and personal computers accounted for the remaining 80%. Then again, according to comScore, for the first time starting in January 2014, more Americans use apps (46.1%) to access Internet data than they do from a desktop computer (45.1%). Such data only further fuels the now age-old argument: Should developers focus on Web or native applications?
(Related: Should you build your next mobile game with HTML5?)
Despite the conundrum, developers often pick sides: They stick to just Web or just native. It’s obvious that when users are on a desktop, they will tend to use their desktop browser to access their favorite applications. On mobile, users prefer dedicated apps for popular websites over mobile browsers.
But, consider that Microsoft and Apple appear to be retooling their desktop operating systems (Windows and Mac OS X, respectively) to be more mobile platforms than desktop platforms. So, for some developers, the answer is not so clear-cut. To some, it seems more difficult than ever to decide whether to develop a Web or native application.
There are obvious considerations to help make the decision, such as the number of your potential users on one versus the other. Another factor that helps sway a decision is the development time and maintenance time. Developers also have to come to grips with any new technologies on one platform versus another.
Regardless of all this, developers that pick sides are wrong. We must still develop for web and native applications. Let’s explore…
The IT space
Cloud computing and mobile platforms have totally changed the way IT deals with organizational and personal information. We no longer save and sync data just to a local hard disk. We need it on the go. This is why we’ve seen the emergence of DropBox, iCloud, Google Drive, OneDrive and other vendors to provide data backup and synchronization services.
Another big consideration for IT is the evolution of browsers. Today, browser technologies such as HTML5 enable asynchronous data transmission (WebSocket), WebGL (GPU acceleration), embedded documents display (PDF), and peripheral access (scanners, webcams, etc.). Browsers have come such a long way. They now play strategic and significant daily roles in organizations, well beyond basic Web browsing. When you combine speedy broadband with such powerful browser technology, truly heavy work can be done in the cloud.
Evidence of this change in browser capabilities is everywhere. Microsoft provides Office 365, Google has Docs, and Apple has iWorks. These are all deployed on the server-side. They promise low cost in document management and processing to attract users.
Google’s Chrome OS is primarily designed to work with Web applications. Chrome OS has brought clear benefits to developers. They know to write applications in HTML5, JavaScript and CSS without hesitation. HTML5 technology has the potential to let a browser handle applications seemingly as powerful as native applications on desktop platforms.
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.