I am on a research and our panel cannot quite understand that I am developing a mobile app using html5.
Does mobile app means a native app of a certain platform (ios / android)?
If the app can be accessed in a browser, does that mean this is not a mobile app? are there any articles/journals/researches that prove my claim that html5 applications nowadays are being considered as a mobile app today?
From my epx, native apps are basically apps written/developed on the specific device/platform
Eg: Native app for android would be using Java, while iOS would be Objective C,
while mobile-apps in this case are basically web-apps, which works cross platform.
HTML5 is unique in a sense that it is able to simulate certain functions or accessing device hardware without being developed in a native environment.
If you are accessing the app via a web-browser on you mobile phone, most-likely its a web-app.
Most sites will have different layouts for different platform, for example when using your Desktop or Laptop, you will have a different view compared to using your Mobile Phone.
Some points that I hope you find useful:
Can it be published on the App Store/Google Play?
Think it's safe to say, most people expect a mobile app to be found in them.
Note that, from personal experience, Apple has rejected apps that are just simple copies of webpages.
Common sentiment
It's not very useful if a journal says something that the general public does not agree. Ask around, ideally people that are the target segment/market of your app, see if they agree on the definition of an App.
Many popular Apps using HTML5
There are many Apps on the App Store/Google Play that uses HTML5 as it's main development language. Facebook is the most visible one, though they went back to native for UX/performance reasons. (See: http://techcrunch.com/2012/09/11/mark-zuckerberg-our-biggest-mistake-with-mobile-was-betting-too-much-on-html5/)
Phonegap
Is a quick way to get HTML5 apps "into" a native app. If you are already not using it.
All the best with your panel!
Mobile Apps Are not always native apps. Mobile apps can be Native, Mobile-Web or Hybrid. The Mobile-Web which is basically written in HTML5, CSS and Javascript.
Native Mobile Apps are Specific to a platform or Operating System written in most of the time a particular language examples are writing an android apps in JAVA and an IOS app in Objective C.
While Hybrid Apps are combinations of Both Native and web sometimes puree mobile-web but wrapped in a native shell. They simply runs on a native widget more like a Browser. For android its uses WebView
Related
Many cross platform solutions has come out for ios/android/tablet,etc, why not just use web instead? web is the best solution for cross platform and using javascript in HTML5 can achieve plenty of features. So we could develop web-based cross-platform application instead of mobile apps and all you need is a browser (might be different from desktop browsers). However, consider some special features in mobile apps, like sensors, we could implement a javascript framework for mobile apps to achieve mobile features. Any thoughts on that? is it doable?
There are attempts for Mobile Web App Frameworks Ionic (AngularJS). Why stick to native apps? Here's a good benchmark why-mobile-web-apps-are-slow. The main reason - Javascript is too slow for mobile apps for now to fit every app requirements.
When I download an app, is it possible to tell whether the app was made via cross platform solutions instead of native?
Would there be any noticeable differences in performance between a native and a (I don't know the right word to call it) built in web UI?
A native application is an application coded with the native language with the device, Objective C for iOS for example.
A mobile web application is one created with web technologies (HTML, CSS, JavaScript) by using a framework like Sencha Touch.
A hybrid application is somewhere in the middle of these two. For example, a Sencha Touch application that uses PhoneGap would be considered a hybrid application. We’re using web technologies but PhoneGap gives us access to native APIs that we would not have access to otherwise – thus it’s a hybrid of native and web.
Native Applications
Pro:
a) Native apps have the best performance and use the last available hardware resource to improve performance.
b) Applications will work in offline mode.
c) The apps are distributed through platforms App store providing better visibility to the prospective users.
d) Your application will have access to the latest API’s, releases on that platform.
e) The apps are built in languages the platform supports and so, has access to IDEs which provide the best tools to develop, debug the project fast. iOS app can be built in objective C on XCode which has all the tools to debug, design the interface, and check the performance using Instruments etc.
f) Linkedin is one example which shifted over to Native from HTML5.
g) And there is Facebook too, which took a U-turn.
Cons:
a)You need huge budgets to support all the platforms that have considerable markets. You will need to maintain multiple teams, one team per platform you want to support. So basically each team will replicate the same functionality in their platform.
b)App updates needs to be downloaded by users and so you end up maintain several versions of Apps on your web server if not properly designed.
c)Availability of developers for ramping up is another concern. When objective C suddenly revived after release of iPhones, there are not enough good developers ready. May be the developers can be trained , but it is not feasible for small and medium head count companies and even in bigger companies where the training is feasible, the developers trained are not going to be at the same level of expertise they were on the technologies they are working on.
HTML 5 Mobile web app:-
Pro:
a) HTML5 mobile app is similar to a normal web app, except that they are designed to work at smaller screens.
b) The distribution of these apps is very easy. You just deploy the web app on your web server and users access it from their browsers.
c) There are some very good mobile UI frameworks like JQuery Mobile, Sencha Touch and of course my favorite mgwt which provides several widgets for mobile.
d) These apps can probably reach out all platforms since they run on browsers and all the modern smart phones have a browser.
e) The development and testing of these apps is easier as they are similar to normal web apps where you have tooling support.
Cons:
f) These apps don’t have access to the native functionality.
g) Performance doesn’t match with native apps.
h) These apps don’t work in offline. Actually works in offline mode, but that doesn’t match what native apps provide.
Hybrid Apps:-
Pro:
a) Hybrid apps are faster to develop since most of the development is done is web technologies which are cross platform and do very small amount of native coding, only when access to native layers is required. So only small portion of the code needs to be re-implemented for other platforms .This saves development time and cost and you can concentrate on developing new features rather than replicating the same features on each platform.
b) You are near to ‘Write Once, Run Anywhere’, the strategy that made Java such a dominant force.
c) The tools for building Hybrid apps are not mature enough when compared to their counterparts on native apps. The situation is changing rapidly and soon there can be some good tools which support development of cross platform Hybrid apps.
d) These applications can be deployed in platform specific app stores.
e) Hybrid apps provide good and bad of both native apps and HTML5 web apps.
f) They can access the native layers.
g) These apps can work in offline mode.
h) Netflix is one cool example which runs the same code base against all the devices.
i) Gartner predicts by 2016 more than 50 % of the apps deployed will be Hybrid apps.
Cons:
a) Hybrid apps, even though are packaged natively are not native apps. They execute on the platforms web engine, Webkit in case of Android and iOS which is another layer between the user and the application and so the performance can’t match the native apps.
b) Since Hybrid apps are normally built using standard web technologies, there will be huge pool of developers available for ramping up. This is not the case with native apps.
If you are building productivity apps , Utility apps or Enterprise apps, Hybrid apps are for you.
If you are building games or photos, videos related app then Native apps are the way to go.
If you are building apps which need to work in real time, which doesn’t need access to the native layer and is not performance stressed, then html5 mobile web apps are the way to go.
So the decision needs to be done based on what type of application you are building, what is the development cost and time that can be offered.
You can take any APK or IPA file and change the file extension to ZIP. From there you can unzip the package and look for signs of a hybrid app. The most notable will be a www folder with a number of JS/HTML/CSS files.
If you cannot find that it is a fair assumption that the app is native and not hybrid or HTML5 based.
You should be able to tell by playing with the app. Cross platform solutions look and feel like a web page. They're often sluggish and can be un-responsive (like a web page). Navigating between pages takes time to load and frequently uses the spinner. Native apps are normally instant to transition, or at least have animations. Android has things like contextual menus and an action bar which often aren't used by web type implementations.
I want to develop an application which works both in a regular browser and as an Android app. Both seem suitable but would I be right in saying if I went with Phone Gap, deploying the same html content as a regular, server hosted website is not trivial and would require modification? Also, are multi page applications not desirable in a Phone Gap wrapper?
Are there any alternatives I should consider? I'm surprised someone hasn't already written an Android wrapper with all the hardware access wiring done already. Or have they?
There are few things you should know,
If you are going to publish your app also on iOS, you can't use server hosted website for your app.
All of your basic functionality must stand on your app assets, is one of the iOS guidelines, and its also make-sense for best ui performance (both iOS & Android).
Use server-side wisely, when you want to fetch data which have to be up-to-date.
there are some new mobile browser features which will be available in the future, that allow your website to use the device hardware functions:
Device API on W3C
Good luck dude ;)
You can try with jquery mobile framework:
http://www.jquerymobile.com
It is jquery based framework for developing web apps that works on standard web and on multiple mobile devices (with cordova)
I have a regular web based application written using JSP, HTML, Javascript. Can I use some of the mobile development platforms to deploy it as a native app on either Apples's iOS iPhone or on Android platform?
The idea is to "develop once and run everywhere" - meaning, be able to deploy the same application on multiple platforms such as Web based application, iOS based app and Android based app.
While this would be great, I am unsure if this can be done. I understand that this may be accomplished if the front end part is written in HTML5, CSS3 and Javascript. However, it would be very cumbersome to write the application front-end only using these technologies without either Java or ASP .Net.
To a point: no.
Precisely, you might be able to get a servlet container running on an Android device, but you almost certainly won't be able to pull it off on an iOS device.
Actually writing a front-end application without using server side technologies isn't that difficult with JavaScript and HTML5. Rewriting an existing application is certainly a complex project though.
The currently popular "develop once, run anywhere" platforms for mobile devices are Apache Callout (previously PhoneGap) and Appcelerator Titanium.
Callout is based on making a thin Webkit shell as a native application, and then injecting interfaces towards the phone's features into the JavaScript context of that Webkit instance. It's easier to get into than Titanium, and it is completely free.
Titanium is also JavaScript based, but partially compiles your JavaScript code into native code which is then compiled by your native development stack for each platform. The upside is somewhat more responsive program. Some features require buying a license.
Having tested both during the last two weeks, I believe that depending on such solutions at this time amounts to technological suicide. Both of these systems are slow, buggy and even require licensing. Users will recognize apps made with them and generally reward you with poor ratings and reviews on markets.
I am trying to implement application that is supported to android,iphone,blackberry,windows mobile,symbian, webos (palm).
For that I am using the 3rd party applications here.
However, upon research I found that Android market doesn't accept the application that is developed on total cross tool.
Same for iphone to use application that is done on total cross mobile must be jail broken.
So, now I am in confusion that, is mobile applications those are developed using 3rd party Mobile application development tools are acceptable with their respected marckets.
For example, if I develop an application using phonegap tool on android, will android market accept that application?
The iOS and Android application stores have plenty of applications built using cross-platform frameworks. Apple originally suggested they would restrict these platforms, but they backed off from this position last year as shown here:
http://www.apple.com/pr/library/2010/09/09statement.html
I have to disagree with Sheikh Aman, however. I believe there are several platforms that do that. According to the original poster's link, Bedrock does so.
It's a little misleading to say that PhoneGap is for mobile websites--it's true it uses JavaScript+CSS, but their apps are packaged so they can be sold through the app store.
My company's product, the Particle SDK, covers Android, BlackBerry, iPhone, webOS, and WinPhone7, and legacy support is available for Symbian, but so far we haven't had much call for it. Particle apps are written in Java or ActionScript, not JavaScript.
If the original poster actually needs Windows Mobile, as opposed to Windows Phone 7, Bedrock or PhoneGap might fit the bill.
I haven't tested those toolkits, but they both have applications in the app store. EA's iPhone Battleship game is apparently a Bedrock app.
AFAIK, Appcelarator is very well accepted in app-store and in Android market too.
Phone Gap is for mobile websites.
Most importantly, there's no cross-platform development environment available, which lets you develop for Android+iPhone+WP7+BB+Symbian by writing a JS (or whatever) only once.