The Grand Tour of iOS Architectures

by Dan Cutting

Last week I gave a talk at iOSCon 2017 entitled The Grand Tour of iOS Architectures. #ioscon

Join Dan on this grand tour and discover the plethora of iOS software architectures popping up, from VIPER, VIP and Clean to Flux, Redux and Reactive. Along the way Dan will highlight the common themes and look at some real case studies, to get to the essence of what architecture is and why you should think about it for your app.

You can find the video on SkillsMatter (free registration required) and the slides on SpeakerDeck. The talk centred around an example app, available on GitHub, which is implemented using several different architectures.

I think the talk went well, and I somehow even managed to land exactly on 30 minutes. I got a lot of really fantastic questions that I think demonstrate the importance of this topic, and the desire for the community to step up when it comes to improving the design of our iOS code bases. I couldn’t have been happier!

I had a great time at iOSCon this year. Aside from meeting lots of great people, there were some really interesting talks. Read on for a few personal highlights.

Day 1:

  • Paul Ardeleanu hosted the entire event with wit and aplomb, and also gave a great talk about using playgrounds to improve the TDD experience with more immediate feedback
  • The keynotes from Saul Mora (Balance) and Daniel Steinberg (It’s about time) were both fascinating and inspiring. Daniel’s talk in particular poignantly reminded us to be aware of how and why we spend our time on this planet
  • Jorge Ortiz Fuentes spoke directly after me and went into a much deeper dive about Clean architecture and how to apply it to real apps. Having our two talks together worked really well
  • Janie Clayton’s amusing and cautionary tale of diving into Metal (“it’s not a graphics framework!”) struck a chord with me as I’d gone through a similarly difficult journey when building my fluid dynamics Apple TV app, Plasmic
  • Paul Hudson performed a frankly astonishing 90 minute live coding workshop about writing “natural Swift” where I learned a few neat tricks like boxing structs. Unfortunately there is no recording!
  • Lasse Koskela distilled his learnings from implementing local search for iOS apps which emphasised just how tricky something like this seemingly pedestrian feature can be. I’m keen to check out CLucene

I liked the inclusion of lightning talks during day 1. These were a welcome degustation amongst the chunkier talks. Aside from Paul’s TDD demonstration, I also enjoyed:

Day 2:

  • I really enjoyed Scotty’s plea for us to consider how to make passwords a less horrible experience for everybody
  • Adrian Thomas related his experience of building apps that work across iOS, macOS and tvOS
  • Finally, Yoichi Tagaya made a case for dependency injection and even showed how to build a simple IoC container from scratch. I appreciated him demystifying what is seen by some as unnecessary magic (myself included!), although I’m still not sold on the concept of containers for iOS

There are still several talks I need to catch up on, including:

Thanks to Skills Matter for hosting iOSCon this year. It was a great event at an excellent venue. I heard a lot of good feedback about the event from people during the breaks, and the pizza at the party was delicious. :)

I’ve already got my ticket for iOSCon 2018 next March, and if you register before 26th June 2017, you can get an amazing discount!

I will also be speaking at the accompanying iOSCon Bytes series on August 8th. It would be great to see you there.