Design architecture of complex iOS codebase from scratch. What app architecture pattern you should use for your unique needs and why.
Since launch, almost all iOS apps were designed for a single screen, but with Marzipan on macOS and USB-C monitors on iPad that's finally about to change. In this talk you'll learn how to build apps that work great across multiple windows, first with a walkthrough of all the theory then a live coding demonstration so you can see exactly what the steps are.
Paul Hudson , Hacking with Swift
Paul is the author of Hacking with Swift, Pro Swift, Swift Design Patterns, Server-Side Swift, Hacking with macOS, Hacking with watchOS, Hacking with tvOS, Swift Coding Challenges, and more. Suffice it to say, he quite likes Swift. And coffee. (But mostly Swift.) (And coffee.)
See significant improvements to your product development by developing your existing knowledge of functional programming in Swift and adding a raft of new skills and concepts to your toolbelt.
One of the first things many programmers add to their Swift projects is a Result type. Up until now it has taken different shapes. New in Swift 5, Swift will include an official Result type. In this talk we’ll look at why you want a Result type, how and when to use it, what map and flatMap bring you for Result, and why you might not need it in the future.
Daniel Steinberg , Dim Sum Thinking
Daniel is the author of more than a dozen books including 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). He has written apps for the iPhone and the iPad since the SDKs first appeared and has written programs for the Mac all the way back to System 7. Daniel presents iPhone, Cocoa, and Swift training and consults through his company Dim Sum Thinking. 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 friends.
Code formatter is one of the most important tool to write a beautiful Swift code. If you are working with the team, 'code consistency' is always a problem, and your team's guideline and code review can probably ease a little. Since Xcode doesn't fully fix our problems, now it's a time to make our own automatic style-rule! In this talk, we will look into how Swift language forms a formal grammar and AST, how it can be parsed, and we will see the power of SwiftSyntax and it's structured editing that everyone can practice.
What it is, and what it isn’t. He’ll define a language that we can use to discuss abstraction, and we’ll step through the process of building one. How do we build an abstraction from code that isn’t abstract? What qualities are we looking for in our abstractions? How do we make good code out of bad?
Soroush Khanlou , khanlou.com
Soroush Khanlou is a New York-based iOS developer. He blogs about programming at khanlou.com, mostly about making view controllers really short. He wants to make writing apps easier with an open-source framework he made called Instant Cocoa. In his free time, he runs, bakes bread and pastries, and collects suitcases.
Auto Layout is the most powerful tool on iOS today, to support developers in creating adaptive user interfaces on iOS. The power of this great technology lies in how simple its foundations are. The engineers behind Auto Layout at Apple started to reveal more of the internals of their technology recently, to help us understand its principles better, in order to get the best performance out of our layout code.Let’s look more closely at how the Auto Layout engine solves constraints through exploring the Cassowary algorithm, that’s running under the hood, turning constraints into linear equations, and solving them. By doing the math ourselves, we’ll have a better understanding of what layouts are easier, or more difficult to satisfy. What coding practices can help us achieve best Auto Layout performance.
Agnes Vasarhelyi , plangrid.com
Agnes is a Hungarian iOS developer living in San Francisco, hard at work bringing the high tech revolution to the construction industry at PlanGrid. Occasional tech blogger and event organizer, preferably outside hiking the mountains of California in her free time.
Agnes has worked at several startups before PlanGrid, like Prezi, and Topology Eyewear, helping them build great user experiences. She’s all about Auto Layout, and lldb these days, or whatever comes her way worth diving deep into. 🤓
What do Uber, Facebook, and Airbnb all have in common?They use the Buck build system to manage millions of lines of code, across hundreds of iOS engineers, building many iOS apps.In this talk, Steven will share how Buck can make builds faster (smartly optimizing build hierarchies), consistent (hermetic build descriptions), and efficient (caching everything on the server except what code has changed locally).
Steven Hepting , airbnb.com
Steven Hepting is an iOS Engineer at Airbnb where he works on build systems, continuous integration, and optimizing the mobile app. Previously he did iOS work at Twitter and Microsoft for the TwitterKit SDK and the Yammer iOS app.
Originally from the frigid wasteland of the Canadian praries, he now lives in sunny foggy San Francisco with his wife and two children. He loves jogging (slowly, with a stroller), eating burritos, and tinkering with microcontrollers when he's not at work.
'If I don't have control over my environment dependencies, how can I test all edge cases?'End to end UITests are generally difficult to cover comprehensively. Complement your existing tests with localhost UI Tests. Kenneth Poon will share why and how you should write localhost UITest with just 4 simple steps.
Kenneth Poon , spgroup.com.sg
Kenneth works as a Principal Software Engineer at SPGroup. He is passionate about TDD and BDD. He likes to bring agile software practices into agile development space. He is also a prominent speaker at iOS Dev Scout, especially on iOS topics like Testing and IPA Code Injection. He enjoys running and playing the piano while not thinking about failed tests.
iOS Developers are often afraid of the filesystem partly because we’ve been raised in an era of short-lived processes, JSON-driven user interfaces, and always-on cellular data connections. I intend to show that using Foundation API, its easy to use the filesystem to power lightweight view controllers, animated tableview updates, interprocess communication, and syncing without resorting to heavyweight solutions like Core Data and Realm.
Jeffrey Bergier , mercari.com
Jeffrey is an iOS Developer at Mercari in Tokyo. At university he studied industrial design and he was a UX designer for 4 years. He taught himself iOS development during that time. He tries to bring his design background into the design of his apps as well as the structure of his code.
In this talk, Oscar will share what his experience has been in the transition from being an app developer to become an SDK developer at PSPDFKit: what it has taught him, the challenges he has faced, and how it made him a better engineer. He will outline some simple tips and tricks from the SDK developer perspective that can help any iOS developer, even if they’re not developing an SDK themselves.
Esteban will share how he and his team has improved the startup time for the iOS SoundCloud app. He will share the dozens of techniques they used and what worked best for them and what did not.
Esteban Torres , soundcloud.com
Core Clients Engineer @ SoundCloud; working as a liaison between the mobile clients and the backend services the Core Clients team @ SoundCloud helps both sides by developing tools, abstracting implementations and maintaining BFFs to help encapsulate bits of code from the org into smaller and more manageable parts.
There are many similarities between “designing user interfaces” and “designing code.” Both are a means of communication: A user interface needs to communicate the app’s functionality to the user, code needs to express what it does to other developers. As a consequence, code also needs to be well designed, and developers can learn a lot from designers in that respect. The goal of this talk is to give developers the tools in their hand to write better code that’s easy to read and understand.
Mischa Hildebrand , intive.com
Mischa has always been passionate about two things that don’t seem to have much in common: logic and creativity. He graduated in physics to discover the first and worked as a radio reporter for a couple of years to try out the latter. Later, he combined both his passions as an iOS developer and team lead at intive in Munich and then headed off to travel the world. Mischa tries to learn something new about Swift everyday and loves creating modular, adaptive user interfaces with Auto Layout. His favorite question: “Why?”
1. So what’s YOUR favorite concurrency primitive? by Omer 2. Leveraging the ObjcC runtime to create a debug view by Vincent 3. Swift Snowflake ID generator by Sasmito
Swift 4 introduced KeyPaths, a literal syntax that allow developers to reference a property, in order to evaluate it later. Their addition went quite under the radar, yet they bear a lot of power when it comes to making your code more declarative, like manipulating data with a SQL-like syntax.
Immutable models are the here, everyone understands their benefits and are actively promoting it. Swift is great for it. But are we correctly representing our data with it? In this talk Heng Hong will walk through simple but effective steps to use algebraic data types to accurately represent data and reduce code complexity.
1. So what’s YOUR favorite concurrency primitive? by Omer 2. Leveraging the ObjcC runtime to create a debug view by Vincent 3. Swift Snowflake ID generator by Sasmito
Sasmito Adibowo , sap.com
Sasmito has deep understanding in both iOS (Cocoa-touch) and macOS (Cocoa) software ecosystems – including design patterns, code practices, and human interface guidelines. He has good knowledge of graphics, custom controls, persistence, and multi-processing frameworks in these platforms which contributes to developing end-user applications with superior user experience.
1. So what’s YOUR favorite concurrency primitive? by Omer 2. Leveraging the ObjcC runtime to create a debug view by Vincent 3. Swift Snowflake ID generator by Sasmito
Christian has developed numerous Augmented and Virtual Reality apps for Enterprise scenarios for example to visualize big data in 3D and make data tangible. In this talk Christian will develop during the talk an Augmented Reality game based on Apples ARKit. The scenario is based in a galaxy far, far away. During the talk he will also describe how Augmented Reality works today and what the current limitations are. He will finish the talk with an outlook of what he expects to happen in the industry in the next years and what we can expect from future Augmented Reality technologies.
Priscilla Nu , spgroup.com.sg
Priscilla is a Data-Driven Experience Designer, Design Leader and Coach. As the Head of Design in SP Group, Priscilla works with internal teams to create products that satisfy users and drive business goals. She coaches internal teams to answer two important questions – 'Why should we build this?' and 'How would this affect our users, business and the nation?' SP Design uses Lean Startup methodology to develop products in EnergyTech, guided by an overarching purpose towards sustainability.