Академический Документы
Профессиональный Документы
Культура Документы
Abstract..............................................................................................................................2
1.Introduction......................................................................................................................3
2. Approaches.....................................................................................................................6
2.1 Diversity of mobile platforms and devices................................................................6
2.2. Native applications...................................................................................................7
2.2.1. Native tools........................................................................................................8
2.2.2 Application programming interface (API)............................................................9
2.3 Mobile web applications..........................................................................................10
2.3.1 HTML5...............................................................................................................11
2.4. Hybrid applications.................................................................................................12
3. Comparing native application and mobile web applications........................................13
3.1. Development..........................................................................................................13
3.1.1 Device specific features....................................................................................14
3.1.2 Developers support..........................................................................................14
3.1.3 Portability..........................................................................................................15
3.1.4 Maintenance......................................................................................................15
3.2 Distribution..............................................................................................................16
3.2.1 Access to consumers.........................................................................................16
3.2.2 Monetization......................................................................................................17
3.2.3 Distribution constraints.....................................................................................18
3.3. Usage criteria.........................................................................................................18
3.3.1 Performance......................................................................................................19
3.3.2 User experience................................................................................................19
4.Conclusion.....................................................................................................................20
Bibliography......................................................................................................................22
Abstract
Mobile application development has become very important area in software industry in last five
years. Many organizations that are taking first steps in implementing mobile strategy are facing
important decision. The extensive growth and expansion of smartphones and tablets have led to
use of mobile applications. Choosing the development approach is very essential for every
organization. This seminar paper examines a topic at the heart of any mobile strategy: whether to
deploy a native application or web application. this seminar will show key characteristics of each
approach, their advantages and disadvantages, and factors should be also taken in consideration.
Also, it will be shown how each of these approaches are measured to certain criterias:
development, distribution and usage. The purpose of this seminar paper is not to identify the best
development approach, as that one does not exist, but to rather to list pros and cons of each
approach and to describe situations or enterprise requirements, that best suits native application
or mobile web application.
1.Introduction
Ever since smartphones went worldwide, applications and their stores became extremely
popular. Smartphones become must-have product and moved focus from personal computers.
In terms of revenue, however, iOS took the lead recording revenue of over $100 million over
$40 million more than Android (App Annie, 1). This information is only telling us how important
are application are becoming. Revenue of these stores of Androids Google Play and iOSs App
Store is expected to plummet in the following years. So exactly, how is this influencing the
world? Apps generated $53 billion revenue in 2012, and are predicted to generate $68 billion
revenue in 2013 (Vision mobile,1). These numbers are telling us that development of application
is taking huge part in economy. In the world that is increasingly open and social, mobile
application are becoming vital part.
is developed with programs like Sencha, PhoneGap and Mosync (Techopedia,1). These
applications are written with web-based technologies, but are running natively and are taking full
advantages of smartphone features.
In this seminar work I am going to discuss the best solution for development of an application in
terms of development, distribution and usage.
2. Approaches
Javascript code and view GUI (graphical user interface) component using HTML and CSS.
However, they are not perfect. They have a lot of problems, but emergence of HTML5 and CSS3
is reducing differences between web applications and native applications.
Languages
Apple iOS
Android
Blackberry OS
Windows Phone
Objective C
Java
Java
C#, VB.NET
( some C,C++)
Tools
Xcode
Android SDK
Studio,
Plug-in
WP dev. tools
.apk
.cod
.xap
App stores
Google Play
App World
MarketPlace
App Store
downloadable apps to access various cloud-based services such as push notifications or in-app
purchases.
API provides the GUI toolkit. Each mobile OS comes with its own standard for UI components
such as buttons, sliders and so on. Developers for making enjoyable experience must maximize
usage of those components. In development of applications that need to work on different
platforms, designer needs to know about different components of each operating system. The fact
is that APIs are OS-specific and they much more complexity, but creates rich mobile applications
that are using full functionality of modern mobile devices.
However, these two types are some sort of extremes, because a lot of websites are implementing
their own mixture of features. And they are very promising trends that lead to growing number of
JavaScript toolkits such as dojox.mobile, Sencha Touch and JQuery Mobile, according to IBM.
These types of application are very useful, because of their multiplatform support. Most mobile
vendors are using WebKit, rendering engine in browsers, an open-source project led mostly by
Google and Apple, according to IBM (1). So we can conclude that application code is written in
standard web languages that work in WebKit leading to uniform experience for various devices
and operating systems. Unlike native applications, they do not have independent executable that
directly interfaces with the operating systems. They run through browser which has limited
number of APIs exposed. Also, results will vary with different screen sizes, device functionality
and operating environments. It can be difficult to provide balance
2.3.1 HTML5
HTML5 is the latest version of the HTML language and it could be a game-changer in the
world of mobile applications. It allows a experience very similar that is provided by native
applications. Also, it has its own local storage feature that allows offline running. HTML5 is
supported on big three platforms: iOS, Android and RIM, according to Lionbridge (5).
Developers are realizing the potential of this new technology which will lead to increasing
number of tools, frameworks and methodologies. It is still under development and functionality
remains somewhat limited and inconsistent. Different browsers are interpreting HTML differently
and evolving at different timeframes. One of the problems with HTML5 is that it not
standardized. Due to lack of consistency and standards means you need to develop different
HTML5 apps for different devices. HTML5 supporters are very enthusiastic and they claim it
10
will become universal standard for mobile platforms, as well as its critics who will claim that will
never match capabilities of native applications. HTML5 is something that should be watched
closely over the years as improvements arising. It has capabilities to greatly use some
functionalities such as audio, camera, GPS etc. The gap between native and web applications is
closing quickly. In near future, it is possible there would not be any difference.
In order to evaluate properly native application and mobile web application, we must decide on
proper criteria measurement. We will divide examination into: development, distribution and
usage.
11
3.1. Development
In development there are three main factors that diversify largely these two types: device specific
features. developers support and portability.
3.1.1 Device specifi c features
Native applications are taking full advantage of platform functionality, but web applications are
serving everyone with limited functionality. Web applications are having some restrictions, due to
their bond with the Internet browser. According to Mahemoff, they are missing several
specifications such as GPS, camera and some in-app experience like notifications on battery
status. Also, they are missing extended offline execution capability and multi-tasking (1). These
issues are seen as main flaw of HTML5 based applications. The situation is changing over time
and the solutions are coming at very good pace. According to Charland and Leroux, features can
be added to web browsers by recompiling it with adding functionality if the operating system
provider authorizes access via APIs (4). There are several opinions on these subject, while one
group of experts claims that web applications will close gap soon, according to Mahemoff(1),
others are claiming that web apps will be left behind for a long time(SIegler,1).
We can conclude that maybe the best solution of taking full advantage of these types will be
making some sort of hybrid applications.
3.1.2 Developers support
Development process can be vastly easy if there are suitable tools, it is very important to
determine what kind of support each platform provides. According to Madaudo and Scandurra,
developers like to work in native code, because it is easier to get help. They just go online to
forums and quickly get answers since writing in native code is done much longer time than for
cross-platforms code (2). Native tools have much more advanced tools at their disposal, because
they include SDKs, emulators, debugging tools and performance analysis tools. This is not the
12
case with web applications. Platforms for developing cross-platform apps ( web apps) are created
far later, so support is not on same level as is support for native applications. During years,
support for web application development became easier than it was,according to Charland and
Leroux (3). Web mobile applications are created lately, so is the support for creating them.
Difference will be smaller and smaller in coming years, if companies continues to develop at this
pace mobile web apps.
3.1.3 Portability
The ability to run on different operating system is very important factor in evaluation of the best
approach for developing mobile application. Native applications are platform-specific and in
order to be used for different platform, whole code must be rewritten. Each platform has its own
programming language and tools. This all leads to increasing developments costs. According to
Holzer and Ondrus, this can be seen as major drawback in development of native applications
( Holzer and Ondrus, 4). On other hand, we have web applications. According to Lewis, there is
no convenient native development platform, so HTML5 is looking like very attractive possibility
(Lewis,1). The main reason is to use to web applications is that the same code can be used for
several platforms, because every smartphone is coming with mobile browser. Also, there is
concern of compatibility among browsers, because HTML5 still is not standardized. However,
web mobile applications are still way more portable than native applications despite some minor
issues that web apps are having.
13
3.1.4 Maintenance
Two factors that are important for application maintenance are reusability of the code and the
platform where that code is going to be distributed. Some of the native distribution platforms
require validation before they can be updated to new versions, while web apps can be updated
with no delay, according to Holzer and Ondrus ( Holzer and Andrus, 4). This can be a major
reason why developers are moving towards increased development of web applications.
According to Madaudo and Scandurra, cross-platform frameworks often use their own subset of
Javascript, which means that code cannot be reusable without refactoring or substantial changes
(3). This leads to conclusion that developing still web applications requires additional work on
code, but those are details and they do not cost too much money
3.2 Distribution
When it comes to distribution which is very important, if not important as creating the app, there
are several issues that needs to be taken in consideration such as how to reach the desired
customers, how to generate revenue from application development and what are restrictions that
application developers are going to encounter.
3.2.1 Access to consumers
The way to reach customers is essential. The main goal should be to easily find and download
applications. Applications stores are solution for that. Their one-click purchase mechanism and
centralized portals proved to be very effective, according to Holzer and Ondrus (4). Native
applications are having major advantage over web applications, because they have established
application stores. Change in future is inevitable for web apps, even without portals for
distribution, according to Mahemoff (1). Nowadays, your application has wasted your time and
resources, if it is not present on the app stores such as Google Play or Apples App Store.
According to Claburn, there are some web stores such as the Chrome Web Store but Google does
14
not mentioned them a lot.(1). This sentence sums up how important are web stores for major
companies. This is one of major advantages of native applications over web applications, because
the reach to the consumers is far greater over application stores than just searching over the
Internet.
3.2.2 Monetization
People are moving to development of mobile applications over desktop, because it is easier to
collect revenue. There are several type of ways to collect to revenue such as pay per
download (e.g., CutTheRope), pay per subscription (e.g., New York Times), advertising (e.g.,
Blendr), pay for features (e.g., Hipstamatic), and freemium (e.g. Angry Birds) (Holzer and
Andrus 4). These models are been provided by almost all portals and platform provides for native
applications. Portals are accessible through device and only one-click is separating from earning
desired amount of money through any of previously mentioned models. According to Claburn,
there are alternative ways of monetizing Web apps through advertising, selling virtual good, but
that may work for some applications (1). Web application can gain revenue, but it is very tricky
and depends on type of application. Google hasn't said much about revenue in the Chrome Web
Store (Claburn 1). Basically, we can conclude based on this sentence, that earning money is
easier when you are developing native application, because you will have the place where
everyone will probably see it and increase opportunities in cashing time spent on developing
applications, but in future this can change due always present possibility of monetizing the web.
such restrictions. According to Claburn, 30% revenue goes to Apple or Google through selling
native iOS or Android apps through the iTunes App Store or Android Market, while a Web app
cost range from 0 to 5% of all revenue on Chrome Web store (1). This is seen as major issue for
developing native applications, because 1/3 of your revenue is given to provider for just putting it
on their portal. Moreover, developers are leaning towards making web applications, mainly
because the cost of deploying to the web stores is almost nothing.
Erkkil,
interpreting Javascript code has been much slower than running native code, but latest
mobile browsers are closing the gap (46). Performance of native applications proved to
be better, because they are using that is stored locally and it automatically reduces
time. That difference can be reduced over the years, because on the late Android versions, the
default browser has closed the gap to other web browsers. (Erkkil, 47). For better performance, it is
16
wise to use native applications, but in upcoming years it would not really matter are you using native or web
app.
4.Conclusion
17
Mobile computing is the future of business. As mobile applications continue to take a central role
in business world, organizations are moving towards them. Choosing the best approach for
developing an application in terms of development, distribution and usage is unachievable,
because it depends from situation and needs that company or single user is confronted. So, I will
propose when is convenient to use native application and when is the obvious choice is web
application.
If companies are having existing native skills, then they will be able to take advantages of them,
without investing significant amount money. Second reason for developing for developing native
application is single mobile OS. Sometimes, companies are targeting limited target audience,
audience that is known for using only one operating system. When companies are giving certain
of mobile device such as Blackberry for their employees, there is no need for multi-platform
coverage. Furthermore, there are applications built around single functionality. Skype is prime
example of that. It would not be able to use some elements such as VoIP and access to contacts, if
it is not developed natively. Web languages are not yet good for achieving desired functionality.
Finally, if application is requiring rich user interface requirements such as games, ideal solution is
native approach, because web technologies are still not able to access full APIs.
On the other hand, some organizations prefer direct distribution without waiting for long and
uncertain approval processes. Using purely web languages can completely can completely avoid
app stores and allow the organizations to fully control how application is distributed and updated.
For building pilot application, it is desirable to build it as web application. It reduces the costs
and time to market. Once the concept has been approved, organization can use this code in
writing a better, sustainable application. Also, very important reason to develop a web-based
application is its visibility. Application that is an app stores will only appear there, but an
18
application that is web-based will be visible in search engine, which in many cases exposes to a
much larger audience. Additionally, web development skills are very common and easily found in
many organizations. Web developers can build applications with only web skills such HTML,
CSS and JavaScript. Furthermore, HTML5 is rapidly expanding in both availability and
capability. It is likely to become default technology for client-side application development.
However, writing an app in HTML means ensuring that investments they make today do not
become obsolete tomorrow. HTML functionality is becoming richer and deals with wider range
of mobile requirements.
Many companies are searching for the optimal development approach for reaching their goals,
but they are realizing that each approach is carrying certain limitations and neither of these two
approaches is meeting all the growing needs and complexity of modern mobile enterprises.
19
Bibliography
1. "Android Fragmentation Visualized - OpenSignal." OpenSignal. N.p., Aug. 2012. Web. 4
Jan. 2015. <http://opensignal.com/reports/fragmentation.php>.
2. "App Annie Index - Market Q1 2014: Revenue Soars in the United States and China - App
Annie Blog." App Annie Blog App Annie Index Market Q1 2014 Revenue Soars in the
United States and China Comments. N.p., 15 Apr. 2014. Web. 28 Dec. 2014.
<http://blog.appannie.com/app-annie-index-market-q1-2014/>.
3. "Application." : Definition of in Oxford Dictionary (British & World English). N.p., n.d.
Web. 1 Jan. 2015. <http://www.oxforddictionaries.com/definition/english/application>.
4. Charland, Andre, and Brian Leroux. "Mobile Application Development: Web vs.
Native." Communications of ACM 54.5 (2011): n. pag. Web. 5 Jan. 2015.
5. Claburn, Thomas. "Web Vs. Native Development: There's No Winner." InformationWeek.
N.p., 17 Aug. 2011. Web. 15 Jan. 2015. <http://www.informationweek.com/web/web-vsnative-development-theres-no-winner/d/d-id/1099625>.
6. "Developer Economics: App Market Forecasts 2013-2016 - VisionMobile." VisionMobile.
N.p., 22 July 2013. Web. 28 Dec. 2014.
<http://www.visionmobile.com/blog/2013/07/developer-economics-app-market-forecasts2013-2016/>.
7. Erkilla, Jussi-Pekka. "Web and Native Technologies in Mobile Application Development."
Thesis. Aalto University, 2013. Web and Native Technologies in Mobile Application
Development. Web. 3 Jan. 2015.
<https://aaltodoc.aalto.fi/bitstream/handle/123456789/9028/master_erkkil
%C3%A4_jussi-pekka_2013.pdf?sequence=1>.
8. "Gartner Says Worldwide Sales of Mobile Phones Declined 2.3 Percent in Second Quarter
of 2012." Gartner Says Worldwide Sales of Mobile Phones Declined 2.3 Percent in
Second Quarter of 2012. Gartner, 14 Aug. 2012. Web. 15 Jan. 2015.
<http://www.gartner.com/newsroom/id/2120015>.
20
21