Notes from FrenchKit 2018

FrenchKit 2018 was awesome. I recommend it again to any iOS/Swift developer around. Day 1 was much better than Day 2. Two recurring topics were:

Most speakers seemed to use Deckset for their presentations. As often, international speakers were much much better than French ones.

Here are the talks I recommend.

brew create - Max Howell

Storytelling of how Max came to create Homebrew and how he managed its huge success. It’s surprising he had such a product-oriented approach for such a tech product. The whole talk was really nicely put (very minimalist use of slides and a great video of the git activity to give a visual feeling to the growing popularity of Brew).

Two segments particularly stood out to me:

📺 Watch

Going Prod with Server-Side Swift - Pim Stolk

How an ING side-project (Banking of Things) is using server-side Swift. They picked Kitura over Vapor because they had a good vibe from the team and they seem to work very closely together. They had tips to use containers to be as cloud-provider agnostic as possible.

📺 Watch

Sharing Swift: writing code that scales - Florent Pillet

This was a good counterpart to Pim’s talk. Florent is French and is using Vapor server-side. He’s really a big fan of SwiftNIO and its performances. One of his tip was to make builds in containers locally so you can just deploy binaries to production containers (no need for Swift compilers). He seems to have insights straight from Apple saying that SPM is not coming to iOS anytime soon.

Both Florent & Pim consider server-side Swift is production ready. Kitura & Vapor both provide Prometheus support which seems to be good enough for monitoring. One of the main pain point remaining seems to be debugging from Linux.

📺 Watch

The Lost Art of System Design - John Sundell

John is as a good showman and as energetic as reading his blog lets you think. The talk was about how to answer “where should we sit this piece of code?”. He was advocating towards decoupling, building frameworks, keys & lock-in to different parts of an application. Great practical tips that were somewhat Swift-related but can be applied to any language as well.

For instance: RootFactory creating basic objects and a LoggedFactory creating objects once the user is logged in which translates that we’re sure we can provide a User and that we don’t need to make it optional, etc.

Swift Strings Seven Ways - Mattt

A storytelling kind of talk about how we take strings for granted and we think they’re simple but they’re not. The guy is a big name in the iOS scene — among others, creator of NSHipster —, and it was surprising to see a talk that was sometimes borderline spiritual (he digs the Cherokee language a lot).

But the 2nd half was way more practical about string jargons, struggles, and tips on how to process them safely (ie override string by other types for identifiers for instance in order to hide the complexity of string for a simple usage, use Base64 for exchanging in a safe way, etc.)

The 700 next devices - Chris Eidhof

Again, a big figure in iOS development since he started objc.io. He gave a live-coding presentation of a layout library he build for Swift that is going to be introduced in Swift Talks. The library is really useful and has a nice API and seems somewhat influenced by flex box as a complement to AutoLayout. It will be even more useful once UIKit gets on macOS. Tip: when using the Accessibility inspector during development, the simulator seems super responsive.

The Underestimated Power of KeyPaths - Vincent Pradeilles

Lightning talk about how to use key paths to improve Swift convenience, in particular to avoid dumb closures.

Improving your Developer Experience with Open-Source Swift - Dimitri Dupuis-Latour

Interesting short talk to make contributing to Swift and its environment not as scary as it seems. Empowering mode ✊.