Many don't know it, but Objective-C was also inspired by the message-oriented brand of pure object-oriented approaches of Smalltalk. The identification of patterns of program design was inspired by the same Smalltalk practitioners learning from the architectural works of Christopher Alexander. Extreme Programming was born out of the best Smalltalk software development practices (by the best Smalltalk practitioners).
Extreme Programming was "softened" by more generic Agile Software Development approaches. The classic Design Patterns (Gang of Four) book was more complex than the original vision of software patterns due to the complexities of C++. And the combination of XCode and Objective-C have made the grasp of the principles behind Extreme Programming non-intuitive to the casual observer.
But, there are many Extreme Programming principles and practices that can and arguably should be applied to Cocoa Development. In this talk, we will explore some of these principles and practices as applied to the world of Cocoa Programming (particularly in an iOS context), including some mini-case studies of their application... the good, the bad, and the ugly.
Although we like to believe the internet is ubiquitous and everyone has (or needs) a reliable network to get anything done, many iOS users have to live in reality. Many apps have to work when there is no connection. For those that need to update data occasionally when connected, there is need of strategy, tips, and tricks. For those that need to be able to collect data at the heart of their business that needs to get updated and synchronized with master data on a server, the challenges are even greater. We’ll discuss strategies we’ve tried and how well they work using some case studies and walking through some tips and tricks to equip you when you face similar challenges.
When Have you ever begun to look at Cocoa Documentation and felt overwhelmed? Does it seem overly complex to produce anything? Perhaps you've heard the concept of "The Simplest Things That Can Possibly Work" (TSTTCPW) promoted by some Agile and Extreme Programmers but you don't quite get what that means when trying new things in iOS. There are some simple habits of test-driven development and "spikes" that seem to allude many developers. Simple steps that teach and build confidence can produce elegant code and build deep understanding. Using an example from the Software Craftsmanship Academy, Ken will demonstrate the power of simple steps as he starts from a vague suggestion that he uses a UICollectionView to display a card player's hand to a working prototype as you watch. You will see the benefit of disciplined habits of going slow to move fast.
Most iOS apps use one or more UITableViews for at least some portion of their user interface. Unfortunately, UITableViewController code can often be home to monstrous if/else constructs employed to handle cell configuration and user interaction. This talk will illustrate the typical issues encountered with table view code. Whether form-like table views with a fixed number of rows, such as those found in settings views or those used to edit object data, or dynamic tables with multiple sections and rows within each section, you'll learn how to produce concise, readable, and powerful code.
Details coming soon!