I’ve been slaving away for the last two weeks to finally bring your the latest version of our Frasier App! Here’s what’s new:
- brand new iOS 7 UI (on compatible devices)
- 64bit support (on compatible devices)
- beautified Detail View on 4″ devices
- a nicer link to Cover Images (you can even hide this under Settings – Frasier)
- funky new launch screen
- added iCloud support (exciting!)
When the new version launches for the first time a dialogue will ask you if you’d like to use iCloud, and also offer to copy existing data to iCloud. You can also choose to use iCloud but not copy data, which is great if you’re adding an additional device. Or you can just say “no thanks” and stick to local storage. You can always bring this dialogue back under Settings – Frasier.
Once activated, all episodes you’ve seen will be ticked on all devices that use this app with iCloud switched on. Cover images will also populate across other devices – something that took me much longer to implement than I had expected (see below).
You don’t need to have an internet connection to use the iCloud option, but if you’re not connected then none of your changes will be populated to other devices (this will happen as soon as both devices are on the net again).
Adding iCloud wasn’t so easy this time
Once I had tweaked the interface to display better on iOS 7 devices, I thought “let’s just quickly add iCloud support”. It was more difficult than I had anticipated – but I’ve learnt a lot, and I’m excited to finally share the new version with you today.
Without going into too much detail here, iCloud has two storage options: key/value pairs and data. Key/value pairs are a great and easy way to store a value such as “You’ve seen this episode”. I have implemented this in several of our other apps and it just works.
But storing data – such as uploaded cover images – is another matter altogether. Turns out that in order to save bandwidth, iCloud transmits the meta data for an image first, but doesn’t download the image data in the background. So for several days I didn’t understand why an image uploaded on Device A works just fine, while Device B says “yep, the image is there – I just refuse to display it (or tell you why I’m having a problem)”.
I’ve fixed it of course, but the sweat and tears to make it happen aren’t coming back in a hurry. Thinking positive though: now I know how it works.
If you’re interested in the technical ins-and-outs, you can follow my development along in my iOS Dev Diary.