The programming environment for iOS and OS X — shorthand Cocoa — is a fascinating mix of polished, mature tools and immature or non-existent tools. This shows in the relative recency of official testing support, lack of official library dependency management, and the new growth of projects in the Cocoa ecosystem to fill these gaps. Mature in terms of getting products to market, the iOS developer community is just now walking around on its feet when it comes to practices Rubyists, for example, take for granted.
Demonstrated through building a new Cocoa Touch app, I will show what modern iOS development looks like using mostly Open Source tools and frameworks:
- CocoaPods for managing library dependencies
- Kiwi BDD for RSpec style testing
- Frank/Cucumber for automated specification testing of the UI
- Jenkins for Continuous Integration
- Test Flight for over-the-air Continuous Delivery
Emphasizing purpose, setup, and exposing gotchas, I won't get into detailed usage of each tool. Instead, this session will smooth your path for what isn't always easy or inherently obvious. At the conclusion of the session you will be ready to create a Cocoa project with modern tools you take for granted in other development environments.
Focussed on iOS and Cocoa Touch, much will be applicable to OS X and Cocoa development.
You could replace TestFlight with HockeyKit if your focus is on open-source.