Monday, January 30, 2012

Native application Vs Web application

A hybrid application (hybrid app) is one that combines elements of both native and Web applications.Native application are developed for a specific platform and installed on a computing device. Web application are generalized for multiple platforms and not installed locally but made available over the Internet through a browser. Hybrid apps are often mentioned in the context of mobile computing.

  • Can function whether or not the device is connected. 
  •  
  • Integration with a device’s file system.  
  •  
  • Integration  with Web-based services. 
  •  
  • An embedded browser to improve access to dynamic online content.
Add caption

·         Hybrid apps, which rely on development frameworks like SenchaPhoneGap,TitaniumRhomobileParticleCodeCoronaMosyncWorklightBkRender… These mobile apps offer a very interesting compromise because they ensure cross-platform compatibility and can access the phone’s hardware (camera, GPS, user’s contacts). IGN’s mobile social network Dominate is just such a hybrid app.
·         Dedicated web app, which is a mobile web site tailored to a specific platform or form factor, like the LinkedIn web app which was designed for Android and iOS, but not for other smartphones or feature phones.

Hybrid application features:
Most applications could be considered hybrid apps. Web apps, such as online banking services, typically store some content locally; locally stored native apps, such as Microsoft Word, also interface to the Internet.
·         Native apps, which are coded with a specific programming language (ObjectiveC for iOS, Java for Android). These mobile applications are fast, reliable, and powerful but are tied to a mobile platform. That means you must duplicate them using the appropriate programming language in order to target another mobile platform. Nearly all games are native apps.


Native App
Web App
Platforms
Platform
Five different mobile platforms:
·         iOS
·         Android
·         BlackBerry
·         webOS
·         Windows Phone
Other notes:
·         Android also experiences a rather big fragmentation in terms of Android versions to various screen size and features from different phone manufacturers and tablets.
·         There are also Symbian and MeeGo, however, they are getting very little traction today.
Mobile web browser. Differences still exist as different versions of mobile platforms run different browsers, with different support for various latest HTML5 features.
App discovery, monetization, support
App discovery
App Store – proven and popular.
A number of options:
·         Same as desktop apps today, search, URL, etc.
·         Sold through web stores like Chrome app store.
·         Sold through standard app stores (Apple, Android, BlackBerry, etc) by placing the web apps inside a native wrapper. Usually called a hybrid app.
App approval
App is published to an app store and goes through review process before being approved
Instant, no approval process
App installation
Downloaded from app market and installed
Open URL in a mobile browser, or another popular option is to create a short cut on the phone. The short cut gives more of a “native app” feel.
App update
Updated app goes through review process, then downloaded and installed
No approval or download process. Just update the mobile web app and everyone gets the new version.
App support, maintenance, adding new features
The more platforms you support, the more challenging and difficult it becomes supporting and adding new features.
It’s not uncommon to have different native apps for iOS and Android with different feature sets. The app for iOS is usually more mature and stable.
Supporting and adding new features is much simpler, as you write once and it’s available on every platform. Write once, deploy anywhere.
Monetization
App Store – proven monetization strategy.
Web apps have a number of options:
·         Each app has its own monetization strategy
·         HTML App Store, like Google Chrome Web Store
·         Standard App Store – putting apps inside a native wrapper/shell (hybrid apps)
·         Selling access or token in standard App Store and then getting access to mobile app
Porting/add new platform
Need to learn another mobile platform
Need to learn platform’s “UI approach”
Nothing – build once, run anywhere (almost). Might need to tweak the UI a little bit to “fit” it better in to the underlying mobile platform. Difference in browsers and supported features.
Experience
Performance
Faster for some UI functions, especially when heavy graphics are involved.
HTML5 improves on the infrastructure of the Web and makes applications faster and more functional. JavaScript rendering engines are getting faster and are good enough for most Web applications.
User experience
Native application have a lot of UI effects, usually more developed UI “logic”. Native apps can “feel faster” and screen sizes on mobile devices makes native apps more enticing as well.
Can be “very good”. For example, an app like Gmail. Will continue to improve and get better.
Perception
Today most people associate mobile apps with something you download and install.
We are so used to desktop web apps, so it’s just a matter of time before we “get used” to mobile web apps. It’s also important for more and more (good) web apps to become available.
Phone features
Video/Audio
Built-in
Possible with HTML5
Offline or disconnected apps
Native apps can work in disconnected mode.
Offline mode can be achieved with HTML5.
Full screen mode
Built-in.
Can be in full mode by hiding browser address bar.
Accelerometer
Built-in.
Possible with HTML5.
Push
Possible with native platforms.
Possible with HTML5 technologies.
Integration with phone services
Good integration with phone services:
·         Contacts
·         Calendar
·         Other applications
Still somewhat limited with HTML5. But, more and more apps like that get data from the Internet, and not the client device.
Integration with phone hardware
Integration with phone hardware
·         Camera/Video
·         GPS
Some support via HTML5 is now available for camera/video.
Enterprise, development
Developer Skills
Need to learn one or more of the mobile platforms and their underlying programming language/SDK:
·         iOS (Objective C)
·         Android (Java)
·         BlackBerry (Java)
·         webOS (HTML/JavaScript)
·         Windows Phone (Silverlight)
Every platform will also have its own approach and style to developing and designing mobile user interfaces.
Developers can use HTML, JavaScript and CSS to create mobile web apps without of learning new languages to code native applications. But, that doesn’t mean that some training won’t be necessary to adapt exiting HTML/JavaScript/CSS skills to mobile development.
Development cost
Expensive, as still relatively small number of developers master these skills.
Can be significantly cheaper. Large number of developers who posses web development skills – HTML, JavaScript, CSS. But, some training might be needed to learn how to develop UI for mobile apps.
Mobile development frameworks
Every mobile platform has its own SDK. Even though Android and BlackBerry both use Java, applications are not compatible. BlackBerry plans to allow running Android applications on BlackBerry devices in the future, probably inside a special wrapper (virtual machine).
·         iOS (Objective C)
·         Android (Java)
·         BlackBerry (Java)
·         webOS (HTML/JavaScript)
·         Windows Phone (Silverlight)
A number of options available today for building web mobile apps:
·         Take “do it yourself approach” or adapt any existing framework to work on mobile web
·         jQuery Mobile
·         Sencha
Tools that can build both native and mobile web apps:
Tiggr Mobile (coming up), PhoneGap, Open plug, Adobe Flex Mobile, Titanium Appcelerator, Corona SDK
Enterprise integration
Existing infrastructure could be reused but also need service layer to communicate between client (mobile) and server. Can use REST, SOAP or custom communication protocols Hessian, Protocol Buffers.
Existing infrastructure can be reused.

No comments:

Post a Comment