My first approach to iOS development was taking the iTunesU Stanford course “Developing iOS 7 Apps for iPhone and iPad” taught by Paul Hegarty. It is awesome, I really recommend it even if at time of writing it seems that Objective-C will be substituted by Swift in the near (?) future. By the way, I’m already reading the Swift guide of the new language; just in case…
Back to the course, the key point in learning programming is hands-on practicing by doing the exercises. The result of the experience was the the two apps I came up with: a card game and an image browser. The former is a simple ‘memory’ game where the player must find pairs of identical cards. The latter connects to Flickr and allows the user to browse among the last uploaded pictures.
The apps might seem simple and even useless for the majority of users, but from a development point of view they have been an excellent practice to learn the basics – and not so basics – of iOS development. Programming them gave me the opportunity to learn about OOP, MVC, storyboard, action, outlet, protocol, data source, view controller inheritance, collection view, attributed strings, auto-layout, tab bar, navigation, scroll view, table view, iPad, split view, popover, segues, blocks, GCD, CoreData, …
Although the apps are not available in the AppStore, you can check the software architecture as well as the source code in the following links:
- 2CardMatch: class diagram – source code at Github
- FlickrBrwsr: class diagram – source code at Github