Introduction
Increasing usage of Smartphone as primary device to access web and to stay connected has led to many developers and corporation to rethink their web strategy . Should a business require both a website and a mobile application? Coupled with fact that developer need to think on various deployment platforms like iPhone , Android , Symbian , W7 easily create the paradox of choice.
This report discusses differences between native and web app and some of the cross platform web based mobile mobile application development framework . These mobile application platfrom, are used to create native like applications which can utilize the majority of the native features of mobile devices, such as the GPS, camera, contacts, accelerometer, etc. report aims to make sense of choices available and how one can go about evaluating what suits the need.
Definitions
Native Apps
Native applications have binary executable files that are downloaded directly to the device and stored locally. The most popular way to download a native app is by visiting an application store such as Apple’s App Store, Android’s Marketplace, or BlackBerry’s App World, . Native app interfaces directly with the mobile operating system is free to access all of the APIs that are made available by the OS vendor . To create a native app, developers must write the source code (in human-readable form) and create additional resources such images, audio segments and various OS-specific declaration files. Using tools provided by the OS vendor, the source code is compiled in order to create an executable in binary form that can be packaged along with the rest of the resources and made ready for distribution.
These tools, as well as other utilities and files, are normally called the SDK of the mobile OS. Although the development process is often similar across different operating systems, the SDK is platform-specific and each mobile OS comes with its own unique tools. The following table presents the different tools, languages, formats and distribution channels associated with the leading mobile operating systems.
Mobile Web App
Modern mobile devices consist of powerful browsers that support many new HTML5 capabilities, CSS3 and advanced JavaScript. recent advancement of HTML5 and support of webgl turning into a powerful development standard for rich, browser based applications.
Access to rich media types, geo-location services and offline availability features and many more that are under development, developers are able to create advanced applications using nothing but web technologies can be installed just like other native application. There is other approach to web based development where some website enhance the user experience by creating a mobile website that looks like a native app and can be launched from a shortcut that is indistinguishable from that used to launch native apps.
There is a wide range of possibilities between these two extremes, with most websites implementing their own mix of features. Mobile web apps are a very promising trend. To capitalize on this trend and help developers build the client-side user interface, a growing number of JavaScript toolkits have been created, such as Sencha Touch and jQuery Mobile, which generate user interfaces that are comparable in look and feel to native.
Hybrid App
The hybrid approach combines native development with web technology. Using this approach, developers write significant portions of their application in cross-platform web technologies, while maintaining direct access to native APIs when required. The native portion of the application uses the operating system API’s to create an embedded HTML rendering engine that serves as a bridge between the browser and the device API’s. This bridge allows the hybrid app to leverage all the features that modern devices have to offer.App developers can choose between coding their own bridge or taking advantage of ready-made solutions such as PhoneGap – an open source library that provides a uniform JavaScript interface to selected device capabilities that is consistent across operating systems The native portion of the app can be developed independently, but some solutions in the market provide this type of a native container as part of their product, thus empowering the developer with the means to create an advanced application that utilizes all the device features using nothing but web languages. In some cases, a solution will allow the developer to leverage any native knowledge he or she might have to customize the native container per the unique needs of the organization.The web portion of the app can be either a webpage that resides on a server or a set of HTML, JavaScript, CSS and media files, packaged into the application code and stored locally on the device. Both approaches carry both advantages and limitations. HTML code that is hosted on a server allows developers to introduce minor updates to the app without going through the process of submission and approval that some app stores require. Unfortunately, this approach eliminates any offline availability as the content is not accessible when the device is not connected to the network. On the other hand, packaging the web code into the application itself allows for better performance and accessibility, but does not allow for remote updates. The best of both worlds can be achieved by combining the two approaches. Such a system is architected to host the HTML resources on a web server for flexibility, yet cache them locally on the mobile device for performance.
Why consider web or Native app
The choice over a web or native (i.e. device specific) application holds important implications on, or is dictated by, a number of launch considerations for any mobile publisher or service provider:
User Experience design – native apps are traditionally superior in terms of performance and the only means to access device attributes such as geolocation API, camera, address book, and accelerometer.
Billing – web apps or mobile-optimized web sites typically offer greater billing options and allow for open distribution, independent of third-party vendors such as carriers or OEM app stores.( some OEM are tightening this door for web apps )
Reach – while mobile app stores attract more active users overall, web apps allow publishers and service providers to serve all smartphone audiences without the compatibility issues facing native app distribution.
ROI – the costs of development and updates are generally higher for native apps, but native app stores are said to generate higher returns thanks to the benefits of larger consumer bases and integrated billing, for example.
Go-to-market – web apps are often quicker to deploy particularly since they are not subjected to distributor approval , although in recent time app stores are fast to reach reducing the distribution time to weeks
Discoverability – with an influx of new applications into proprietary app stores it is increasingly hard to generalize whether visibility is higher over the web or native interfaces.
User analytics – web apps or web sites generally offer more direct, unfiltered access to user behavior data, which in turn enables product cross-selling opportunities and helps build customer loyalty.
Finally the constant evolution of web (e.g. HTML 5) and browser APIs, coupled with the increasing connectivity of native applications, continue to blur the lines between web and native applications in terms of end user experience.
Mobile Web App Platforms
over couple of year there has been growth of multiple mobile web based application platform specifically targeting the support for popular mobile devices , these platform specifically address the developers need for cross platform support prompting idea of “Develop once Deploy multiple” below table list the feature set for some of these platform which will be analyzed in in detail in later sections
PhoneGap
PhoneGap is tool for building the mobile apps using the web technology , it make use of:
HTML for layout
JS for accessing device functionality
CSS for rich look and feel
based on W3C standard , PhoneGap offer consistent cross-device API , the app developed using this can be just web pages that have access to the device functionality , apps use CSS for providing UX , PhoneGap enhance UX by making of hardware acceleration in platform like iPhone , support for JS like jQuery, XUI is provided for creating native looking UI
Feature support details
There is usually a server component involved for apps developed , JS calls the server via XHR to get the JSON data , HTM/JS/CSS+ graphic assets are usually residing in the device packaged as part of build process , JS can store retrieved data in SQlLite Db for offline access , some optimization is possible as JS is allowed to cache images and other stuff
PhoneGap support the device functions like GeoLocation , Compass, Accelerometer , Telephony,Camera, Media Playback+Recording, Contacts ,Video with HTML5 video tag, FileIO, vibration , SMS, MAP,Orientation change support
Titanium
Titanium applications are divided into 4 main parts:
1.The html/css/javascript code that makes up the core application logic and UI
2.The APIs that access native device/desktop functionality, analytics or other modular functionality
3.The language-OS bridge that compiles web code into native application code
4.The run-time shell that packages the application for cross-platform distribution.
Once built, Titanium-based applications can be tested, packaged, and distributed through the Appcelerator Network’s cloud services. The Titanium platform is open source, so you may also access the source code to the complete application at any time for your own us
Feature support details
Currently support is limited to Android and iPhone platform , using this platform developer have access to the device features like Geo Location , Vibration ,sound play and record , camera , File IO, multitouch , SMS, Telephony , camera , video play back Contact support to name few .
Rhodes
Rhodes is tool for building the mobile apps using the web technology , it make use of:
HTML for layout
JS for accessing device functionality
CSS for rich look and feel
it also support Ruby which is compiled into Ruby 1.9 bytecode , and provides VM for apps to run on the native platform , this platform consists of two essential component of RhoSync which is sync frame work for access the Ruby based backend. other component being RhoHub which makes building Rhodes applications easier, reducing the overhead of getting started and as well as streamlining ongoing development effort by taking care building the app for multiple platform for user .
Feature support details
Rhodes support device features like Geo Location , Vibration ,sound play and record , camera , File IO, multitouch , SMS, Telephony , camera , video play back Contact support to name few .
Comparing the Different Approach
.So to summarize, let’s take a look at all three development approaches compared to each other
Native excels in performance and device access, but suffers in cost and updates. Web is much simpler, less expensive and easier to update, but is currently limited in functionality and cannot achieve the exceptional level of user experience that can be obtained using native API calls. The hybrid approach provides a middle ground which, in many situations, is the best of both worlds, especially if the developer is targeting multiple operating systems.
As can be inferred from the table above, no single approach delivers all of the benefits all of the time. Choosing the right approach depends on the specific needs of the organization
and can be driven by many parameters such as budget, time frame, internal resources, target market, required application functionality, IT infrastructure and many others. But one thing is clear; most companies today face an obvious trade off between user experience and application functionality.
Summary
As mobile applications continue to take a center role in the business landscape, organizations around the world are mobilizing a growing number of mission-critical services. Many companies are striving to find the optimal development approach to achieve their goals, but what many are quickly realizing is that each carries inherent limitations and no single approach can address all the growing needs and complexity of the modern mobile enterprise. As this paper points out various approach in application development , the selection of method should be based on one that can harness the benefits that each provides and support not only the development of optimal mobile app for your needs, regardless of their development approach.
Companies forming their mobile strategy must also consider the future of this market;
Further fragmentation of mobile devices and technologies, which in turn, will continue to increase the overall costs and complexities that are associated with mobile application development, integration and ongoing management;
Accelerated mobile adoption by consumers and within the enterprise increasing the requirements around security, scalability and ongoing control;
New device features and complementing technologies such as near-field communication, Geolocation, augmented reality, social networks, and others which will undoubtedly give rise to new types and new use cases of mobile apps;
And new distribution channels for the apps, both public and private, allowing organizations to easily place the apps in the hands of the user, quickly deploy updates and manage its entire portfolio of apps without going through a long submission and approval process.
Taking all these parameters into consideration, companies must choose a solution that is not only flexible enough to support all types of apps but would also support the secure and scalable integration of the apps into the IT infrastructure