Much has already been written about the differences and even the rivalry between native mobile and mobile Web applications. Part of this seems explainable owing to the limited display and interaction capacity of a mobile. Specialized applications that use limited display space and soft keyboards have been crafted to match the typical mobile environment. Ironically, mobile apps and browser-based applications both rely on servers on the Internet for much of their functionality. Actions by users of either interface reach common ground at Internet servers and the results may be visible by either the Web or mobile operating system interfaces (consider email and social networking applications, for example). While there is standardization in the form of HTTP and various versions of HTML for Web-based applications that allow a browser to pull or push content from or to Web servers, interaction among mobile apps is rarer for lack of commonality other than sharing the interface to the mobile platform itself and shared access to common information provided by the servers.
In theory, Web-based applications are more portable across mobile operating systems to the extent these systems are consistent about interpreting the high-level language programs. Native mode applications, compiled to run in particular operating system environments (for example, Apple's iOS or Google's Android), may prove to be more efficient but have to be crafted to fit the operating system application programming interfaces and services available. Dependency on persistent Internet access and/or on substantial data transport between a mobile and its Internet server can have economic and performance ramifications. If the mobile data rates are limited, if there are limits to the total (for example, monthly) amount of data transferred without penalty, or if connectivity is spotty, the resulting performance may be unsatisfactory. Battery life is another major consideration. Implementations of applications that are sparing of computing and data transfer requirements will be attractive to mobile users who do not want to run out of power in the middle of a busy day.
It is also true the question is not binary. It is possible to implement hybrid applications in which some code is native mode and some is HTML-based by concealing the native code in an HTML wrapper. I am not sure how common such implementations might be and would be very interested to hear from readers with implementation experience whether or not this is a common practice. Indeed, I am very interested to hear whether this question has become moot, owing to increased mobile capacity, higher speed, more reliable access to the Internet, and longer battery life.
As the implementation of IPv6 penetrates further into the Internet, mobiles will have the ability to implement end-to-end Internet connections with other mobiles, with servers, and with Internet-enabled appliances. This introduces the possibility of peer-to-peer interactions between mobiles. Would that change the equation with regard to native mode or mobile Web implementation? Mobiles are also becoming the user interface of choice for interacting with the Internet of Things and one begins to wonder about the roles of Bluetooth, LTE, and Wi-Fi in this context, but we will have to leave that topic for another column.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2016 ACM, Inc.
Hi Vint, thanks for the article. What do you think of the idea of making 100% of all computation server-based, pushing out just pixels and audio (and haptic data etc) to dumb, under-powered clients (and receiving low-bandwidth upstream data from them)? Here is my blog post on the idea: http://satysfactory.blogspot.com/2009/11/lets-go-clubbing.html
Would love to hear your thoughts on this.
This sure reminds me of X-Windows and Network Computing Devices!! Also reminds me of the old IBM and DEC terminals of the past.
Thanks for commenting :) Yes, good old 'dumb terminals', thin clients, 'the network is the computer' paradigm. This approach would sure make things simpler, now that the thin/dumb/weak clients are in our pockets..
When I started developing mobile Apps in 2009, I advocated the implementation of native Apps. I simply considered the user experience superior to web based solutions in HTML and told this to all our customers. However, this is changing. We are beginning to implement hybrid "container"-Apps by integrating web views that provide the required functionality and handle platform specific details like navigation between views and push notifications natively.
Nice piece, the debate on Apps and the Web seems quite related to a paper I wrote on the future of Apps with K. Olsen http://tinyurl.com/zxr5s9u
Hope this reference might add something to this interesting discussion.
Displaying all 5 comments