FrenchKit Conference: Day 2 Highlights
Yesterday, I shared my highlights on FrenchKit Conference 2019, Day 1. Today, I will talk about FrenchKit Day 2.
Swift Superpowers
Swift Superpowers were three lightning talks presented by David Bonnet, mostly focused on server-side Swift, and spread out during the day. He covered the following topics:
- Vapor 3 code examples
- Networking example with SwiftNIO and the new cross-platform URLSession client (you need to import
FoundationNetworking
on Linux) - Debug of Vapor apps in Xcode and cross-platform testing using XCTest and Docker
Like the day before, those lightning talks were great and refreshing.
Swift Generics: It isn’t supposed to hurt
Rob Napier explained how to incrementally refactor your code using generics to make it more flexible and avoid repeating the same patterns.
The talk was interesting and condensed, and was followed by an even more content-packed masterclass at the end of the day. The topic is fascinating, but the masterclass format does not do it justice. It is very hard to keep your focus for 90 minutes on hardcore generics code refactors.
The takeaway, as always, is to start with concrete code first and then work out the generics.
Note encryption: 10 lines for encryption, 1500 lines for key management
Next was a mind-blowing talk on cryptography by Anastasiia Voitova. She knows here topic and the story of how her company Cossack Labs helped implement end-to-end encryption in the Bear note taking app was very enlightening.
SwiftPM’s New Resolver: Can it Resolve the Conflicts in my Relationship?
I quite like Mert Buran talk. He managed to make a dry topic, Swift Package topic resolution, interesting.
And Mert talk was the most funny of the conference, with example of conflict resolution in his rock band.
Finally, my takeaway is that Swift Package Manager is a nice piece of Open Source code that you can read and learn from.
This is not rocket (data) science
It was another great talk. Hervé Beranger covered all the concrete use cases of AI that you can add today in your iOS applications:
- Voice Interfaces
- Translations
- Semantic search
- Sentiment analysis
- Suggested related searches
- Smart replies
- Home-made text classifiers
He gave a lot of examples, with the Apple API you can use to implement them.
An introduction to property-based testing
I was happy to see a talk on property-based testing. At ProcessOne, we have worked with Quviq to use Erlang Quickcheck on our code base. I have been passionate about Property based testing.
Vincent Pradeilles did a good job presenting Property-based testing and explaining how you can use it as an addition to more traditional testing methods.
Swift has quite a nice implementation of Quickcheck, called SwiftCheck. You should give it a try.
Vincent also mentioned lightweight alternative to help testing with random data, such as using faker library to generate random data, using a fuzzy testing approach.
Shipping a Catalyst app: The Good, the Bad and the Ugly
This was a nice talk by Peter Steinberger sharing his feedback on Catalyst. Catalyst is a framework to port UIKit based iPadOS based apps to macOS. He shared the trick they had to use to make their PDFViewer app feel more native on macOS using Catalyst.
For example, Peter was forced to bridge to AppKit for some features like:
- Toolbar with toolbar editor
- NSSearch
- NSCursor changes (MacSupport bundle)
- Open Recent menu support (particularly painful to implement as Catalyst Apps are sandboxed, like all Mac AppStore apps)
And that’s a wrap
The final talk was from Olivier Halligon and was one of my favorite. He managed to explain why and how to use property wrappers in Swift. Property wrappers were added in Swift 5.1 and it is my favorite new feature. If you use it with a clear purpose, it can really help improve your code.
You can check his slides: And that’s a Wrap!
Make sure to check the last tip on how to use property wrappers to avoid implement JSON Codable
manually for your struct just to handle properly the date format. This is a tip I expect to reuse often.
Conclusion
Overall, the FrenchKit Conference was really great. It was a well organised event packed with great talks.
If you could not attend, you can always catch up with the talks on video when they get released.