Discussions of Apple’s strict control over the app store often do not mention that you can deploy cross platform apps using web applications. HTML5, JavaScript, and CSS should allow you to create compelling, applications without having to distribute through Apple. “I am convinced that the HTML5 app route is the best one for a fat slice of the non-game iPhone apps currently out there, especially those that are simple and face stiff competition. Increased interoperability will help them more than a relative lack of eye candy will hinder them. The problem is convincing clients of that.”
And while we’re on the subject of freeing people from proprietary environments there are good frameworks available for developing games using open standards without the need for Flash too
I was porting a VB6 game to JS/Canvas when Firefox 3 was in beta, so it’s been possible for a long time–the big hurdle to get over is the mindset that the browser cannot do this stuff.
Somebody needs to build a point-n-click IDE for HTML5 and they will cash-in big time.
I think that ‘HTML5 apps’ are a great idea. They provide cross platform compatibility and a relatively native experience. They are also approved of by Apple. Offline storage would be key though.
What I think would be good is an iPhone/Android/Other wrapper app that is a webkit view that is showing a locally stored HTML5 page with locally stored data. When connected to the net, it will search for a new version of the page and automatically update itself by downloading the new HTML5 app/webpage if available.
That is already entirely possible with HTML5 local storage.
The only thing I know of that can’t be cached locally is HTML5 audio/video. This is really annoying because I wanted to make a simple web app that could stream from my music collection and store the music locally too. Unfortunately, this doesn’t seem to be possible, so I’m stuck with iTunes and Windows.
Is that just in a text file or cookie, or could you do, for example… a local sqlite database? If that were the case, that would be awesome. Otherwise, my main issue with html 5 apps is that you really need a web server, which kind of sucks if you just want to write apps that can be run on a local machine.
In regard to developing apps in HTML5, I’m wondering why more companies aren’t doing this on the mobile space. I’ve recently moved into the world of smartphones (as of 5 days ago with the Droid Incredible), and I have noticed an interesting trend… where as on desktops, where you used to have apps for everything, more and more stuff seems to be moving to the web. But with mobile devices, it’s the exact opposite, as there appears to be a dedicated app for just about everything. For example, if I want to update my Netflix queue on my smartphone, instead of going to the Netflix website, I would download and install the Phoneflicks app.
So, instead of having to write one version of the app in objective c for the iphone and another version in java for android, why not write it once in html 5 and have it work on both platforms?
I think the reason is that Native apps give user a better experience, and HTML pages tend to be a little sluggish on a phone’s processor.
But on the newest phones (iPhone 3GS, Nexus etc) there shouldn’t be a perceptible difference.
Although in the end, a native app will in most cases beat an HTML app in user experience & speed.
You can store cookies, pages, images, and yes, even an SQL database. It really is possible to make complex HTML5 applications that run completely offline.
1. HTML5 offers zero code protection. Just view the source to take someone else’s work.
2. Requires Javascript which is hated by many programmers.
3. No rich SDK, just working with a text file.
4. Payment problems. What are you selling here? Access to an HTML5 game? Are users going to have to log in everytime they play? How long before someone takes your source and puts it on another server?
It didn’t surprise me at all to see that the guy who wrote this doesn’t actually program for a living. He views iphone revenue as a temporary gold rush when it reality it has become a sustainable gaming platform much like the DS or PSP. Calling the payment argument “non-sense” without providing an alternative is not going to win over iphone developers who are currently getting paid.
Your server-side code will remain private and can be done in almost any language (the offline part of HTML5 is too basic to be really useful alone), on your IDE of choice.
The number 4 is done each day by millions of users playing multi-player games without a free server.
If you have to be online to play then you’ve lost yet another advantage to iphone/android games.
The ad model only works if you have a lot of users and even then it is questionable. iD software is going to be offering a premium quake zero service since ad revenue alone wasn’t covering the bills.
But on top of it you’re talking about additional work that isn’t needed for iPhone games. iPhone developers can focus on the game and let Apple handle the business side. It’s a business relationship that works and one that is not going to be replaced with HTML5.
But HTML5 is not just about games. In fact, HTML5 is a menace to the App Store exactly on the non-game market.
No need to use ad model. Change monthly fees, this looks to be the norm on MMORPGs market.
Of course, native apps will still have the edge against HTML5 on single player games, games for casual players, and ones that performance is crucial.
The entire HTML5 on iPhone fuzz is about who will handle the business side: as a free person, you have the right to choose if you want Apple to do it for you or not, and develop anything that you wants without the need of a Apple stamp or risk jailbraking procedures.
I would say it can add some polish to existing frameworks. Most app store sales are from games so that’s not really a menace.
If you want a menace to the app store then you want a cross-platform toolkit that allows developers to target Android, iPhone and MeeGo at once. The only toolkit that has this potential is Qt. Qt has to be the most underrated software in the open source world.
Charge monthly fees for what? $2 games that people play for a month? You’d spend just as much time working on the payment and security system as the game. How many current iPhone owners want to enter a credit card number to play a game? This is a poor value proposition when the app store already has a lot of great games for under 5 bucks. These are throw-a-way apps, about 1/4 of the games I have bought I didn’t play for more than 10 minutes.
Most games are casual or single player so I’m really not seeing a threat here.
I really agree with you.
I am thinking about doing some app to make money.
I am not decided yet between iPhone / iPad app and a HTML5 app.
When I think about it, people are NOT willing to pay for a web thing. People almost never pay for it, they are accustomed * mainly thanks to google * to get everything for free. So I can only rely on ads, and as you say, it’s possible it doesn’t pay the bills…
And like you said, there NO protection at all for your code. Ok, all the generated server stuff is like protected, but they got all the javascript / CSS / HTML stuff for free, which is a lot of work.
On the other side, iPhone / iPad people are accustomed to pay * even a little thing like .99$ * to get an app. You have less customer than HTML5, but THEY pay.
“1. HTML5 offers zero code protection. Just view the source to take someone else’s work.”
For many developers this is not a problem. Open Source anyone? In some cases (as is the case with an app that I’m developing), data is synchronized with a remote server which means copying the local javascript only gives you so much anyway.
“2. Requires Javascript which is hated by many programmers.”
Also loved by many, and is the language of the web. Javascript is more powerful and robust than you probably realize.
“3. No rich SDK, just working with a text file.”
HTML5 is a pretty rich SDK if you ask me. Perhaps you meant IDE? If so, it’s a web app – you can use any IDE that you’d normally use for web development. =
“4. Payment problems. What are you selling here? Access to an HTML5 game? ”
No, you probably wont be developing a game in HTML5 – that was stated in the article. For forms based apps or data collection apps however, it’s powerful enough. And yes, you could have a login, make calls to API’s on web servers, whatever you like. There’s plenty to “sell” if that’s your goal.
“It didn’t surprise me at all to see that the guy who wrote this doesn’t actually program for a living. He views iPhone revenue as a temporary gold rush when it reality it has become a sustainable gaming platform much like the DS or PSP. Calling the payment argument “non-sense” without providing an alternative is not going to win over iphone developers who are currently getting paid.”
I think there’s plenty of scope for selling and profiting from HTML5 web apps. Take a look at PhoneGap if you haven’t already. http://www.phonegap.com/ This packages a HTML5 web app in native wrappers which allows devs to upload straight into the app store if they want to.
Most would rather use Java or some variant of C.
HTML5 only provides an API and the entire thing is in draft. I don’t consider that to be a rich SDK.
The same model that he dismisses in the follow-up post is also used for many business apps. Someone paying a few bucks for a financial calculator does not want to see an ad or mess with logins as an alternative. They want to pay a few bucks and get the damn app. People buy those $50 iTunes cards and go shopping at the app store. It’s a very convenient system.
But I’m glad we agree that HTML5 is not a viable alternative for iphone game developers. Thus HTML5 is not a viable alternative for most iphone developers since the majority of the sales are from games.
Yea but we already have that functionality within existing frameworks. Form based apps can already be handled with ruby on rails or asp ajax.
I think there is potential for selling web apps to mobile devices but for most mobile software the app store is a better model. This would be true even if HTML5 didn’t exist. Web apps can be scaled down for mobile devices without using HTML5.
[“Yea but we already have that functionality within existing frameworks. Form based apps can already be handled with ruby on rails or asp ajax.”]
Nope. If you write a forms based app using a standard server based setup then TCP/IP latency creates a significant usability issue. I experienced this first hand with an app I wrote using that model. If you have a flaky 3G connection, you go through a tunnel, etc, bang, you’ve lost the ability to use the app and the user goes away frustrated. HTML5 does away with that by allowing the developer to store data in a local SQLite database, and caching the full application locally (including images, js files, css files, etc). When you start a HTML5 application (which you can do by tapping an icon on the iPhone apps screen, just like any other app), it has no need to make a single TCP/IP request. Instead of making the user wait, the app starts and the user starts being productive immediately. The same holds true as you navigate from form to form, add new records, edit records, etc. All in all a superior experience.
And, look at phonegap! You can upload your apps into the app store, charge for it, make profit, etc, like any other app. Just sayin’.
With an AJAX app you don’t have to lose a session just because the connection died. You just can’t make a new request to the server until your connection resumes. The user can continue filling out the form and for an in-house app it isn’t a big deal to expect the user to be online. No user is going to be surprised that accessing a customer data base requires a connection. Offline capability and low latency are much bigger priorities for games.
The blog post was about bypassing the app store with HTML5.
EA have just done it with Lord of Ultima (http://www.lordofultima.com) using the same type of in-game purchasing model as the likes of Evony (Flash based) and some of the iPhone games. I think this model for charging people is going to become more popular, and there are a number of good frameworks available already for producing web games, so it’s certainly doable.
Edit: LoU isn’t specifically HTML5, but you get the idea…
Edited 2010-05-05 03:35 UTC
It’s only doable for certain types of games and I think it’s a better model for desktops.
Lord of Ultima is technically impressive in that it doesn’t use Flash but it’s still only a board game.
And ? Because it’s not a problem for a minority of people doesn’t mean it’s not a problem for others.
Out of that, I don’t see a lot of people making money with small open source software, sorry …
It’s not often we agree on things, but I think you’ve pretty much hit the nail on the head with most of what you’ve said.
While I’m a great advocator for online resources and open platforms; I do also get sick and tired of web designers touting HTML as some new miracle cure to the problems of native code.
There is a time and a place for HTML and that is not everytime and everyplace.
Programmers that hate javascript are typically either programmers who don’t understand what is possible with a closure language, or people who think that even though it is a completely different language then java (js has more in common with lisp then it does with java), because they know java they don’t need to learn javascript. It’s one of those “either incompetence or ignorance” things, and as more and more people really get into the language, people have less and less of an excuse to throw around old misunderstandings.
Oh that’s all? Every programmer would love working with a dynamically typed scripting language if they just understood it better? No room for preferences? What about iphone developers that are making use of third party development kits like Unity? Just use Javascript and start from scratch?
You know I remember hearing “just use Javascript” during the AJAX hype. How well did that go?
Code obfuscation. You can’t copy but it is almost as hard to reverse engineer as disassembly.
I disagree, I’ve seen some pretty good javascript deobfuscators that were created to decrypt malicious code. A basic iphone type game wouldn’t take long to decipher.
Stepping through decompiled machine code is just plain nasty. A compiler already makes it difficult enough and you can also use obfuscation to add needless complexity.
This is getting annoying.
General purpose computers are dead and general purpose programming is dead. HTML5, browsers, flash, h264.
The Cloud.
Is everyone here a web programmer? Or does everyone here go with this nonsense? Why is OSNews constantly pushing this?
This isn’t new. Every time anyone mentions app store beefs to apple, they say “fine, go build a webapp”
There are people in this thread talking about using HTML5 as a purely client-side platform, only using the web as the delivery method for the application, by using HTML5’s local storage for remember data instead of sending it back to a server.
I agree that having applications live in cloud is generally not a good thing, but HTML5/CSS/Javascript with canvas and local storage can be used as a normal development platform that is more or less supported by every computer (running a modern browser). It is not as good as native apps for a lot of applications, but I think that could be fixed by improving HTML5 and improving browser support. I like the idea of having cross-platform apps, especially with the growing smartphone market causing a new proliferation of significant consumer OSes (as opposed to just having Windows, Mac OS X, and *nix as development targets).
Fair point about the blog post being about not posting to Apples store. Still, it’s worth it being public knowledge that you *can* write a HTML5 app and still submit it to the store if you want to.
“With an AJAX app you don’t have to lose a session just because the connection died. You just can’t make a new request to the server until your connection resumes. The user can continue filling out the form and for an in-house app it isn’t a big deal to expect the user to be online.”
Sorry I didn’t mean losing a session, I was talking about waiting for HTTP POST’s to the server to be processed, and if the connection is slow or down, the submission becoming impossible and causing frustration. If you’re writing something where the user must enter a lot of data, i.e., fill in form, submit, fill in form, submit, over and over, latency and slow connections is a big usability problem. And that is one of the key problem areas that HTML5 has the tools to overcome.
Not to mention convincing the developers of that. For a nice view of how a developer sees this, check out this article explaining what the guy who made the Facebook iPhone App:
http://techcrunch.com/2010/04/30/joe-hewitt-web-development/
His views are completely contradictory.
One minute he is banging on about how great IE was for innovating the web back in the late 90s and stating that we should be moving back towards a model where web browsers are allowed to break free from the W3C’s specification. Then the next minute he is arguing that we should be moving away from Cocoa (et al) as we shouldn’t be supporting propitiatory platforms.
Well IE /WAS/ (and still is) a propitiatory platform and that’s half the reason the web is suffering so much at the moment.
Furthermore I too was a web developer back then and I remember things a lot differently:
MS went from “innovating” HTML to stifling innovation the moment they’d killed off the competition and locked users into their propitiatory browser. And it’s taken 10 years to fix this whole fraking mess.
So no, MS didn’t innovate HTML – they tried to kill it off for anyone that wasn’t paying into Microsoft.
Edited 2010-05-05 07:23 UTC
Actually, he sounds like someone from about a decade ago. It is just sort of strange that he still holds those views.
MS did innovate a hell of a lot, and not all of it was bad. Netscape wasn’t exactly a bastion of standards compliance either, they had their own set of proprietary extensions. Thats what the browser wars 1.0 was all about, who can come up with the best toys to give developers to lure them to a specific platform. After about 10 years of dealing with all the problems that the web being tied to a single vendor brought us, browser wars 2.0 is all about who has the best implementation of standards.
This guy sort of sounds like someone who hasn’t had to build anything that works on multiple browsers since stuff has started getting better. He does have a point that the W3C moves at the speed of frozen molasses, but it is also kind of strange to be saying this stuff while we are in the middle of a new set of standards actually getting published.
Oh I agree that there was some truth in his argument 10 to 15 years ago. Back then, IE was actually quick, stable and competitive. Infact I remember when I finally gave up using Netscape as my default browser.
But 10 years is a long time in IT and the situation is completely different now. post-90s, IE has near-enough singlehandedly stagnated the development of HTML (sure, W3C could have done more towards developing new HTML features, but IE still doesn’t support many stuff like SVG which has been available in other browers for years). I mean, why the hell would Microsoft want to push open standards and new features in HTML when the majorety of the world was already on their platform? It made more business sence not to.
So where once-upon-a-time his arguments made sense, now they don’t. Where once browser innovation could be argued as beneficial, history has taught us that it actually has the reverse effect.
Not necessarily.
Most of the HTML5 features started life as a prototype implemented only in one browser.
The difference is the approach taken. Microsoft used to simply develop a feature in secret, implement it in IE (often not caring if it relied on non-standard functionality in IE, or some Windows component, or if it were even possible to implement in any other browser), and then release it. If they felt like it, they occasionally documented what they had done, and submitted it to the W3C once it was too late to make any changes to it.
These days, browser-specific extensions are always marked as such, and the specification is developed in collaboration with other browser developers.
Take the canvas tag, for example. It was originally a Webkit extension, for Mac OS X Dashboard widgets. Apple implemented it, documented how to use it, and shipped an implementation in Safari.
Had this been late-90’s Microsoft, the process would have stopped there.
Instead, Apple wrote a proper specification for it. It was implemented in other browsers. Review of the spec, along with issues uncovered by the Mozilla implementation, resulted in changes being made to the spec. Both the Webkit and Gecko implementations continued to evolve along with the spec. Missing features were gradually added, such as text drawing support.
Today, we have a well-specified Canvas element, and multiple compatible implementations.
Most other HTML5 features have the same story. The only real failure of this process has been the video tag, because nobody could agree on a standard codec.
I got the same impression. I probably would have been more interested in web programming around 05 if it wasn’t for IE6. Having to ensure IE6 compatibility felt too restrictive compared to working with native code. Then there were the random crashes….ugh.
I worked on an AJAX app last year where I didn’t have to target IE6 but I still ran into compatibility issues between browsers. It’s a much better environment compared to 05 but the experience still wasn’t positive enough to lure me away from native apps.
I think that was his best point which is that innovation by commission moves too slowly. As much as we have all complained about Flash there wasn’t a good alternative for years, especially for interactive media.
It simply doesn’t roll over the tongue very smoothly.
HTML 5, Javascript, etc. applications do not hold a candle compared to a native applications. Requiring to have access to internet in order to run just a simple a application is ridiculous. Why do I need to be chained to the internet for running an application?
Edited 2010-05-05 11:22 UTC
try going to http://280slides.com/Editor/ in chrome or safari. Head and shoulders better then most client apps that do the same thing, and if you have a decent internet connection, it is actually more responsive too. How about GMail? Best mail app I have ever used. Google Maps? MS Streets and Trips was a phenomenal product, but google maps is even better. How about Freshbooks for billing? Scales down to 2-3 man shops better then anything else I have ever seen. Google Reader replaced native RSS agregators for me years ago. How about product management software? I haven’t seen a decent native one for years now.
Oh yeah, and if you have an iPhone and are not on the internet, many native apps wont work that well either. Everything is written with the assumption of constant internet access.
That is technically impressive but I still can’t see people using it over OpenOffice.
OpenOffice is also free and doesn’t require a connection to the internet. You download it once and you don’t have to bother with logins or uploading files that you later download again as part of the presentation.
I think web apps have potential but there is little reason to use them if there is native software that offers equal or better functionality.
Edited 2010-05-05 21:41 UTC
HTML5 apps can be written that do not use the internet. Local storage allows an HTML5 application to have a local database, so it does not need to rely on a server.
“HTML 5, Javascript, etc. applications do not hold a candle compared to a native applications. Requiring to have access to internet in order to run just a simple a application is ridiculous. Why do I need to be chained to the internet for running an application?”
You don’t. A HTML5 app (especially one packaged using PhoneGap) does not need to make Internet requests at all. Local storage and cache API’s mean the app can run completely locally. The only difference is that instead of targeting cocoa for the GUI, you’re targeting webkit. I’m thinking a lot of people aren’t yet understanding what HTML5 brings to the table. It doesn’t solve application development for every category (e.g. games), but it is mighty interesting.
Then how do I protect my source code as a developer if the Internet connection is not required?
You just can’t.
I’m thinking a lot of people aren’t yet understanding what you brings to the table…
Then maybe it brings to table something what users/developers do not need. 😉