How do you decide whether to go with a native iPhone/Android app or a "web app that pretends to be an iPhone/Android app"?
-
Assume that the app technology is pretty trivial
-
Answer:
We've developed both types for our clients so I hope I can share some insights. We like calling them Hybrid Apps (web app that pretends to be an iPhone app) and have used PhoneGap (http://www.phonegap.com/) extensively. I also recommend looking at Sencha which is very promising and now free (http://www.sencha.com/) as your UI-Kit. The trivial ones are don't use a hybrid app for anything that requires serious performance, e.g. Games, Apps that work with lots of local data and/or Apps that need a lot of local processing. Also if your App is judged on its interaction speed/smoothness then don't use a Hybrid app. We've learned that Hybrid apps can look almost identical to native Apps, there are CSS frameworks out there meant just for that. There are also many libraries out there that help you achieve Kinetic scrolling and many of the special iPhone'ish UI behaviors. These webkit-based implementations are very good but I'd say that an average+ user would notice that something's not as smooth or perfect as its suppose to be. So when do you use a Hybrid App? First of all when you're tight on budget and/or time, they are usually faster and less costly to develop. Nowadays iPhone developers are oversubscribed and usually as a result are also overpriced, this makes Hybrid Apps attractive so long as you can nail it. Sample usages can be informative apps, wrappers of content of many kinds, even highly interactive apps so long as you're willing to take the small UI smoothness hit.
Ohad Eder Pressman at Quora Visit the source
Other answers
I would like to substantiate Ohad's points with our experience. We recently spent three months trying to build an instant messaging mobile client using HTML, CSS and JS - key motivation was to have a single codebase across iOS and Android: Used Phonegap First tried dojox.mobile - had problems in trying to keep the tab-bar stuck to the bottom of the screen. Took an enormous amount of time and energy which we ideally would have liked to spend elsewhere Next attempt was with Sencha Touch - provides a nice set of abstractions, however we found it hard to customize the controls. We were of course able to change stuff to our liking but that required going thru a ton of code - took time We then ran into perf problems because of the large DOM in our test case of a 1000 item contact list - no issue at all on the desktop, but on the mobile the perf was unacceptable. We tried solving this, but the solutions were non-trivial and implementing them would have taken a lot of time so decided to switch to native Currently using Titanium (http://www.appcelerator.com/products/titanium-mobile/) - UI is native controls, XMPP lib is in JavaScript which is shared across Android and iPhone My take is that it is possible to build apps with native look and feel using web technologies, but if the app is a bit complex and you want to provide a responsive experience, you will need to solve a lot of infrastructural issues which could increase your time to market. Having said that, mobile frameworks are bound to catch up and fill the current gaps. Also as processors on mobile devices get faster and batteries improve, the gap between native and web apps should close even further UPDATE (2011-Mar-07): After spending 10 days with Titanium, we had to ditch it. Reasons: Ti tries to provide a common interface for equivalent controls on Android and iPhone. However, some stuff that works in iPhone does not work on Android and vice-versa. Menu implementation for Android does not work No support for Android notifications While we could have patched the Ti code for all of the above, it would have required us to understand the Ti codebase in detail - the same case as Sencha Touch - and for now at least we want to focus on building out our apps. The bigger issue was that even if we took the option of fixing these codebases, we have no idea how many such bugs exist and how much time we would spend fixing Ti vs. working on our app We are now building three native apps for iPhone, Android and Blackberry. While it is 3x work, at least we are dealing with abstractions that are mature, well documented and work reasonably well. It's been 2 weeks and we are making better progress than we did on Phonegap or Titanium despite having to splinter the team into 3 sub-teams.
Vineet Gupta
IMHO, the decision on this is more of a business decision than technical, because performance of a native App is any day better than a web app, and evenĀ if you try so hard to make html 5 look like a native app, the amount of time and money spent to achieve that goal will nullify the analogy that native app takes more time. nevertheless, here are some quick pointers business wise (or from end user's centric approach as they only are responsible for success/ failure of your product): If your product is already existing and famous on any one platform at least - You can think of a web app (looking like native etc.). If it is going to be a new product altogether, offering some new service to the user - Go for the native App development or may be with some web views if required, and offer best experience to your users. I could list down may further conditions for this decision making, but the above given I feel is the most important one and pertinent ones can be derived from here only. Just one thought before I close - if you really believe in your product, then believe me even iTunes market is too big to be exploit (or may be Android) completely. Having an app used by 1000 users across 4 platforms has lesser value as compared to an app used by 10,000 users on one platform! So don't shy hitting one platform at first with full dedication, the user base is too much and if it becomes a hit you'll be having enough capabilities (and funds too) to get developed for further platforms as native or web app anyways. Take examples of temple run, angry birds, evernote, google search apps, instagram etc - all got launched and focussed on iOS only at first and then after success easily scaled up to Android and more.
Sudeep Bhatnagar
Good points by Ohad above however one point that I want to emphasize is that native apps on average are faster and better performing than frame work apps. Also if you require full control of the hard ware (in this case the phone), native apps are the way to go. I believe Ohad did a great job with the answers on this question.
Scott Faisal
Related Q & A:
- How to develop native android app?Best solution by Stack Overflow
- How would you determine whether a change in matter is a physical change or a chemical change?Best solution by Yahoo! Answers
- How much does it cost to go to a university overseas?Best solution by gooverseas.com
- How do I remove the old stereo in a 2001 Chevy cavalier to install a new stereo?Best solution by Yahoo! Answers
- How to wire one 4ohm dvc sub to a monoblock amp so that its a 4 ohm load?Best solution by Yahoo! Answers
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.