At this time of year all my thoughts normally are reserved for WWDC. This time I'm thrilled instead by the prospect of not only attending but also presenting a talk at this years iOSCon. Coming only two weeks before the main event iOSCon will be a moment to consolidate everything learnt in the past year before that time when everything changes again.
Having attended WWDC '15 it still remains the epicentre for Apple's developers. That said the event is now infamously an expensive lottery to attend and no longer able to cater for the growing size of the Mac and iOS communities. As a result events like iOSCon are now more important. This is the way most of us will get to mix it with other iOS developers to share experiences with one another face to face. Still the best way to learn and gain new understanding into our own work.
In the iOS community we have answered all the basic questions that existed in the early days of just figuring out a new platform, devices and capabilities. In early years I imagine an iOSCon or event like it would have featured such exciting subjects as Location, Accelerometers and TableViews. Now the focus has noticeably shifted to different topics with a growing interest in patterns, principles, architectures and even philosophies! This is a timely shift in thinking most of us will have experienced a need for. It reflects the changes in the nature of our work as code bases grow in complexity and the legacy we're responsible for maintaining grows with it. This requires a very different set of skills and disciplines to enable us to find answers to the questions we are now asking ourselves.
In my journey through this transition I've become fixated by a growing problem of what I've seen as the dysfunctional approach to specifying requirements and verifying them through associated test automation. Often it turns out problems such as these aren't really new to the wider industry and are solved problems. When we look wider than just our own platform experience we have a lot to benefit from. Just as the Massive View Controller came out of a poor understanding of the MVC pattern and a lack of experience in the early days of iOS development; so acceptance testing seems to be going through the same pain. We're only now just beginning to unravel those MVC problems through discovery of Clean Architecture and S.O.L.I.D. principles that have there roots not in our industry but in the work of computer scientists in the early 90's.
For my part I will share a new approach to automation testing that I believe if adopted could increase efficiencies in iOS development and test by an order of magnitude. I'm though dissapointed as my own talk clashes with Roy Marmelsteins "I Swift therefore I am - Swift and Philosophy" which sounds fascinating. Swift is clearly developing a life of it's own, distinct from it's role as just a language for Cocoa development.
I'm looking forward to Day 2 as I'm not speaking that day and that means I can just relax and enjoy the talks which cover some very essential subjects of patterns, principles and architecture. It reflects the changes in the nature of our work as code bases grow in complexity and the legacy we're responsible for maintaining grows with it.
Finally I'll be listening intently to Daniel Steinbergs 'Understanding your Toddler'. I am actually hoping to come away with new insights about my two year old.
See you at iOSCon (tickets still available)