Not Only Swift

By Peter Friese

Make It So ✔ - Not Only Swift Weekly - Issue #9





Subscribe to our newsletter

By subscribing, you agree with Revue’s Terms of Service and Privacy Policy and understand that Not Only Swift will receive your email address.

Peter Friese
Peter Friese
Hello everyone!
This week, I’ve got a couple of exciting posts for you: Apple has made async/await available for iOS version 13 and up, the first M1 Pro/Max MacBooks have been sighted in the wild (and people are raving about their performance), the Firebase team is shipping more content in the ramp down to Firebase Summit, and - I’ve started working on a new content series about SwiftUI and Firebase!
As always, I am keen to hear your feedback, so if you’ve got anything you’d like to share with me, just hit that reply button and let me know! Don’t be shy - I love hearing from you!
Thanks for reading,
P.S. if you’d like to say thanks beyond subscribing or sharing this newsletter with a friend, you can now send me a coffee through the internet.

What I am working on
This week, I started working on a complete rewrite of MakeItSo, a replica of Apple’s Reminder app. 
Peter Friese 🥑
Follow along as I replicate Apple's Reminder app using SwiftUI 3 and Firebase! /1
The idea of this app is to explore if it is possible to write an entire app entirely in SwiftUI and Firebase. As I work on the implementation, you can follow along on this Twitter thread, where I will post any interesting bugs and issues I run into. And each week in this newsletter I will focus on one topic and write about it in more detail than is possible in a tweet.
The source code for the app will be available in this GitHub repository, and once I finish the implementation, I will run a video series on the Firebase channel on YouTube to walk you through the entire process of designing and implementing the app, including discussions about the individual SwiftUI and Firebase features.
So - follow along on Twitter, this newsletter, the GitHub repo, or the Firebase YouTube channel (or all of them)!
Swift - async/await
The Swift team has outdone themselves and shipped support for back-deployment of Swift Concurrency (i.e. async/await, actors, global actors, structured concurrency, and the task API) for apps that run on macOS 10.15, iOS 13, tvOS 13, and watchOS 6 or newer. This is available in Xcode 13.2 (see the release notes).
This means there are no more excuses for not getting your feet wet with this new way of writing asynchronous code. If you’re just getting started, check out my quick guide to all the relevant WWDC sessions: 
Peter Friese 🥑
With all the information Apple shared about async/await and structured concurrency at #wwdc21, it easy to get lost. So here is a quick guide to get you started. /1
The development team is looking for feedback - so give this a try, and let them know if you run into any issues. Here’s Doug Gregor with more details:
Doug Gregor
Please try this out and file bugs, then tag us on Twitter with Feedback numbers or SR numbers. It’s an enormously complicated feature to back-deploy and there may yet be issues we didn’t uncover.
On a related note, if you’ve got excited about AsyncImage when you first saw it in Apple’s What’s New in SwiftUI WWDC session, but then were disappointed to discover it doesn’t actually cache images, fret not, @pitt500 has you covered. In this video, he recreates AsyncImage, but with a proper cache. Great work, I’ll definitely use this in my apps!
A better AsyncImage with cache in SwiftUI
A better AsyncImage with cache in SwiftUI
Another issue you will run into when building SwiftUI application is supporting different colours for dark mode and light mode. Now, you can definitely define colour assets for different colour schemes in the asset catalog for your app, but what if you want to specify a colour programmatically? Antoine has a nice custom operator which makes this super easy and really straightforward:
Firebase 🔥
Firebase Summit is taking place on November 10th, and you can still register online
For each week, we’ve put together a pathway that focuses on a particular feature or product area, and this week is all about engaging users with Firebase. Check out the pathway here, or jump directly to the article my colleague Charlotte Lang from the Firebase Messaging team and I wrote about getting better insight into push notification delivery!
Oh, and also - next week is community week, with some great contributions from across the Firebase community - stay tuned!
If you want to stay on top of all the cool new features we’re launching all of the time, there is no better place than Firebase Release Notes by none other than Frank van Puffelen (or just Puf). This week, we celebrated the one year anniversary of the show, and you get the gifts! To find out how to win a Firebase T-shirt, watch this episode:
Firebase Release Notes October ‘21: Flutter Realtime Database on Web, FCM, and t-shirt give-away!
Firebase Release Notes October ‘21: Flutter Realtime Database on Web, FCM, and t-shirt give-away!
The new M1 Pro/Max MacBooks have started shipping, and people all over the internet shared their first impressions - and ran some benchmarks.
Paul Stamatiou posted the only benchmark that matters: extracting Xcode!
Paul Stamatiou
The only benchmark that matters: Extracting Xcode_13.1.xip

2019 8-core Intel i9 16" MBP: 9m 34s
2021 10-core ASi M1 Max 16" MBP: 4m 43s
Now, once you get a new machine, you’ll have to transfer all of your data. Seems like a straightforward thing to do, no? Mikaela asked how people transfer their files, and the replies offer a nice insight into how people organise their files. Well worth a read, you might get some inspiration:
Mikaela Caron 🦄
Because all y’all are getting a new laptop, what/how do you transfer files?
How do you back everything up currently and move it to your new computer?

Any special files/precautions that need to be taken as an iOS dev?
If you didn’t get a new machine, you might be able to improve the performance of the iOS Simulator nonetheless. Curtis Herbert points us to a thread on the Apple forums that suggests turning off Spotlight on the Simulator might help make Xcode feel less sluggish:
Curtis Herbert
Ha, I _thought_ something was up. Looks like Xcode 13 has a problem with the simulators causing spotlight to go crazy.

If Xcode has felt sluggish for you, try this. Cheaper than buying an M1 pro!
Design Resources
Apple have shipped updated design resources for iOS 15, including SF Symbols 3. Check out their design resources page:
Apple Design Resources - Apple Developer
Roman Nurik has cooked up a tool for creating icons for any platform. This runs on the web, so no need to download and install an app. Check it out here: 
IconKitchen - Cook up app icons for any platform! | Product Hunt
And here is yet another tool for creating beautiful device mock-ups. What’s really cool about this one: you can add several devices to the same scene, and freely arrange them. Pretty powerful, and runs in the browser as well:
Device Frames - Customizable 3D devices for your presentations All Online | Product Hunt
Business Movers by Lindsay Graham is another fantastic podcast series that explores the triumphs, failures, and ideas of well-known companies and founders such as Disney, Steve Jobs, Starbucks, DeLorean, and more. Really well narrated and gripping, this is an insta-listen for me once a new episode drops.
And finally
I’ve owned Magic Keyboards, a Magic Trackpad, and Magic Mice for several years now, but this never occurred to me - you?
Marius Constantinescu
It just hit me now that the on/off switch on Apple’s Magic Keyboard or Trackpad is basically a real world UISwitch 😅
(Shot with @halidecamera’s new Macro Mode on iPhone 11)
Did you enjoy this issue? Yes No
Peter Friese
Peter Friese @peterfriese

Xcode tips & tricks, Swift, SwiftUI, Combine, Firebase, computing and internet history, and - of course - some fun stuff.

In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Created with Revue by Twitter.