Notes from FrenchKit 2022
Previous editions: 2019 · 2018 · 2017
🌟 The talks I recommend
any Idea How to Use some Generics? — Antoine van der Lee
Dive into the difference between some
vs any
and how they can replace older
forms of expressing constraints on generics.
Note the choice of case in the title. 🤣
— 📺 Watch
Building Custom Property Wrappers for SwiftUI (and how to test them) — Donny Wals
Implements a fetching data property wrapper for SwiftUI.
Donny is quite interesting because, year after year, he focuses on predicting what Apple plans for the future as opposed to investing in 3rd-party libraries or frameworks.
For instance, he seems genuinely convinced that, for Apple people, data fetchers belong to views — following Apple’s own APIs — and that Combine and Core Data are just as relevant in 2022 as they always were.
— 📺 Watch
Masterclass: Hacking iOS Apps - and trying to prevent it — Elliot Schrock
This talk provided a lot of valuable insights. Using a jailbroken iPhone, Elliot went backwards from the demo to the theory of hacking, highlighting how to control the app from the CLI. Elliot also mentioned this funny analogy about security:
🏃 🐻 If you’re being chased by a bear, you must run faster than the slowest guy.
Tools mentioned:
cycript
(pronounced ssssscript apparently);- Hopper (disassembler);
- Clutch (executable dumper);
- ipainstaller.
Swift Quiz — Vincent Pradeilles
Three questions:
- ✅ Retaining cycles. I got this one right.
- ❌ Mutating function on a
struct
with alet
property. You can reassignself
. I got it wrong. - ❌ Empty enums. Does the Swift compiler accept a function that has a
signature that returns something but actually has an empty body, when the
argument is an empty enum (which cannot be instantiated)? It does. I got it
wrong too. But it explains why the signature of
fatalError
isNever
.
— 📺 Watch
🔥 Hot Takes
I am so bad at socializing during conferences. My interactions with other human beings at FrenchKit consisted primarily of asking questions during Q&A sessions, but it was hard for me to go beyond that. I tried to attend an event on the Thursday evening. But a bar packed with 200 people, 95% of which are nerdy dorks like myself — now quite younger — is not an environment I can thrive in. I am taller and deafer than the average person so that would translate into me bending over groups of people, pretending I can hear what is being said. Not quite fun.
Next time, I will try to attend NSSpain. It was the last edition of FrenchKit per say. The hosts are willing to expand to other technologies — which will be appreciated after the dot conferences disappeared after being bought by Welcome to the Jungle.
I will build next features at work for iOS 14 users. Today, we support iOS 12. Looking at iosref’s iOS version by device table, I realized that bumping straight to iOS 14 will leave aside some devices stuck with iOS 12. But no device is stuck with iOS 13 — or iOS 14 for that matter. So, at the end of the day, iOS 14 sounds like a sweet spot to be able to benefit both from async/await and a decent version of SwiftUI.
I should give things a second chance. I’m talking about you jailbreaking phones — to put myself in hackers shoes — and UI testing.
🪣 The rest of my notes
Here I share raw notes from the other talks cause… why not?
Beyond Code: Skills for Impactful Development That Makes a Difference — Maxim Cramer
How to make impact beyond code? Mostly about communication. 🦒 The image of the giraffe in a park that every can sort of picture vs feature descriptions. We share very little of our knowledge when we communicate. Shocking fact: 2% of funding is for female founders.
— 📺 Watch
I 💕 Swift Concurrency — Tunde Adegoroye
Concurrency, async let
, tasks and tasks groups, actors.
— 📺 Watch
How not to develop an “Umm” detector using Create ML — Yono Mittlefehldt
Um detector. Not really about code but about the thought process. Some tools mentioned worth bookmarking:
— 📺 Watch
Documenting your project with DocC — Simon Støvring
Wrap up around DocC by the author of the Runestone text editor.
I started using DocC with my Blocks project, but I didn’t know about tutorials with DocC.
— 📺 Watch
SwiftUI at Scale — Thomas Ricouard
The point was that SwiftUI is production ready. And apparently, it’s tied to the iOS version running the phone so it doesn’t make sense to use SwiftUI before iOS 14. I guess this means that SwiftUI in iOS 13 is broken.
— 📺 Watch
SwiftUI Navigation — Luis Ascorbe
Should we use SwiftUI or UIKit for navigation? It depends. He recommended the following:
- NavigationStack.
- Brandon Williams: SwiftUI Navigation & URL Routing.
- Taking a look at The Composable Architecture aka TCA which sounds like a good idea.
- Composable Architecture at Scale by Krzysztof Zablocki
— 📺 Watch
From source code to executable: a day in the life of a Build System — Samuel Giddinis
Why do we need build systems and the complexity behind them. Some notes:
- Swiftlint has a Makefile;
- Bazel is great for large monorepos but require a significant investment and care
GitHub - segiddins/Bazel-iOS-Workshop: AppBuilders 2022 workshop on building an iOS app with Bazel
— 📺 Watch
Migrating your legacy code to local SPM packages — Zouhair Mahieddine
This title describes exactly the content of the talk. 😆
— 📺 Watch
Testing for Accessibility — Robin Kanatzar
A reminder that the accessibility tool is good. Robin recommended the following tool:
— 📺 Watch
Cloud Functions to the rescue — Zamzam Farzamipooya
The talk focuses on Firebase/Google. That’s kind of a non starter for my tastes.
It reminded me of stuff I did for Flâneur and why I didn’t like Firebase: data access boundaries are fragile and require significant effort.
— 📺 Watch
From App to Game Development — Michel-André Chirita
Interesting. The game is: Versus Arena
It made me want to develop a Backgammon game again.
— 📺 Watch
The journey of Widgets begins with one step — Audrey Sobgou-Zebaze
How to start implementing widgets with WidgetKit.
— 📺 Watch