try! Swift NYC 2017


My notes from an amazing 2-day conference in NYC all about Swift!

Before reading, quick disclaimer: This post is more a place where I can go back and reference notes/thoughts about each talk. It isn’t meant to provide crazy insight to the world (sorry 😔). The reason I’m publishing it is so others can go and check out some of the talks, or look up these incredibly talented engineers on the Twitters. The incredible team behind the scenes at try! Swift are publishing videos of all the talks soon. I will update with links as soon as that happens.

Update: Now with links to videos!

But before getting into details on each talk…

One of the main reasons I am so fond of iOS development is the community. I love the spirit and feeling where everyone is learning Swift together. Yes, there are still many pain points, but there is an overall sense of positivity and desire to keep moving forward. I am extremely fortunate to work for a company willing to send me to New York to learn from a group of extremely intelligent engineers willing to share their experiences and knowledge on stage with hundreds of others.

Flexible View Controllers with Swift 4

@jamesdempsey | Watch the video

Great way to start a conference. I’ll get to the content of the talk in a second, but James is in a band! And it’s called James Dempsey and the Breakpoints. Get it? 😂 He opened with this and closed the conference with this. 👏

Interesting talk around using protocols to bring back some some of the advantages to having header files in Objective-C. This talk has some good design patterns that you can adapt in parts to your codebase. This would be a good talk to watch to if you have a lot of Objective-C experience and want to learn how to handle some of the Swift nuances in a way that makes you happy. 😄

He also showed some new Swift 4 magic, like conforming to multiple types (e.g. let someVC as? UIViewController & UIViewControllerProtocol). Neat stuff!

Ok, side note, when looking for slides on James’ Twitter, I found must watch.

Map and Flatmap Magic

@TeamNeem | Watch the video

Neem’s talk was all about the usage .map and .flatMap in Swift - lots of examples on how to make code more readable by functional programming techniques. Also, if you love cupcakes, you might want to check out this talk, or follow Neem. 😉 (wtf… there isn’t a cupcake emoji? 😮)

View-State Driven Applications

@cocoawithlove | Watch the video

Matt is the author of Cocoa with Love. He spoke about using models not just for your app’s data, but for all state. He demonstrated this with his clocks app. Instead of presenting different views and then updating models, the strategy he proposes is to update view models and have views react. He showed how this can be very helpful for implementing a very powerful undo functionality in your app. Pull down the clocks app repo and run it in Xcode - very cool.

Here are some slides I quickly snapped photos of:

Core Data Migrations. Can we do better?

@rajagp | Watch the video

  • Lightweight migrations for simple things like renaming a property.
  • Custom migrations for things like changing data type (e.g. Date -> String).
  • NoSQL solved migration issues that Core Data suffers from, but not “one size fits all”.
    • Onus is on the application side to deal with deprecated/modified data.
    • Couchbase Lite?

Improving Swift Tools with libSyntax

@harlanhaskins | Watch the video

Harlan is one smart dude. If interested in learning about how compliers work, check out this talk. Lots of good info. He is working on lib/Syntax, so lots of good info on that as well!

  • Syntax tree doesn’t keep everything – comments, braces, spaces, etc. are lost.
  • But… libSyntax keeps all of ☝️

How do compilers work?

A Funny Thing Happened On The Way To This Array @ericasadun | Watch the video

Erica’s talk was about unique ways of creating multiple UI elements in an array (UIViews, UIButtons, etc.). If you’re into design patterns, definitely check this one out. She’s does a great job at explaining how Swift can be very flexible by combining different features of the language. For even more design pattern fun, check out her latest book.

MVVM At Scale

@nataliya_bg | Watch the video

  • Motivation is making view controllers less complex.
  • Move business logic out of VC.
  • Code structure shouldn’t indicate what design pattern you are using.
  • View models injected by other view models.

Creating Rich Custom UI Notifications

@thedevme | Watch the video

Creating notifications with a rich UI goes a long way to engage users, and it’s all pretty simple. You can either add properties for photos, actions, etc. in the payload or make things a bit more custom with a custom view. Either way, this talk is all about the importance of UI with notifications in iOS 10 and above.

  • Betty White is awesome, Uber sucks (ok, maybe this wasn’t actually what he said… inside joke I suppose). 😄
  • Thread IDs are an easy way to keep notifications together of the same type. Very easy to implement. We should add this (👈 note to myself, sorry)

Putting the “Engineering” in “Engineering Management”

@skamille | Watch the video

Wow, amazing talk! This one you have to watch for yourself, especially if you’re an engineering manager or looking to get into leadership. Camille is a great speaker and has lots of valuable tips! Her book is now for sure on my reading list.

Swift Chatbots for Fun! And Profit?

@rmundo | Watch the video

  • Chatbots aren’t at the point they can have intelligent conversations, but can be used for 1 or 2 functions (like translations).
  • Natural language processing is still 2-3 years away.

Tanner Nelson: Swift on the Server with Vapor

@tanner0101 | Watch the video

Writing Swift on the server (with Vapor) looks like a lot of fun. The image below helps illustrate why you might want to write Swift on the server. Maybe it’s not the first choice for Java/Python/Ruby developers, but for those who already know Swift and want to do a bit more than what can be done with Firebase or CloudKit, Swift on the Server works perfectly for a simple API layer.

Shameless plug: there’s a course for it on LinkedIn Learning. 😉

Modern RxSwift Architecture

@KrunoslavZaher | Watch the video

Exploring Natural Language Processing

@PaolaNotPaola | Watch the video

I want to look into NSLinguisticTagger a bit more - looks really neat. Great if you have an app you want to provide some search functionality without hitting an API.

Everything updates automatically over the air with keyboards! 👍 Checkout the demo app.

Codable in Swift 4

@inamiy | Watch the video

Machine Ethics and Engineering Technologies

@pjf | Watch the video

  • How many people have to be inconvenienced for an autonomous car to kill someone? Answer is 8 million people – 1 in 8 million die in car accidents.
  • 40,000 fatalities a year with cars – 40,000 different people responsible. In the future, maybe 2,000 people will die, but one company responsible – companies may not want to take that risk.
  • 3.5 million truck drivers out of a job.
  • 8.7 million jobs when including truck driver related industries – hotels, truck stops, etc.
  • How do we handle technology replacing jobs? Education.
  • In 1830 average work week was 70 hours, today… 40 hours.
  • Humans should be involved at some point. Example: military drones need someone to press a button to engage. But, they are able to be jammed while waiting for approval so there is talk about removing that requirement. 🤔😮

Getting Started With ARKit

@glennersboofy | Watch the video

Building a Franework With Viper

@Sdhingra89 | Watch the video

  • Protocol oriented, testable, single responsibility principle, and reusable.
  • More testable than MVVM.

Error Handling Made Easy

@elenipapanikolo and kostaskremizas | Watch the video

Sodoku in Swift

@khanlou | Watch the video

This was a fun talk where Soroush solved a Sudoku puzzle in Swift while highlighting some of thew new Swift 4 features. I’m a huge fan of Soroush’s podcast, Fatal Error, so was fun putting a face to the voice.

Better Swift From the Foundation Up

@carlbrwn | Slides

Carl spoke about how to write better code by looking at closed issues from a variety of Swift frameworks and the parts of the compiler written in Swift. Here’s where bugs come from based on his research:

That’s it! In case you missed it, videos will be published of all the talks. I’ll update this to include links once they’re available. Thanks for reading. Feel free to leave any of your own thoughts (or questions? 🤔) by commenting below.

comments powered by Disqus