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?
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
"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.
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.
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.
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!
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.
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.
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.