Handy TextMate bits and pieces
- Full Screen Support https://github.com/enormego/EGOTextMateFullScreen
- The MissingDraw https://github.com/jezdez/textmate-missingdrawer
- A huge collection of themes https://github.com/filmgirl/TextMate-Themes
- Reveal in project draw ^ ⌘ R (command + control + R)
JCTiledScrollView (Melbourne Cocoaheads Feb 2012)
I put my hand up to do a talk at the first Melbourne Cocoaheads 0f 2012 on CATiledLayer and some of my experiences to date trying to get it running nicely in iOS. It was a really great start to the year with an attendance of around 80 people and more AV gear than you can poke a stick at, organised by Sean Woodhouse , sponsored by IttyBittyApps and hosted by RMIT. (Video link coming soon)
I talked about implementing CATiledLayer in iOS and on high resolution devices. I had really struggled with a good way to implement CATiledLayer while continuing development on the City Metro Apps over the last twelve months and when I finally cracked it in January this year I thought I should put together some demo code and a talk. At the end of the day the presentation was a reflection on my journey and some pointers on some of the finer points that took me a while to get right.
In hindsight it wasn't that CATIledLayer is a difficult class to master but more that I struggled to ask the right questions about how to make CATiledLayer do what I wanted.
To run along side the presentation I've released a demo project called JCTiledScrollView to github. Most of the details of JCTiledScrollView are set in the README of the project, and if you checkout the codebase you also get the slides, and slide notes. The most interesting part is the code though. I've added PDF rendering support to the code base after a hint from Luke Tupper @tupps (on a branch at the moment), which I will merge back in to the mainline when it's complete.
Any feedback on the code i've prepped would be cool!
Realestate.com.au iPad app goes live!
It's been a number of months and some incredibly late nights in the making but the Realestate.com.au iPad App finally went live in the iTunes store last Friday, August 12. I was lucky enough to be able to give a demo of the app the night before release at the Melbourne Cocoaheads meeting at the Intunity offices in Cremorne and the response from probably the largest (70+) crowd ever to attend a cocoaheads was really exciting.
I joined the REA Mobile team back in March 2011 to help with the contenting development of their iPhone app, and after a UI uplift release for the iPhone we started working on the universal iPad app. After some hiccups along the way, we managed to deliver a brilliant looking, stable app that I'm really proud to have worked on. I'd say it's reset the bar for iOS property apps, and is streets above its competition.
The REA Mobile team is lead by Kevin O'Neill (@kevinoneill), second chaired by Luke Cunningham (@icaruswings) and backed up by Steve Hollaway, Ben Thomas, Mike Rowe, Myles Abbot, Mujtaba Hussain and myself.
Some awesome technical bits / features of the app include:
- Custom forms (IBAForms) for advanced property searches.
- A gorgeous custom UI including the little bits that are really hard to customise.
- Custom map callouts are really hard to customise.
- It's a true universal app it has a shared underlying code base and consistent behaviour, look and feel.
- It rotates, and it rotates like a boss. Rotate it, and see it resize itself without any of that crappy UI flickering you see elsewhere.
- Swishy tap, pan and swipe gesture recognisers all over the place make interactions really fluid.
- It's damn fast (it has it's own purpose built back end).
- It's stable. We tested the f*ck out of this app... and the competitors...
- It caches images and searches and other things; it also behaves nicely when errors occur.
- It's using the latest iOS 4+ technology and minimal amounts of old legacy code (there's always some right?)
- It leverages/wrangles a handful of awesome open source frameworks.
- It sets the bar for it's category in mobile property apps.
So yeah ! If you haven't already - check it out on iTunes -> Realestate.com.au in iTunes
WWDC 2011 Video recommendations (Updated)
Update 26/6/11 : I've fixed a couple of errors, and updated the formatting of the post below.
WWDC Videos are out this morning! Here's my very quick 'Hit List' based on the sessions I attended and the sessions I stared in the WWDC 2011 app on my iPad.
Monday - Kickoff Sessions
601 - Apple Platforms Kickoff
300 - Developer Tools Kickoff
400 - Graphics, Media and Games Kickoff
Tuesday
100 - What's New in Cocoa Touch
102 - Implementing UIViewController Containment ** This is probably the most interesting thing in iOS 5 from my point of view.
101 - What's new in Cocoa
500 - What's new in Core Location ** Presented by a friend of mine, lots of people were excited by the new stuff here
104 - Advanced ScrollView Techniques ** The ScrollView talks are always great
501 - iCloud Storage Overview **
105 - Polishing your App: Tips and Tricks to Improve Responsiveness and Performance
303 - What's New in Core Data on iOS ** There was some cool stuff in here.
203 - Introducing App Sandbox (Lion)
323 - Introducing Automatic Reference Counting (ARC) **
Wednesday
111 - Visualising Information Geographically with MapKit
306 - Maximising Productivity in Xcode 4
308 - Blocks and Grand Central Dispatch in Practice ** The line for this was the longest all week
307 - Moving to Apple LLVM compiler
310 - What's new in Instruments
116 - Storing Documents in iCloud using iOS 5 ** Not exciting for me, but people like the concept
Thursday
208 - Securing Application Data
313 - Mastering Schemes in Xcode 4
210 - Mastering Grand Central Dispatch
121 - Understanding UIKit Rendering
124 - Twitter Integration125 - UITableView Changes, Tips & Tricks
316 - LLVM Technologies in Depth
422 - Using Core Image on iOS & Mac OS X **
129 - Practical Drawing for iOS Developers **
318 - iOS Performance in Depth
Friday
134 - Writing Easy-To-Change Code: Your second most important goal as a developer
322 - Objective C Advancements In-Depth
I’m attending: WWDC 2011 (SFO) and Swipe Conference (MEL)
Just a quick post to highlight some upcoming events I'm getting excited about.
If you're reading this and attending WWDC or Swipe Conf then hit me up on Twitter and we'll coordinate beers.
First up is WWDC 2011 in San Francisco and it's going to be awesome - I didn't go last year and this year I'm flying up along side a handful of Melbourne iOS developers from the Melbourne Cocoaheads group and the Itty Bitty Apps guys, Sean Woodhouseand Oliver Jones. There's a Pre-WWDC catch up in Richmond/Cremorne in Melbourne on 1/6/11 being organised by the Intunity and I will be attending that too.
Later in the year is Swipe Conference (swipeconference.com.au, @swipeconf), September 5 - 7 in Melbourne is the next big thing for iOS Devs and looking at the line up it's going to be an awesome three days. I'm hoping it brings in the iOS developers from near and far that have yet to turn up at a Cocoaheads meet - there's a lot of devs out there.
I'm also attending TEDxSydney on the 28th of May, but since I missed out on a proper ticket I'll be hanging out out the front all day like I did last year.
Xcode4 Shortcuts – Melbourne Cocoaheads, April 2011
Stewart Gleadow (@StewGleadow) from Thoughtworks and I did a quick talk at the Melbourne Cocoaheads meetup this month quickly highlighting some of our favourite (or more obscure) Xcode 4 shortcuts.
The main take away of the whole exercise for me was finally memorising the shortcut symbols, overall this has improved the rate I remember new shortcuts greatly. I suggest you do the same thing!
Update: Video and slides are now available below! and on the Melbourne Cocoaheads website.
Cocoaheads 04/2011 - Talk 2 - Xcode 4 Keyboad Shortcuts via Oliver Jones
Is it worth supporting iOS 3 in 2011?
Now that we're well into 2011 the question has to be asked: Is it still worth supporting iOS 3 devices? There's a lot of cool APIs and language features you can take advantage of in iOS 4 (blocks - woo!), most new work I'm involved is targeted at iOS 4 and soon we'll have iOS 5 - but are you cutting off paying customers or future paying customers by requiring iOS 4.0 and above?
My short answer: no, not really. iOS 3 numbers are in steady decline and I don't think new or existing apps will be alienating too many active customers by requiring iOS 4+.
Quick Stats
- Only 11% of my active users are running less than iOS 4.0
- Only 6% of active users of my main paid app Seoul City Metro are running less than iOS 4.0
Now, lets have a look at some of the data I've compiled. Hope you enjoyed the graphs!
This first graph includes all the data I have collected so far summed up by month and major iOS version. The decline of iOS 3 is clear here with iOS 4 accounting for 89% of all active users by March 2011.
The second graph shows a sample of the last week's data split by iOS version.
The third graph splits up the 89% pie piece from graph 2 and shows the uptake of each distinct iOS 4 version. I found the iOS 4.3 update really interesting, since it was released on March 11 (only 9 days ago) and already accounts for 30% of users. (FYI: the first occurrence of iOS 4.3 was 15-01-2011) The previous version (iOS 4.2.1) is the second highest total at 55%. This means 75% of iOS4 users are actually quite up to date!
The same graph for the iOS 3 distribution (not included) shows the latest version of non iPad iOS 3, 3.1.3 accounts for 81% of users, and the version prior to that (3.1.2) accounts for 17.6%.
Graph four looks at the difference between paying customers and non-paying customers. The results are interesting but as I expected; paying customers are more up to date than non paying customers. There are half the number of iOS 3.x users (by percentage) of my $1.99 app as there are using my free app. It makes sense that people who pay for apps keep things up to date more than your user with a phone full of free apps.
P.S. I was inspired to pull all these details together today when I was noticed that my blog post about Delhi City Metro's iOS usage statistics had been linked to on Stack Overflow . I hope you find this all interesting.
P.P.S. Since July 2010 I have been collecting a basic set of anonymous data from users of my apps on launch. I collect iOS version, app version, unique device ID and the device type, I have recorded just over 109,000 pieces of data so far.
A simple bash script to automatically create your iOS Icon.png files
The other week at my weekly co-working catchup in the city I was made aware of the very handy sips(1) command line tool. Sips is short for Scriptable Image Processing system and is more or less a command line front end to Apple's image processing abilities.
My problem that day was "How can I automatically resize my Icon.png artwork" and all of a sudden with the knowledge of sips' existence it was easy to write this small bash script to rename and resize my large 512x512 pixel artwork down to the various names and sizes required by iOS. (Thanks Mark!)
The script is simple; give it an input PNG image at least 512x512 pixels (multiple of 512 will work too) and it will create your iTunesArtwork, Icon.png, Icon@2x.png, Icon-Small.png, Icon-Small@2x.png, Icon-Small-50.png and Icon-72.png file nicely. These sizes are all outlined in the "Application Icons" section of the iOS Application Programming Guide, and adding more when necessary is obvious.
This script should save you at least a dollar on the similar GUI apps on the app store that do the same thing...
I've made a gist on github too.
12 Months on the App Store
It was December 9, 2009 that Seoul City Metro 1.0 was approved for sale on the App Store after almost the full 14 days waiting in the approval queue. (See original blog post here)
The last twelve months have gone so fast, and I can't say I've managed to get as many apps published, or do as much marketing or promotion as I thought I could - but what I have managed to achieve has been a lot of fun and something I'm really proud of.
Here's some statistics from December 9 2009 - December 9 2010
Apps: 5
Sales: 36,965 (including free apps)
Upgrades : 20,522
Revenue (USD approx) : $ 4500
Coming up in 2011 I'm introducing iAds/AdMob ads into the mix, and hoping to expand to more cities, explore some marketing options and upgrade the citymetroapps.com website.










