11 ms·
Ask HN: Mobile dev - Bypass apps and go straight to HTML5?
Assuming a mobile service needs to be launched in 6 months time, does it make sense to go straight to HTML5? Will the market be ready?
The recent release of the first version of JQuery mobile looks promising, for example.
There is a huge temptation to bypass native apps altogether (even with tools like PhoneGap). Not only does one avoid the app approval process, but, just like having to download plugins causes friction for desktop websites, giving users the opportunity to directly interact with a mobile-specific site as if it were a native app sounds like a big win all round.
- apl 16y agoWhat about monetization? If it's ad-based, alright; however, in many cases the simple payment process offered by iTunes, for instance, is essential.
- hymanroth 16y agoGood point. I should have mentioned monetization is not an issue. In other words, if what we aim to build were in an app store it would be free anyway. Basically I'm asking whether HTML5 will be mature enough both in terms of functionality and browser market share in around 6 months time.
- andrewf 16y agoNever mind six months from now - if you're thinking native app, then you've got a particular set of phones in mind. Take a look at the state of the browser on them now.
- yojimbo311 16y agoandrewf is completely right. You should plan for what capabilities exist today on the platforms you're targeting. Taking advantage of upcoming synergy is a lofty goal, but expecting it and making your plans depend on it would be a mistake.
- chunkyslink 16y agoHere is an example of where exactly what you are asking has been done to good effect. By inserting a line of code in your normal website, we detect which device you are on and redirect you to a HTML5 + Jqtouch version of the site which acts and looks a lot like a native app (especially on the iphone) See http://www.pocketdiner.co.uk http://www.pocketdiner.co.uk We've had no problems so far so the answer to your question is yes - HTML5 is mature enough for mobile devices from our experience.
- hymanroth 16y agoThanks - that is exactly what I'm talking about. But don't you have a problem with older mobile browsers not being able to render the site correctly?
- yojimbo311 16y agoWithout describing what phones/operating systems you're expecting to target it's difficult to get specific. You will absolutely run into rendering issues between different mobile browsers, this will likely never go away, but the good news is the majority of the more recent mobile browsers are based off of, or will be, WebKit. If you go the Mobile Web application route and don't limit your scope to more recent phone OSes you're going to have to deal with the challenges of cross-browser development which could involve just as much time and effort as going a native application route with a helper framework like PhoneGap.
- hymanroth 16y agoWell, we'd basically want to target them all! Given that people change their phones more often than their PCs, one would expect the installed mobile browser base to 'fresher' than the PC one. In other words, over the medium term (say 2 years) the rendering issue should hopefully fade away. It's just a question of timing - when is it going to be OK to go 100% HTML5? (assuming, of course, the app is not particularly complex)
- 16y ago
- drpancake 16y agoIt depends how technically interesting your app is. If it's just an RSS reader, then HTML5 is probably the way to go. But you've got the factor in the audience that the App Store gives you. AFAIK there's currently no decent way of discovering mobile web apps (unless you count Google?) Perhaps PhoneGap is a good compromise, but I've not seen how well it works in practice...
- ZeroMinx 16y agoIs it possible to wrap a HTML5 site into an application? I mean, to make it appear as an app on the phone, even in the app store, but it's just using the browser to connect to the HTML5 site?
- Tichy 16y agoYes - that is for example what tools like PhoneGap are helping with.
- tomerico 16y agoThe App Store / Marketplace is a very important distribution channel, which I wouldn't be so quick to dismiss. Downloading an app in today's modern phone is almost as frictionless as entering a website.
- matthewcford 16y agoGet the best of both worlds, build in html5 and put a thin wrapper around a webview with phonegap/titanium to get in the distribution channel
- foobarbazetc 16y agoIf you don't care about user experience, sure, do this. Otherwise, build native apps. If you can name one successful app that's just a webview then this might be an option.
- daxelrod 16y agoThe Bank of America app is a webview of their mobile site. It has excellent ratings, and is currently the #1 free app in the Finance category. All that said, it's clearly not a native app. Transitions from screen to screen are slow, do not animate smoothly, and sometimes exhibit drawing problems. The punchline: their app description announces an upcoming native app: http://itunes.apple.com/us/app/bank-america-mobile-banking/id284847138 http://itunes.apple.com/us/app/bank-america-mobile-banking/i...
- hymanroth 16y agoYes, but it implies the user anticipating the use case... Would you download an app which talks you through fixing a car engine before you actually needed it, for example?
- deleted 16y ago[deleted]
- kuldeep_kap 16y ago
- kolinko 16y agoI'd say - build an HTML5 app, but add native wrappers (just Webkit) so you can push it to App Store or Android Store. That's what I'm doing now (after a couple of native apps). on iPhone webapps are still not as good as native ones - you can't put them on App Store (a large audience) and they don't handle multitasking well. Assuming your app can be done in HTML5.. if it's a game or it requires a lot of integration with platform then native is the way to go (duh)
- hymanroth 16y agoSure, cycle intensive use cases will probably use native code for a long time to come. The idea of adding native wrappers around a pure HTML/JS implementation sounds very interesting - like having your cake and eating it....
- karterk 16y agoFrom a marketing perspective - I know lots of people and blogs who monitor the app store for new apps and try them out. An HTML5 app means that you will not have access to this crowd.
- hymanroth 16y agoYes, but that implies the app is an end to itself. What if you just wanted to present an existing web service to mobile users in an "app-like" UI?
- Xybo 16y agoOne thing I constantly see in the mobile deployment conversation is a focus on only end-user. There is a huge corporate enterprise market there as well. Since this is where I make my money, my decision tree is a bit different. Corporate clients generally target a more limited number of devices. Also, the app store would not be a likely repository for MIS to deploy from. There is a much bigger market than the end-user only apps that most of these points reference. HTML5 and webkit make good sense on the enterprise Intranet.
- shareme 16y agoDepends upon what the device market breakdown among your potential customers.. Symbian-everything before ^3 devices not fully html5 WM-everything before WM7 not fully html5 BB-everything past 4.4 is almost full html5 Android- 2.1 and beyond is full html5 iPhone iOS 4 is full html5 I would start examining frameworks such as PhoneGap, QuickConnect, etc to see which covers the best as far as html5. Of course this depends upon whether you need to access native device features as at the moment the un-spec HTML5 through webkit only has camera, audio, geolocation, sms.
- jawee 16y agoHow do you call WM7 fully html5?
- daleharvey 16y agomaking web apps as polished as web apps is very hard, however you get a lot of the way there and its 10% of the effort. You can still do distribution through the appstore with a uiwebview, I am not sure exactly how stringent apple are in this regard. However its fairly obvious that html(5) is the future of these things, and the turnaround on html applications is far far faster, so yeh I would recommend going html5 until you have strong signals that a native app is needed.
- thedeuce 16y agono don't, you'll be creating much more work and frustration for yourself
- eelco 16y agoIt depends a lot on the use case of your application. The size of the task, the amount of return use, etc. For one-off, low usage apps a web app can be the better choice. Also, it depends on how good you want the app to look and behave. With HTML you don't have as much control over how content is loaded, animated, etc. Be prepared to deal with really hard to debug crashes if you're making a heavy app. Last, but not least, the frameworks: the amount of effort that has been put into the native frameworks makes up for a lot of the (perceived?) ease of using HTML, but having to invent a lot of wheels. But again, it really really really depends on what your app will be doing.
- yojimbo311 16y agoMobile Web Applications require an extra bit of awareness and effort from users on the platforms that have browsers good enough to utilize them. I haven't personally seen great adoption rates for them, but they do afford benefits development wise, especially if your goal is to create and launch a cross-platform application quickly. It's certainly a possibility that mobile web applications may get more user awareness with better discovery tools, but the general momentum of user interest has really centered on native applications. Mostly because users, that I have experience with, find using native applications a better experience to web applications, but also because the ecosystem around them has matured quite a bit to make finding and acquiring them so much easier. There are a number of native applications that simply serve up mobile web applications and that grants them several of the advantages of native applications, though not all, from a discovery, capability and usability perspective. Users typically notice that their experience is sub-par compared to truly native applications, but good ones can get close enough that it doesn't make a huge impact compared to the benefits. You will of course still have to deal with app store/market place submission, but you could always launch the application as a web app until the native version is available, allowing you to even provide the native versions after your intended launch date. Generally speaking it affords you a lot of flexibility for your effort, but I would caution that HTML5 based applications really only work for focused tasks that do not need to rely on native features the varying phones provide. The questions you really need to ask to make a solid decision on which path to take are, how many platforms are you really targeting and do they all need to be supported immediately? Are there any native features of the phones you're targeting that need/should to be leveraged to make your application useful and successful in accomplishing its primary task? How much effort are you willing to put into supporting and maintaining the application(s)? If all your answers lead to having to support a lot for a little and your application is simple enough to not need native features then an HTML5 implementation would probably make the most sense.
- hymanroth 16y agoExcellent comment, thanks. We would require location and touch functionality. The core use case is really quite simple: users provide both text and numerical feedback based on their location - that's basically it. Nothing fancy. It needs to quick and easy to use, work on as many platforms as possible, and - given the nature of the application - is unlikely to be downloaded prior to when it's needed. People are more likely to use it "on impulse" and that's another reason we like the idea of accessing the service as you would a web site.
- wahnfrieden 16y agoFrom my tests on the iPhone, Mobile Safari-based web apps do not have responsive interfaces as compared to native ones. Safari adds a delay when you do things like tap link or button - I'm not sure why, it's probably to disambiguate tapping the link with some other action, since Safari can expect the user to be scrolling and zooming as well on top of any interface element. Because of this, I find UI that mimics native apps in Safari to be a frustrating experience. Everything looks perfectly native, but all the behavior and touch feedback is slightly off. Until Apple changes Safari or JQuery Mobile figures out how to get more responsive interaction out of it, I think this mimicking the native iPhone UI is missing the point - UI is about much more than visual theme. Stick to non-platform-specific web app design in the meantime (see Google's Mobile Safari-based apps, for instance).
- hymanroth 16y agoVery interesting. Thanks
- pornel 16y agoDelay can be avoided by using touch events instead of emulated mouse events.
- wahnfrieden 16y agoAh nice: onTouchStart, onTouchEnd.
- jasonkester 16y agoI guess it depends on the app, but be warned that performance of HTML5 on mobile devices such as the iPad is orders of magnitude worse than in native apps. So even something straightforward like, say, smoothly animating a pinch zoom on an image, is just shy of impossible on a mobile browser. Add any complexity to your scene, then try to animate it and you'll quickly start reconsidering building a native app. Sound is another non-starter in an HTML5 app. iPhone (& iPod touch) will only play audio fullscreen. iPad's Safari will play one audio clip at a time, but only as a direct result of a user action. Video is also out, since Apple devices will only play it fullscreen. Depending on what you're building, you might not need any form of animation or sound. But if you do, now is not the time to make the move to HTML5 if you want your thing to work on mobile devices.
- illumen 16y agoIt's not that slow. I know this because I've done it. You just need to use the HW accelerated transforms/animations. They're pretty easy to use, and documented. There are some undocumented css things which cause slow downs though. Animation is as fast as lightning, with expert timing. In fact it's a little bit frighting what you can do with it. If you use js setTimer based animation it's not that great though. You need to use the css animation stuff really. Audio can be played with no user action - again I know this from direct experience. Only the small devices play video full screen (currently... I can't comment on upcoming IOS releases ;). The ipad can play them without going fullscreen. You can't just use links, with click events. Understanding how touch input works with multiple fingers moving on the screen, not waiting for releases is different than understanding interfaces with a big screen and one accurate mouse pointer. Expect to pay top £/$ for good iOS html5/css/js/svg/canvas developers that also have experience on iOS/android/nokia/palm... if you can find them.
- Tichy 16y agoAny idea where the market is for such developers? I intent to go the HTML app route, but I worry a little that I won't be able to get contracts for creating apps because I lack experience with the native side.
- 16y ago
- jraines 16y agoWhy not both? I'm sure it's similarly easy in PhoneGap, but here's how easy it is to package a 1 page HTML5 app in Appcelerator Titanium for submission to App Store or Android Market: wv = Ti.UI.createWebView({url:index.html}); win = Ti.UI.createWindow(); win.add(wv); win.open();
- colinplamondon 16y agoI've never, ever seen an HTML5 app that comes even close to being as smooth as a native app. HTML5 is not a comparable option for the foreseeable future. It's best to build a simple native app for iOS that covers the core of your service, and then an Android app if your audience is particularly likely to have Android phones. EDIT: Also, the approval process is a non-issue now, it takes a week at most to be approved, and 2-3 days if you email ask them to expedite. The problems with long delays are long over, starting early last year things started improving exponentially.
- 51Cards 16y agoThat of course depends on the target audience of the application but in general I would say not quite yet. We have a mobile app we launched recently and we have the benefit of being on-hand when customers use it (at trade shows). There are still a very high percentage of old WinMo and BB phones out there that we had to code for. Now we did make a version of our app in HTML but it is very basic to support the old browsers. I really look forward to the day when we can just do a one for all (or one for 99%) application.
- ivanzhao 16y agoFor my upcoming game/app (threewiki.com) I actually built all three versions : ) First the complete, native iPhone version, then realizing that parsing HTML and storing with Cocoa is a pain. (Core Data is pretty good but too bureaucratic for simple things). So in my second version, I moved all the data logics to an App Engine server, and just leave the app with a thin UIWebView layer in most cases, and only stores the user token on the phone. Mobile Webkit is pretty accurate but I didn't like how the animation turns out, just doesn't "feel" right. Besides, scrolling is much slower in UIWebView than the native UITableView, and you cannot change the tap-link style in UIWebView except a simple color overlay. Then comes my final version, in which I use UIWebView for static content, and use UITableView & custom views/animation when there's interaction, and all model logics and data processing done on the server. The app feels super smooth now. And it would be super easy to update because pretty much all the logics in on the server, so app is essentially a pretty "portal". Take a look of the video if you are interested threewiki.com
- paramendra 16y agoAmen.
- robwgibbons 16y agoI say build it in HTML5 then ship it with PhoneGap. You'll have the best of both worlds.
- stephenou 16y agoEven though the technology behind HTML5 mobile app seems solid, there's still a big hole in the business aspect - no effective way to generate revenue. There's nothing near the App Store in terms of audience reach in the web space. Put it in more perspective: Look how much iOS developers vs. general web developers are making. And I've also heard an iPhone app has more paid users than a web app (with the similar functionality)'s free users.