I‘ve developed iOS applications since before the official SDK was released (when basically you had to build your own toolchain and dump the headers by yourself, only for jailbroken devices), around the end of 2007.
During that time I’ve participated in or completely developed around twenty applications to the AppStore both for iPhone and iPad, while working for three different companies. Several of this applications have been showcased and placed in the top ten for months, also having been awarded. In these projects I performed every single tasks involved, from interaction design and implementation to AppStore release and review rejection handling.
Areas of expertise
These are some areas of the official iOS SDK I consider myself proficient with:
- Language: proficient with ObjectiveC, C/C++ (including categories, templates, runtimes, etc.)
- CoreData: the incredible flexibility it provides is well worth learning its intrinsics
- CoreGraphics: custom controls and animations require going deep into it
- CoreText: custom non-standard font rendering
- CoreLocation: battery saving techniques
- AVFoundation: playing and recording media, network streaming
- UIKit: most code you write is based on it, but knowing the helpers is a must
- System, Security and CoreServices: connectivity status, device identification, keychain handling
- MapKit: including dealing with overlays, customisations
- Foundation: containers, collections, date conversion, file handling, etc.
- Runtime: dynamic class, ivar creation and handling, swizzling
- Interface Builder: I tend to prefer it over programmatic UI
- iCloud: settings synchronization
- Memory models: both reference count and ARC
- Instruments: object count leaks and graphical performance
- Xcode: static libraries and framework creation, binary distribution
- Localization: most of the applications I developed are localised in at least two languages
Other third-party frameworks and tools I’ve dealt with are:
- RestKit: the swiss knife of REST services integration
- ShareKit: even after SocialKit introduction remains important for unsupported services
- TestFlight: platform for adhoc binaries distribution
These are some of the application I’ve developed I feel most proud of
Greetz (iTunes Store)
Postcard authoring tool, completely customised to match the customer house style. The postcard editor support multiple layers and objects, templates, recorded and stock sounds and much more. Includes complete offline functionality based on CoreData and implements the most popular payment methods. Besides implementing the iOS version, I was heavily involved in the design and development of the Android version.
This application won the ‘Best Mobile Shop 2012′ award, also being one of the most popular application in the local AppStore (two years in the top ten), its revenue amounting to 20%+ of the business.
Werkspot (iTunes Store)
The application allows to create a complete order, along with attachments such as photographs and documents, and selecting a number of parameters from an online catalog of workers. The application is meant to be used offline and caches all the content using a local database . The design, fully customised, mimics the customer house style.
Part of the development was to collaborate with the design and implementation of the REST API in which the service is based. The application users CoreData to store every single piece of pervasive and transient data that is retrieved from the network, implementing expiration policies, different view to make to application fully responsive.
Van A naar Beter (iTunes Store)
Tailor made for the Ministry of Roads and Water, implements a fully customised UI and iCloud stored settings. The application solves a set of strict requirement (to not implement authentication but to store settings per user, to not use external services like Google Maps, to user open source in as many components as possible) that made the development particularly challenging. We were required also to implement the backend, that includes the creation of routes to avoid a known set of traffic jams and blockades, retrieved from a publicly available database, and an emergency events alert system based on push notifications.
Hyves Mobile (iTunes Store)
This was the number one application in the local AppStore for a number of months. I was hired by Hyves to take over and rebuild this application, originally developed by some external contractor. The main challenges of the development were to keep the feature set current at the same time that new ones were introduced, and scalability: given the application popularity it was required to support 100k+ simultaneous users – a remarkable part of my tasks was the development of linear scaling software and storage.