Newsletter of AppForce1 - Issue #30
Seems Revue had a glorious failure in the last couple of days. They requested me to resend my latest issue. So here goes.
Yes, I am still ok. A bit too busy over the last couple of weeks. Do iOS tickets all of a sudden went fast. And this week I traveled to Swift Leeds. KLM had a nice surprise in store for this trip. My flight back got canceled. Oops. You might have heard air travel is having huge issues this year. Schiphol, the Dutch national airport, has removed over 30% of its scheduled flights. And my flight back from Leeds was one of them. I am now flying back from Newcastle.
And I am in Newcastle airport as I type this email. I had a 90 minute train ride and a 30 minute taxi ride to get from Leeds to Newcastle airport. But, by the looks of things, my flight will depart on schedule in a little under an hour. Boarding starts in the next 20 minutes.
At Stream, we are preparing to release something big before the end of the year. So, hopefully, I can really dive into that publically soon. On the hardware front, I finally received that Model-100 keyboard I kept on talking about. And let me tell you, this thing is just amazing. I plan on writing a review of the keyboard sometime soon.
The video of my talk at 360iDev is now available too. And if you are still looking for training on aSync/Await, Daniel Steinberg will be in Amsterdam on November 7th. Please have a look at this. It is simply an amazing training. (No, there will not be additional Do iOS tickets.)
SwiftLeeds happened, and if you have a look at my twitter I posted a number of picture of the event and people I met. I am very thankful to Stream for allowing me to travel so much this year. SwiftLeeds was the last abroad conf for 2022 for me. Only Do iOS in Amsterdam remains. But, that's local. And I am organizing it myself. The response to Do iOS has been great. Next time I think I need to make it a bit bigger.
Thank you!
Jeroen
Sponsored by
Runway | Air traffic control for mobile releases — www.runway.team Runway is a release platform for iOS and Android apps. Put your releases on autopilot and keep the whole team in sync throughout.
Released Content
SwiftLeeds, ready or not... — www.buzzsprout.com
My latest podcast episode. Have a listen. All article links in this episode are in this newsletter too.
Async/Await Workshop by Daniel Steinberg — appforce1.net Async/Await Workshop by Daniel Steinberg
Video of my talk at 360iDev: Building a Vapor Swift backend integration with authentication and authorization — appforce1.net
The basics of setting up a Vapor Swift project and after that integrating with a third party service. Once that’t done, some form of authentication and authorization will be added.
Latest News Episode Links
How to add Keyboard Shortcuts in SwiftUI You can easily add keyboard shortcuts to Mac, iPhone, and iPad with the keyboardShortcut modifier.
Mastering NavigationStack in SwiftUI. NavigationPath — swiftwithmajid.com SwiftUI provides us with a brand new data-driven navigation API allowing us to map a value to a destination in the view hierarchy. This week I want to continue the story of the new navigation API in SwiftUI by covering another tool. We will learn how to use the NavigationPath type to build a navigation stack with different destinations.
Using the dismiss action from the SwiftUI environment Programmatically dismiss presentations and pop views from the navigation stack in both pure SwiftUI and hybrid UIKIt/SwiftUI apps with the help of the dismiss action.
SwiftUI View That Fits SwiftUI ViewThatFits makes it easier to build adaptive layouts.
Accordion in SwiftUI - DisclosureGroup Explorations Learn how to make the UI component called accordion in SwiftUI. Deep dive in all the DisclosureGroup initialisations in this iOS guide.
Apple’s use of Swift and SwiftUI in iOS 16 — blog.timac.org Your description for this link...
System Programming Interfaces (SPI) in Swift Explained System Programming Interfaces are declarations available only for certain clients. Experimental attribute @_spi (and others) in the Swift language
Memory management for async/await and tasks in Swift Learn to avoid retain cycles and using [weak self] references correctly when working with Swift's async/await API and tasks.
Developer guide on the iOS file system Learn how to work with files and directories when developing iOS applications. Find out how to read and write to the documents and the library directory by using FileManager in Swift.
Alternate App Icon Configuration in Xcode Alternate App Icons allow your users to customize the icon to fit their home screen. Learn how to change icons in Xcode and Swift.
Where View.task gets its main-actor isolation from If you call SwiftUI’s task
modifier inside a view’s body
property, the async operation will run on the main actor. However, this isn’t the case if you call task
from a helper property or function that isn’t main-actor-annotated. Why?