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