For a number of reasons I didn’t get to update Doodle Booth for the launch of iOS7. Actually the main reason was that I worked on 2 books at the same time during the summer that had to launch on iOS7 launch day so …
However after all the fuss was over I got together with my designer Nikolay and we got to work on a proper iOS7 update for Doodle Booth.
It turned out to be a much harder task than I thought. First of all – probably half of the current code of Doodle Booth has been written for iOS 3.1, yeah – bummer, all the code is non-ARC and it makes use of not more than 1/3rd of the current Apple iOS frameworks. Not to mention that I am constantly adding features for about 4 years now to this codebase and the project is (and that’s an understatement) large.
However Doodle Booth 3 is shaping good, but I thought it’d be nice to post few notes on the progress:
1) Handling non-ARC code
Converting a 40K lines of code project is not something Xcode can handle automatically. And writing non-ARC code is just not an option for me anymore. So after careful consideration I came to the following solution.
Close to 99% of the new code is in new classes, i.e. I’d separate features or modifications of the existing code base into separate classes so that I can make those new files being ARC managed. Snap. No more retain this and retain that.
Doing this is easy enough, add the new files to your Xcode project and then go to Build Phases / Compile Sources, select the new files and hit “Enter” on your keyboard. In the little popup window enter “-fobjc-arc“. This will enable ARC for these files:
2) Experimenting with UI
Since iOS7 puts a whole new level of challenge to UI design – by removing the standard button paradigm, I started to dislike having buttons. I mean what’s the point of a button if it’s just a piece of text? And how is it better than just another piece of text, which in turn is .. just a text … what may sound as rambling is just the feeling of it after dealing for few months extensively with developing iOS7 UI.
However … as part of transitioning the (originally fantastic) UI of Doodle Booth to iOS7 we did several changes. First of all we changed the main color of the UI – we wanted to show that a big change happened and so make the user pay attention the first few times they use the new app. We removed all button borders, but still tried to keep the doodle style of the UI; however for example the paper sheet background had to go. Here’s to give you an idea how the start screen changed from iOS6 to iOS7:
What I am most excited about is that I went ahead and removed the close buttons from all modal dialogues. Since the old “X” button didn’t fit the iOS7 and I didn’t want to have a plain text button saying “Close” I just removed the various “Close” buttons.
Well how do you close then these modals? Well … take the web image box variations – it never (or almost never) had a close button. But users still figured it out that they just have to click aside and the modal will be dismissed.
I think this experiment works out well so far … Here are some preview screenshots and I guess we’ll know more when we release the app :]
Here’s one of Doodle Booth’s modal menus (basically what a cocoa modal action list does for you). In this case there’s only 2 options to choose from and there’s plenty of space around them + it appears over a blurred version of the previous screen:
Another case is the app about screen – I went about it and removed anything that was not really necessary, so in the end I had: the app icon, copyright, our names and URLs. That’s all – lot of empty space the user could tap top dismiss this modal view controller:
Most of the UI is transitioned – I still need to implement couple of things related to in-app purchases and we’re hitting the App Store (hopefully in time for Xmas, but let’s see)
That’s all for today! Thanks for listening