San Jose / Sessions

A speech bubble icon

Session List for
CocoaConf San Jose 2016

Speakers at last year's CocoaConf
  • Speaker photo

    A Tale of Two Tracers / Jonathan Blocksom

    We will walk through the design and coding, in Swift and then in Metal, of a ray tracer — a program to make images by computing how light bounces around a scene and into the eye. How will the expressive, functional, protocol-oriented Swift ray tracer compare with the one written for screaming performance in C++ oriented Metal?

  • Speaker photo

    Advanced Beginner Git / Laura Savino

    You can commit, pull, and push from the command line when you need to, and you're ready to learn some more git features–but you aren't trying yet, because your source code is a *terrifying* place to experiment with unknown git commands. In this workshop, we'll work together in a pre-existing toy repo so you can get comfortable doing things like: browsing history to find the source of a bug (bisect & blame), using the most helpful of Xcode's built-in source control support (no, it's not snapshots), and getting back to the state where "everything worked" (reset, stash, reflog).

  • Speaker photo

    Art of the Sell / Jaimee Newberry

    Throughout her career Jaimee has held a range of roles from in-house team designer/manager/director, a partner in several agencies, an independent consultant and executive level management. Though her various job descriptions never included mention of the word “sales” she realized that across all these roles she not only had to sell her own work and ideas, but the work and ideas of her teams and colleagues, as well. It stands true that the most important skill she ever learned was how to sell.

    Through stories of client interactions, fumbling and learning experiences, Jaimee will share with you her two rules of design and her “Check-Yourself Checkpoints” which have served to improve her client/team/human interactions with results that close the deal. If you interact with human beings, you won’t want to miss this talk.

  • Speaker photo

    AutoLayout Priorities / Step Christopher

    Auto Layout is a mostly declarative constraints system. What does that mean, why does it make learning and using Auto Layout so frustrating? How can you use this to your advantage? Also, what’s up with the “mostly” qualifier? Come and learn at least a few new tricks - on the path to Auto Layout Mastery. You will see how far the right priorities can take you.

  • Speaker photo

    Beginning iOS Development / Walter Tyree

    This hands-on course will introduce attendees to the fundamentals and tools used by all iOS developers. The morning will focus on fundamentals of Swift and the tools available. The afternoon will explore the multitude of API’s and libraries that allow us to take advantage of the iOS hardware. We will iterate on an application that downloads data from the “internet” and presents it for display. All attendees will receive the source code of the completed application, along with extra features and modules for further exploration. The course and the sample app are structured so that more advanced attendees can jump ahead to explore advanced topics. All code samples will be provided in Swift.



    • Hands on with Xcode and Interface Builder
    • Storyboards and playgrounds
    • Basic debugging and Instruments
    • Dissecting UI
    • Third party tools that every iOS developer should appreciate


    • Introduction to Swift
    • Frameworks Apple provides
    • Arrays, Dictionaries, Strings, Numbers and Dates
    • View Controllers, Table Views, Master Detail
    • Design patterns

  • Speaker photo

    Breakpoint Jam / James Dempsey  and the Breakpoints

    A live performance by James Dempsey and the Breakpoints.

  • Speaker photo

    Building a Server Side Swift API for Games / Jonathan Guthrie

    Build an API for your front end game engine! Together we will build a backend that logs a player in, stores individual & high scores, delivers “in game news” items, and build an administration reporting page. Learn how to build your own Swift Package Module for code re-use, and how to deploy your code to a server.

  • Speaker photo

    Building a Streaming Apple TV App / Chris Adamson

    Apple TV offers a friendly SDK, full of familiar view controllers and Foundation classes, with everything an iOS developer needs to develop their own streaming channel. Except for… you know… the streaming part. In this session, we'll look at how Apple's HTTP Live Streaming video works -- from flat files or live sources -- and how to get it from your computer to a streaming server and then to an Apple TV. We'll also look at common challenges for building streaming channel apps, like serving metadata, protecting content, and supporting single sign-on.

  • Speaker photo

    Building buddybuild / Chris Stott

    While building an iOS app a couple of years ago, Chris and several of his colleagues became frustrated with their workflow and the difficulty to set up and maintain iOS continuous integration & deployment systems.

    They started buddybuild to solve these problems for all iOS developers.

    Today, thousands of companies are using buddybuild for continuous integration and deployment. Chris will share the story of building the company and architecting the systems required for supporting running xcode in the cloud.

  • Speaker photo

    Camera Does What? / Walter Tyree

    Having recently completed a project that uses AVFoundation and CoreImage to facilitate depositing checks; we have a plethora of how-to-dont’s about shape recognition and image capture with the iOS camera hardware. After a survey of rectangle, face and QR code recognition strategies, we dive into how to make these user friendly and tricks for incorporating CoreImage recognition into your apps.

  • Speaker photo

    Control (Your Instrument) / T.J. Usiyan

    Audio Units have finally been brought to the masses. The templates finally provided within Xcode allow the creation of an Audio Unit with a few clicks. We can make sound! It's alive! Now what? Control. In this talk, we will explore accepting input from the user while rendering audio in our instrument.

  • Speaker photo

    Creating a Server Side Application with your Favourite Language: Swift! / Jonathan Guthrie

    A practical demonstration of how to create a server side application in everyone’s favourite language. You will be amongst the first in the world to see some brand new tools in action that make getting started in Server Side Swift a snap, leaving you to do the fun stuff - making your app work.

  • Speaker photo

    Debug, nor not debug? Is that a question? / Mark Dalrymple

    The act of debugging boils down to asking, and answering questions. The better you can make your questions, the more effective you get at debugging. This session shows you how to question reality to become a better debugger.

  • Speaker photo

    Debugging and Testing / Walter Tyree

    This talk begins by looking at some of the new debugging and reverse engineering tools that have recently appeared. Then we dive into documentation options and admonish you to leave a visible trail for the developer that inherits your code. Next, we will highlight strategies for adding testing to legacy code as well as how we have added testing to existing projects. Sprinkled throughout we will look at the most interesting and wierd bugs we've found during our recent explorations and offer advice on our thought process for figuring out their causes.

  • Speaker photo

    Financing Your Technical Debt / James Dempsey

    We use the term ‘technical debt’ to describe parts of our codebase where the code, for a variety of reasons, is not to our satisfaction. In this session we will talk about different ways of thinking about technical debt, including exploring the debt metaphor and the tradeoffs of technical debt in the development process. The remainder of the session will be a discussion with attendees sharing thoughts and experiences of technical debt.

  • Speaker photo

    Firebase: Totally Not Parse All Over Again (Unless It Is) / Chris Adamson

    With Facebook shutting down Parse, everybody knows to never again depend on a third party for their backend solution, right? Sure, and after you spend six months trying to write your own syncing service, how's that working? In 2016, Google has added a ton of features to Firebase, their popular backend-as-a-service solution. Firebase's primary offering is a realtime database in the cloud that syncs changes to and from multiple concurrent users, and their Swift-friendly iOS SDK makes it ideal for mobile use. In this session, you'll learn how to set up a Firebase backend and build an iOS app around it.

  • Speaker photo

    Increasing Productivity in Xcode / Mark Gerl

    Xcode is a powerful tool. It can be overwhelming, and frustrating at times. Come to a talk about how you can update your projects to make your productivity faster.

    Some example content:

    • How to set up your project with .xcconfig files to make updating your build version number and all of your extensions to use the same version number - a requirement for iOS, iOS extensions, and Apple Watch apps and extensions. Instead of updating each target by hand, you can automate this for your entire project.
    • How to setup your code to use the Swift Objective C header, without lots of #ifdefs to determine what project you are compiling. (Each target has it’s own Swift Objective C header, so you can’t share them easily.)
    • Using a build script section to update resources based on your build.
    • Other lessons learned from our plethora iOS, tvOS, and watchOS projects at AOL.

  • Speaker photo

    Intro to iOS 3D Graphics Programming / Jonathan Blocksom

    This hands-on course will introduce attendees to the fundamentals of 3D Graphics on iOS using SceneKit and a bit of Metal. No previous graphics programming experience is necessary but students should be familiar with Swift programming.

    The morning will focus on introducing SceneKit and how to create 3D scenes and camera motion with code and external 3D resource files.

    In the afternoon we will learn about Metal and OpenGL, and how shader programs can be used for custom rendering. We will end the day exploring the cool effects you can do with SceneKit, and attendees will have the chance to try a number of simple projects demonstrating them.

    There will be a math refresher during lunch, covering the basics of vectors and matrix multiplication with an eye towards understanding lighting calculations and transformation matrices.

  • Speaker photo

    Keeping Secrets for iOS Developers / Randy Beiter

    High profile lapses in security are becoming more and more common these days yet iOS applications can still frequently miss the mark on securing data whether the user's or the application's itself. Are you using SSL for talking to a remote API but embedding the credentials for the service cleartext in your application bundle? Do you have high confidence the server you're communicating with is actually your own? Charging for premium content already delivered with your app and expecting the AppStore's default protections to secure it? Is your app ready for Apple's coming changes to App Transport Security that will be implemented at the end of 2016? Learn some tips and gotchas to keeping secrets on the device and in your application bundle with the iOS SDK at this session geared for the iOS developer but potentially useful to any mobile developer.

  • Speaker photo

    Keynote / Matt Drance

    Details coming soon!

  • Speaker photo

    Keynote: γνῶθι σεαυτόν / Mark Dalrymple

    Know yourself. By knowing yourself you can go beyond yourself, and make yourself, and your world, a better place.

  • Speaker photo

    Reverse Q&A Panel / Chris Adamson

    "In Soviet Russia, panel questions you!"

    Borrowing an idea from the Penny Arcade Expo (PAX) and the panels held there by Harmonix (makers of the "Rock Band" games), a "Reverse Q&A" literally turns the tables on the traditional panel. Speakers become questioners, and attendees are the ones with the answers.

    It's a new and novel idea, letting attendees have their moment in the limelight to say what they're really thinking, and letting speakers learn more about what people want from conferences, books, and their development life in general. With a combination of polls, follow-ups, person-on-the-street questions, and funny stories that we can all relate to, the Reverse Q&A will shake the cobwebs out of the old panel format and turn it into a two-way discussion that both sides of the mics can learn from.

  • Speaker photo

    Scouting Swift 3 / Greg Heo

    Swift 3 brought a massive set of changes to the language. In this talk, we'll go over some of the highlights: what you need to know, why they've made the changes they have, and what's coming up in the future. Whether you're 100% on Swift or have mixed Objective-C + Swift projects or are just starting the transition, there will be something for you: Swift features, cross-language bridging, and even some live coding.

  • Speaker photo

    Server Side Swift: Are We There Yet? / Tripta Gupta

    In this talk, Tripta will cover what it means for Swift to arrive on the server, discuss some of the popular frameworks out there, and give you an introduction on how to dive into server side Swift.

  • Speaker photo

    Speaking To Your Phone: Beyond Siri / Josh Smith

    In this advanced talk, you will learn how to build voice and speech systems using both 3rd party and Apple frameworks. Voice and Dialog interfaces are very different from the UIs developers are commonly to. This talk will also cover an overview of how to build dialog system and where the state-of-the-art is still (sometimes) lacking.

  • Speaker photo

    Taming MVC with Model View Presenter / Jon Reid

    Untamed MVC leads to “massive view controller”. While MVVM is a popular alternative among iOS developers, Jon will show his favorite approach: Model View Presenter.

  • Speaker photo

    Test-Driven Development Hands-On Workshop / Jon Reid

    Like riding a bicycle, TDD is something you learn by doing. In this hands-on workshop, we’ll start out with a simple exercise to learn the basics of the TDD Waltz. Then we’ll make things more complex, work with a view controller, and finally discuss ways to tackle legacy code. Bring your laptop!

  • Speaker photo

    The Language of Mobile Software is APIs / Tim Burks

    We’re all excited about using the same language to write our mobile apps and cloud services, but as we do, we’ll still need to work with a few things that aren’t written with Swift. Fortunately, there are some great patterns that we can use for doing that. In this session we’ll talk about two technologies that you can use to make your app speak with APIs written in any language: OpenAPI and Protocol Buffers, and then we’ll see how to use them from clients and servers that are written in Swift.

  • Speaker photo

    The Many Shapes of Polymorphism / Mark Dalrymple

    Polymorphism is an important tool in modern development, from Objective-C's classes to Swift's protocol-oriented programming. Learn under-the-hood details of how it all works, from vtables to code piles to existential containers.

  • Speaker photo

    Using Torch7 and Neural Networks on iOS / Josh Smith

    Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms. It is easy to use and provides a very efficient implementation, thanks to an easy and fast scripting language (Lua) and a underlying C implementation.

    In this moderately advanced tutorial I’ll be covering how to use Torch7 on iOS to construct simple neural networks and do some cool stuff.

  • Speaker photo

    Write That Down / T.J. Usiyan

    Debugging is quite the challenge. Tests and design patterns often fail us and we are left printing out values in lldb or pulling in logging frameworks from third parties. Apple has finally released a tool of their own to address logging and we are going to get set up using it in this session.