Sponsored Link
Launch Scalable iOS Chat In Days With Stream
This tutorial shows how easy it is to use Stream’s scalable chat API & UI components to ship in-app chat in a fraction of the time. Start a free trial now and try out Stream's chat API, SDK and chat React Components. See why Stream powers the feeds and chat for over 500 million end-users.
News
How does your app fare if the App Store is down?
"But the App Store never goes down!" I hear you say. Well, it happened last week. Specifically, the verifyReceipt
API endpoint was unavailable for about 5 hours. It was so bad that the light even went yellow on the status page, which by all accounts means the world was about to end. 😂 Here's something else you should test for when implementing your IAP code, as if you didn't have enough to do already.
Tools
swift-doc
As Mattt says when talking about the motivation behind building this we've been very lucky to have Jazzy since the early days of Swift. That doesn't mean there's no room for another take on the problem though, which is what swift-doc
is. It outputs Markdown, which makes it ideal if you want to host your documentation as a GitHub Wiki.
Localization previews with SwiftUI
It's easy to forget that just because the default SwiftUI preview is just one view, you can easily add more. You can even generate them in a loop, or use something like Gala! In this article, Benoit Pasquier explores using them to preview localised content. 👍
Better logging with Emoji
Emojis make everything better, even debugging. 👾 I really like this idea from Tom Harrington.
Code
Enumerating elements in ForEach
Join Ole Begemann solving what looks like it should be an easily solved problem, but quickly turns into a journey through sequences, tuple protocol conformance, and key-path based dynamic member lookup... Oof. 😬
Swift’s closure capturing mechanics
While it’s common to hear over-simplified rules like “Always use weak references within closures”, writing well-performing and predictable apps and systems often requires a bit more nuanced thinking than that.
This is a really important area of Swift to really, thoroughly understand. Naturally, John Sundell does a great job explaining it.
Using CoreData with SwiftUI
My gut feeling still says that Apple may have a more SwiftUI friendly data persistence story for us at some point in the next couple of years, but until that happens we are where we are and Core Data is very much still a thing... Here's Toomas Vahter writing on how to make them play nicely together.
macOS Development
SwiftUI for Mac Extras
I linked to Sarah Reichelt's posts about her adventures with SwiftUI on macOS back in December. They're still very much worth reading now if you missed them back then. Also, this week saw her write a follow up with some extra tips.
Business and Marketing
Sign in with Apple
How many people choose Sign in with Apple, given the choice between that, some other social networks and creating an account manually with an email address? It's not a scientific experiment, but I liked this data from Ben Packard on his recent experiences.
Videos
Videos from iOS Conf Singapore 2020
A full set of conference videos from iOS Conf SG from just over a week ago. That's fast! I'm barely even over the jet lag. 😴
Re-creating Instagram in SwiftUI
Want to watch Dave DeLong re-create the Instagram UI in SwiftUI? Me too. 👍 Watch part 1, then part 2.
Jobs
Senior Mobile Engineer @ On the Beach – We are building the future of travel and we want you to be part of it. You will join our award-winning development team to build and maintain new products and features for On the Beach’s customer-facing website and back-office systems. You will be joining a team of skilled and experienced developers and becoming part of one of the UK's most progressive, talented and successful Mobile Teams! – Manchester UK
Is your company hiring? There are thousands of potential candidates reading this, just waiting to read about the opportunities your company has available. Head over at iOS Dev Jobs? Standard listings are free, so you've got nothing to lose! 👍
Comment
I started this newsletter almost 9 years ago primarily to spread the word about all of the wonderful writing that this community was doing. Promoting great content is still the main reason I spend so many hours each week reading everything I can get my hands on from you all.
Almost two years ago, I decided to open source my RSS subscriptions and build a directory of everyone I could find blogging about Swift and Apple platform development. That became the iOS Dev Directory and I subscribe to every feed on that site. It's been an enormous help to how I keep myself up to date. 👍
Last year I started having some thoughts about expanding what the directory does. I still firmly believe that manually curating articles for this newsletter will always be a valuable service to provide, and I'm not going to stop doing that. Still, I think there's room for an additional, more... firehose'y 😂 approach. I did a bit of market research, published the results, and made some plans.
I may have been slightly too late with my thoughts though, as several other projects have sprung up in the last week or two, all based on the data from the iOS Dev Directory - iOS Dev Blogs, Swift news, and Swift Blogs. None of these sites are precisely what I had planned, but they're certainly along the same lines.
Seeing so many projects spring up from the iOS Dev Directory is terrific, but it does seem like a bit of a shame that we've ended up with three sites that do almost the same thing, launching at almost the same time. I don't want to criticise these projects in any way, but part of me wonders what we could have done if we had all worked together on something. So, I'd like to close my comment this week by saying I don't bite! If you're thinking of doing something with any of the open-source data I've put together, consider getting in touch with me. Maybe we'll be able to collaborate, or I might put you in touch with someone else doing similar things, or perhaps I'll wish you good luck! My inbox is always open, just hit reply to any of these emails.
Dave Verwer