Skip to main content

Daniel Steinberg

Dim Sum Thinking, Inc.

Daniel Steinberg has spent the last three decades working as a professional Swift developer. OK, he hasn't. But he's really enjoying the Swift Programming Language. Daniel has been writing apps for the iPhone and the iPad since the SDKs first appeared in beta and for OS X for many years before. Daniel is the author of the best selling books A Swift Kickstart and Developing iOS 7 Apps for iPad and iPhone, the official companion book to the popular iTunes U series from Stanford University. Daniel presents iPhone, Cocoa, and Swift training and consults through his company Dim Sum Thinking. He is also the host of the CocoaConf Podcast. When he's not coding or talking about coding for the Mac, the iPhone, and the iPad, he's probably cooking or hanging out with his wife and daughter.

Speaker Presentations
Monday, November 10, 2014 - 8:30am
Full-day Tutorials
A Swift Kickstart: Introducing the Swift Programming Language
NEW

If you are an experienced developer who hasn't had a chance to look at the new Swift Programming Language, this workshop is for you! Begin the day with a look at functions in Swift—standalone functions that are not part of a class or other Swift type. Examples will range from helloWorld() to functions that generate other functions and functions that take other functions as parameters. You will be introduced to functions with no parameters, one or more parameters, parameters with default values, and variadic parameters. Learn how to give or hide external names for your parameters and how to create functions that return zero, one, or more values. Along the way, we will need to save state somewhere. In Swift, we carefully distinguish between the case in which our values are only set once and the case in which our values are variable. We will build our examples on four new fundamental Swift entities: String, Int, Dictionary, and Array, which are implemented as structs. We will create mutable and immutable arrays and learn different ways of iterating through them and changing values along the way. Round out the day with Swift types—including classes, objects, protocols, structs, modules, and enumerations. We will look at how to initialize elements from a class, struct, or enumeration and how to add properties and methods to these types. We will discuss the differences between classes and structs and between structs and enumerations. We will introduce power and flexibility through optionals, generics, and closures, use the Swift REPL and Playgrounds to explore some of these aspects of the language, and create projects to explore the rest.

Laptop Required. Delegates should have strong programming skills and should have the most recent version of Xcode 6 installed on your Mac.

Tuesday, November 11, 2014 - 8:30am
Full-day Tutorials
iOS 8 Quickstart: The Fundamental Pillars of iOS Development
NEW

This tutorial is a hands-on quick start to writing great apps for the iPad, iPhone, and iPod Touch and provides you with a solid foundation to get started. If you are an experienced developer who is new to iOS, this is the perfect workshop for you. Begin the day with an introduction to Xcode and Apple's suite of freely-available developer tools. Xcode provides visual tools for providing your apps’ GUI in a storyboard. Learn how to connect the visual elements to code and interact with them using outlets and actions. Xcode 6 introduces new features for easily customizing your storyboard. Take a look at just the Swift you need to provide the model and controller layers for your application. Add logic to your app in multiple source files that illustrate how to partition the code into useful objects and functions. Take a close look at view controllers and how they manage the view with which users are interacting. Finish the day with a look at multiple scenes, and learn how to create and configure segues that allow user transition to and from different scenes. At the end of the day, you will be ready to begin work on your own iOS apps.

Laptop Required. Delegates should have strong programming skills and should have the most recent version of Xcode 6 installed on your Mac.