I wrote up a few things that I learned while setting up a simple CI/CD for an API written in Vapor 4 and dealing with data files. Swift-on-the-Server has some rough edges, but I find it utterly enjoyable.
- Tech Note: Vapor: Loading resources
- Tech Note: Vapor: Simple automatic deployment using Docker and GitLab CI
Do you use Apple Music or iTunes, enjoy listening to entire albums but struggle to find them in your library? Then join the beta of my upcoming app, Longplay. It’s quite pretty, too!
- Tech Note: Using Carthage in a Catalyst app
2025: Facebook lets you watch your favourite movie with a cast of your friends.
- Tech Note: iOS 13 toe-dipping: Multi-window support on iPad
WWDC is lovingly referred to as “Christmas for Apple Developers” and, goodness, was it a Bescherung this year! Apple has been hitting it out of the park at this year’s WWDC. While in the past many developers have been worried that their apps were getting replaced with Apple’s own new or improved apps (aka “Sherlocking”), a big surprise of this year is how many third-party libraries and tools now have first-party replacements1:
- Declarative views: CvlView → SwiftUI
- Building forms: Eureka → SwiftUI.Form, via @kuba_suder
- Reactive programming: RxSwift or ReactiveCocoa → Combine
- Reactive table/collection data sources: RxDataSources → diffable data sources
- Cryptography: CryptoSwift → CryptoKit
- Dependency management: Carthage → Swift Package Manager right in Xcode
- Icons with custom weights: PaintCode → SF Symbols
Granted, none of these are complete replacements2, and developers cannot rely on all those first-party replacements yet either (as most of them require iOS 13), so these third-party frameworks and tools still have reason to exist.
I am very excited about this. It’s not changing what you can do, but how you can do it. As Brent Simmons puts it nicely, it is the start of a new era, which is significant as the previous era has been going for close to thirty years.
It is great that Apple is modernising the frameworks and giving declarative and reactive programming the first-party treatment, learning from what both the Apple developer community and other platforms are doing. Having Apple throw their support behind these concept will likely accelerate and improve them further, too. SwiftUI in particular has tremendous potential — not just for Apple platforms. Might I dare ask how much effort would it be to generate an Android app from a SwiftUI code base? Though, unlike Swift itself, SwiftUI and Combine are not open source (yet?).
Developing for Apple in the 2020-ies will look much different than it does now. Exciting times and a lot to learn!
Kudos to Becky Hansmeyer for the timely reminder that this year will likely be the first year for many iOS developers that they will want to run macOS betas. Be prepared, backup and keep a stable install handy.