HTML5 apps on the App Store

There are many HTML5 apps on the App Store but they are not first class citizens on iOS, unlike on other platforms. They have to be executed by UIWebView, a component allowing the presentation of web pages using WebKit but with the major disadvantage that the JavaScript performance is massively throttled compared to performance in Safari (because Safari uses the Nitro engine). This was expressed dramatically by the old Facebook app, and continues to be shown by many other apps.

Apple could quite easily allow developers to produce iOS apps with HTML5 and package them in Xcode for the App Store. Rather than being executed by a UIWebView they could instead be executed by the full Safari engine with its faster JavaScript performance. A similar feature exists in Safari already that allows you to ‘pin’ websites to the Home Screen and opening them executes them like an app, but being run by Safari without the navigation bar.

This would be incredibly advantageous for web developers because it would allow them to charge for their web apps on mobile platforms and lock down the source code if they were distributed via the App Store. It would also make porting between devices a lot easier, although this wouldn’t be as advantageous for Apple.

There are a few main problems with this, of course. The first is In App Purchases. Currently they account for a huge proportion of App Store revenue, however JavaScript has no way of accessing them unless Apple allowed for the transaction to launch the App Store app, which could prove effective.

Another disadvantage is appearance. Should Apple allow web developers to produce regular HTML markup or should it extend the standard to contain UIViews? The advantage of the former is it would make apps easier to design because existing tools and frameworks could be used. The disadvantage is that it would ruin the current design standards that Apple runs on. Interestingly, Intel announced a UIKit toolkit for JavaScript earlier this month.

Native APIs are also a disadvantage. How does an HTML5 app send notifications (Chrome does have an API for this)? How does an HTML5 app access the camera (again, W3 has some drafts on this)? How does an HTML5 app access photos or contacts? Either Apple doesn’t let them and places them at a disadvantage against native apps or it ports the Foundation framework to JavaScript, but that would ruin JavaScript standards if we started relying on NS* rather than JavaScript standards.

Unfortunately there really isn’t much in it for Apple because it either involves a huge port of their libraries of a huge loss of design I’m apps. The bare minimum is to allow current (major?) apps that rely on UIWebView for the majority of their content to access Nitro, ensuring faster performance.

Ultimately I don’t think that Apple will make HTML5 apps first class citizens on the App Store any time soon, but accessing Nitro could provide a major boost to mobile web apps.


Word Finder now free

My app Word Finder is now free on the App Store. Word Finder allows you to cheat at common word games such as Scrabble, Boggle, Letterpress as well as searching for anagrams and patterns (which is arguably its most useful feature because it makes cross word solving very easy).

My reasoning for making the app free is the following:

  • Only a few people had downloaded the app and I care more about people using it and enjoying it rather than paying for it
  • There is no iPad/Universal version and very few good apps (not games) are only on iPhone and paid for
  • I’m keen to open source the app and develop an Android version
  • By open sourcing it I will attract more attention and more people will use it and suggest new features
  • It is not a major project compared to Keep Calm

Keep Calm Pro 2

pronew01I’ve just issued an update to Keep Calm Pro for Android. The new update brings the feature set inline with the iOS version of the app and users are now able to access, edit and share all the posters that they create within the app. A major new addition is the Montserrat font which is a major change from PT Sans, which I was using previously. I’ve also improved the way that posters with background images are handled.

Get Keep Calm Pro 2 on Google Play for 99c/69p now.


The great GitHub migration

Over the last few months I’ve noticed a pattern emerging on Google Code’s Project Hosting. Almost every single major project (excluding, although sometimes including, Google’s own projects) on the site seems to have migrated over to GitHub. I decided that I would do a little investigation to calculate the proportion of projects that have moved over.

Google Code allows you to search for products by tags so you can view projects written in a specific language. On their homepage they have a list of tags that I assume are most popular/most committed to/most downloads. I then went through this list and recorded the total number of projects for each tag. Obviously there will be some overlap. I then carried out each search again with GitHub appended onto the end, hopefully identifying projects that mentioned that they had moved over. Obviously a more accurate way would be to get a full listing of all projects on Google Code and then to try and find the same project on GitHub, but my method seemed accurate enough – all of the results I clicked on definitely showed themselves as having migrated.

I then recorded all of this in a spreadsheet:

googlecodestatsObviously there are a few things to note from this. Firstly, almost 30% of all projects mentioned GitHub in their description. Secondly, the total repos thrown up by a search often produced very, very similar numbers so I cannot be certain that these numbers are accurate (on the other hand it could be that every Android project is also tagged with Database, but that is clearly not true).

A very important thing to note is the order. I assume that the tags are listed in some kind of popularity/activeness order on the Google Code homepage. It certainly isn’t total number of repos. Therefore we may assume that more popular projects written in Java and Python have also been more active historically, however these projects are now moving to GitHub.

Very little can be concluded from this except that there is definitely some migration of projects away from Google Code and onto GitHub (and I get almost 4 million search results for ‘google code to github’) and even without statistics the open source community is definitely converging on GitHub.