Getting Started

Mobile App Case Study, Episode 1

By Robert C. Martin and Justin Martin

82 minOct 2016

"Hey Justin, you're something of a mobile app expert nowadays, aren't you?"

"Well, I have built several significant iPhone apps for various clients over the past few years..."

"Do you want to do a video series on the topic?"

"Sure, Dad. That sounds like fun. Actually, I've been learning Swift. Do you want to do the videos using Swift?"

"Swift, eh? Sure, why not. I don't mind learning a new language. We can do TDD right?"

"Yes, the tools support TDD, no problem."

"Great! OK, so let's write a simple Go-Moku app."

"You mean that five-in-a-row game you play on a GO board? That sounds like fun. So what are we trying to teach in this series?"

"Well, I think our focus should be to use the series to teach the following principles:

<ul class="bulleted-list>

  • TDD—How to do Test Driven Development, for a mobile app, in Xcode and Swift.
  • Pairing—You and I will pair program, and talk through our issues so that the viewers can follow along.
  • Pomodoro—We'll use the Pomodoro time-management technique both to structure the videos, and to manage our time.
  • Model First—We'll drive the development by building the business rules first, and then fit the GUI, network, and data access in later.
  • Clean Architecture—We'll separate the GUI, Business rules, data access, etc. into separable components. Keeping the architecture clean.
  • Dependency Management—Using OO, we'll create a plugin structure between those components that will allow the application to scale.
  • Swift—And, we'll explore some of the interesting language quirks and features of Swift.
  • "OK, so just normal, professional, mobile development. I'm on board. Sounds like a hoot. Let's go!"

    The github repository for this series can be found at: