Disappointed with the default Apple clock app I decided that it was high time to create a simple, easy to use app that allows you to run and save multiple timers at once.
Multi Timer makes it really easy to save timers for tasks you do regularly and allows you to run multiple instances of the same timer at once. Even if you haven’t got the app open, Multi Timer will notify you when a timer has finished. Multi Timer is especially useful in scenarios such as cooking where you might want to time individual components separately.
Once again I have used FMDB and FlatUIKit to create this app (I’m also using Crashlytics for the first time). I had considered using UI7Kit for the UI, and given that the app is so simple I probably could have done however I really like the look of FlatUIKit (especially the buttons and color schemes) and I think it provides a bit more back compatibility with previous versions of iOS. If, however, you run the app on iOS 7 it will default to normal UINavigationBars and UITabBars in order to avoid some rendering issues on iOS 7 with FlatUIKit.
When you create a timer you can optionally assign it one of 12 icons (I’m planning extra/custom icons for a future release). My normal workflow for this would have been to create the icons in Inkscape and render them to PNGs. PNGs for icons tend to be pretty small – especially when compressed with ImageOptim – however instead I created all of the icons in Opacity (which proved to be a lot nicer to use on OSX than Inkscape) and then export Quartz rendering code for the icons instead. The code isn’t super well optimised, however it kept the size of the app incredibly small (~1MB) and allows for completely resolution independent icons.
I first released When You’ve Got Swag on Android a few months ago and to my surprise it actually ended up getting around 30,000 downloads. Over the weekend I decided that I wanted to play around with FMDB so I decided to put together a simple iOS app, and it struck me as a good time to bring the wildly ridiculous ‘swag’ images commonly found on Instagram and Tumblr over to iOS.
After having written the model code (which really is pretty simple) FMDB proved to be really awesome and I see it as reasonably likely that I will use it as an alternative to Core Data in all my apps – it was really easy to get started with, I didn’t have to write 100 lines of boilerplate code and I don’t have to worry about issues between threads as much as I did with Core Data – when I wrote Keep Calm I actually ended up with a whole extra model layer on top of Core Data to handle rendering on a separate thread (I now know that this could be easily rewritten).
The UI was all created with FlatUIKit (well not quite all, I had to use a tiny bit of UIAppearance) which proved to be just as awesome and I plan on using FlatUIKit+FMDB a lot in the future :).
To customise which words are highlighted you enter the text in block capitals (case doesn’t matter, all of the pictures are rendered with capital text anyway). I had originally planned to try and detect #hashtags, @usernames and URLs however I realised that just detecting punctuation next to capital letters would be a lot easier and more customisable. The text rendering is done using a regular expression to find characters and then an attributed string rendered with Core Text for the highlighting. I intend to add text sizing in a future release along with iPad support (the app is so simple and because it was originally written as a test app I don’t really see the need for this).
Exactly a year ago today I released the first version of Keep Calm on Android. Over the following year I’ve released an iOS version with Pro versions for both platforms. Combined, the apps have had almost 1.5m downloads.
The original version of Keep Calm was very different to the current version (and almost entirely different from the iOS version). Rather than being able to see the poster and edit it in real time the user instead had to fill in a form with the option to pick from around 25 icons before they got to see the poster. The poster generation was also incredibly slow.
I’ve got it noted down that Keep Calm had 200 downloads (I vaguely remember it being nearer 250) on its first day and I was particularly excited at the thought that somebody downloaded my app every 7 minutes, however at a peak I’ve had downloads every 7 seconds…
About three and a half weeks ago I realized that I could quite easily adapt the code from Keep Calm Pro so that it could create a number of different posters. I then began work on app called Posters that would allow the user to do this however unfortunately I became to busy to work on it and I then forgot completely about it. This weekend I remembered that most of the work had already been done so I put it all together and tidied up the UI.
Version 1 includes all of the functionality of Keep Calm Pro (so you can buy either and not be at a loss) and also allows you to create Your Country Needs You, Meme based caption images, Demotivational posters and Motivational posters as well as Keep Calm and Carry On.
Rather than taking the code based rendering approach that I’ve used before I designed a simple JSON based format that allows me to quickly create new templates without having to write any code as it all gets interpreted by a rendering engine that actually takes up less space than the Dunkirk engine that powers Keep Calm and Keep Calm Pro.