2013 Fall Tour Registration Now Open!

Doug Sjoquist

Doug Sjoquist started college in the late 70s having never seen a computer in person. Within a few weeks he wrote his first program on a time-share system, and then there was no turning back.  He wrote his first custom software professionally a year later on a TRS-80, and ended up working in the college computer center and consulting on the side for many years. In the mid-90?s he left to do R&D projects for the US Air Force and DARPA, and eventually enterprise-y stuff in the private sector. He watched the iPhone SDK introduction with longing, and dove into iOS development in 2009. He has developed or worked on several apps for clients that are in the AppStore, has written several custom iOS components for use by other clients, and is active in the iOS development community. He is on a software craftsman's journey, honing his skills on each new project, mentoring others when he can. He still finds joy in seeking out and discovering new things, and enjoys sharing them with others. You can catch up with him on twitter @dwsjoquist or his blog http://www.sunetos.com.

    Presentations by Doug Sjoquist:

  • Test Driven Development in the iOS World, Part 1

    Test Driven Development (TDD) is an approach to development that uses automated software tests to drive the design and development of an application.  It allows developers to focus on one thing at a time -- to tend the individual trees in the forest without destroying the forest itself. This session will: - discuss some pros and cons of TDD in the iOS world, - consider what thinking about development in a "test first" manner entails, - work through the initial steps of developing an iOS app using TDD techniques. Other sessions discuss some of the automated testing tools available for iOS in more detail, so this session will focus on using the tools, not the tools themselves. In part one, we will begin developing a simple game using TDD techniques, focusing on testing components with no dependencies.

  • Test Driven Development in the iOS World, Part 2

    In part two of our TDD journey, we will build on the simple game we began in part one, and practice thinking in a "test first" manner. We will move beyond simple components and look at how we can use TDD techniques to test components with external dependencies.  We will explore a few techniques and tools that help us do that  without turning our test suite into a quagmire of hopeless complexity.

  • Developing a Drag & Drop App Using Standard UIKit Components

    Every release of iOS brings more power and ease of use to us as developers, so that we can concentrate more on building the app we want than on writing custom frameworks to do what we need. The current UIKit framework is a deep and rich source for our app building needs with even more goodness on the way in the near future! During this session we will develop a drag and drop app using standard UIKit components and UIGestureRecognizers. Many of the UIKit controls have embedded gesture recognizers, so we will work through some of the gotchas and conflicts that come up in an app of this style. We will build up the app a little at a time to help you follow along the main steps of the development process. The final product of this session will be a simple Sticker style app that you can use as the basis for an app of your own, tear apart for further study, or simply use as a resource for other apps you are developing.

  • Shake Up! Your Development With Kiwi and Behavior Driven Development

    When you hear "behavior driven development", do you reach for your buzzword bingo card? Does your little voice tell you that it can't really be a thing? Do you worry that you accidentally tuned into a TV infomercial?

    Join us and find out that not only is behavior driven development (BDD) a real "thing", but that it is a practical approach to development that will help you produce cleaner and leaner code for your next project. I will introduce you to Kiwi, a tool for iOS that builds on OCUnit and helps us keep our focus on the value delivered to the user.

    We will use Kiwi and BDD techniques to create "Shake Up!", an earthquake monitoring app that uses live USGS data feeds. By the end of the session,

    • you will understand the basic principles of TDD and BDD,
    • you will be motivated to try TDD or BDD sometime soon,
    • you will understand that Kiwi can make your development more effective,
    • you will have the complete project for the Shake Up! app to experiment with.

  • I'm Cuckoo for CocoaPods!

    Is your code pantry overflowing with Cocoa components whose expiration dates have long since passed? Does the smell of rotting code make you afraid to open that closet door? Are you a code hoarder, accumulating more and more, but using it less and less?

    Come learn how CocoaPods, "The best way to manage library dependencies in Objective-C projects," can help straighten out those shelves of code once and for all. I will walk you through the set up, give some practical tips on how to organize your own local repository, show you how to turn your own private and public libraries into CocoaPods, and discuss the strong and weak points of using it in your project.

    By the end of the session

    • you will understand what CocoaPods is,
    • you will see how it can help you organize your code closet,
    • you will know the basics of using CocoaPods in your project,
    • you will have seen new CocoaPods come to life.