Sam Ritchie


Chief Codesplicer at Codesplice, Organiser of Perth iOS Developers

Sam has a background in .NET enterprise development, but now works mainly on mobile apps & cloud services. He’s been an Apple fanboy since the 80s, and was coding Objective-C before it was cool. He mainly develops in Swift & F# these days, and actively tries to avoid writing any JavaScript.

Sam runs the Perth-based software consulting company codesplice, and organises the Perth iOS developers meetup group.

YOW! Connected 2016 Melbourne

Quickly Checking your Code for Fun & Profit


Laziness is one of Larry Wall’s “three great virtues of a programmer”, but most people probably don’t consider it a virtue when writing tests! Wouldn’t it be great though, if we could write a program that generates our tests for us? As it turns out, we can and should do this using property-based testing. I’ll go through some example testing scenarios in a few popular mobile programming languages, aiming to demonstrate:

  • What property-based testing is and why EVERYONE should be using it (not just people coding in functional languages!)
  • How generators can quickly & easily come up with more thorough test inputs than a programmer typing in magic numbers
  • How to (and how not to) define properties to specify program behaviour
  • The genius of shrinkers and why they can save you hours of tedious debugging and questioning your life choices

Attendees will gain a solid & practical understanding of how they can apply property-based testing to their own code, in fashion that is both enjoyable and lucrative.

Unidirectional Data Flow For Mobile


Unidirectional Data Flow is the new hotness in UI architecture, but how do we apply this to mobile apps? The easy answer is “Use React Native”, but who would want to take the easy road? Instead, in this talk we’ll go through the key elements of the unidirectional data flow style and look at how to architect this for mobile using an example Swift iOS app.

This will include:

  • Defining core application state and leveraging change events to update the view layer
  • Wiring up an Action dispatcher to manage state change, including background event
  • Approaches to implement navigation flow on top of the UIKit framework

Attendees will gain a clear conceptual understanding of the Unidirectional style, and the practical benefits & drawbacks they’re likely to encounter using it in a mobile app.