high five. I remember wondering if I had made any typos or got any links wrong.
I also remember feeling unqualified to send that first email. Who was I to think I could recommend articles from the community? I was an experienced iOS developer, but even so, I had no right to do that! I decided not to try and guess what others would find interesting or try to find “the best” articles, whatever that means! Instead, I chose to only link to things that I found interesting or valuable. If people agreed with me, the newsletter might work, and if they didn’t, I’d call it a failed experiment and move on. I don’t feel much more qualified to be a judge of articles today, but I still know what I find interesting, and I think after 500 issues, I’m ready to call it a successful experiment! 😂
If there’s anything to take away from this slightly self-indulgent opening comment, let it be that you shouldn’t be afraid to try new things. When I launched this newsletter, I didn’t have any grand plans for it to become a huge success, and I certainly didn’t start it with the intention of it generating money. It started because I enjoyed other technical newsletters in this style and wondered if I could do the same for iOS. If I had worried too much about whether it would be popular or successful, I’d never have pushed send that first time and wouldn’t be writing this today. It turns out that the best way to know if you’re “supposed” to be doing something is to… start doing it!
I do have something new to announce today! The newsletter will continue as usual, but you can also become an iOS Dev Weekly Insider.
Over the years, people have occasionally emailed asking if there was any way to pay for the newsletter. My reply has always been to say that just subscribing and reading is enough! That remains true, but if you asked me the same question today, I’d reply that becoming a Supporter would be for you.
But I wanted to offer more, so I’m trying something new. Become an Insider if you want a closer connection to the newsletter. I’ll be hosting weekly live audio discussions that take a more candid look at what’s happening in iOS development. We’ll typically start on the topic from my latest comment, but there will also be a chance to talk about the articles I linked to and the industry in general. I want these sessions to be live as I’m hoping they will be genuine discussions rather than a monologue, and I’d love to get to know the Insiders personally. The first chat will be early next week (scheduled via Patreon), and we’ll start by talking about the first story in this week’s news section around the App Store review process.
Finally, if you’d like my advice and guidance more directly, I now have a way to provide that on a One to One basis. I’ll get to know you and your app(s) and guide you on your trickiest product, design, and marketing challenges. The only thing to note here is that this is not coding support as there are far more qualified people for that side of things! These sessions are the first time I’ve offered consultancy outside big companies, and I’m excited to work with individuals or smaller companies.
All that said, I want to reiterate that I don’t want anyone to feel pressure to subscribe to any of these Patreon tiers. The newsletter remains free, and I have no plans to change that. However, if you would like to get an inside look or just say thank you for 500 issues, sign up to become an iOS Dev Weekly Insider today.
Dave Verwer
Scale flexibly with Scaleway’s public cloud ecosystem. Build your applications on Scaleway’s cost-effective IaaS and PaaS offering, from cloud instances to free, managed Kubernetes and Mac mini M1 machines in the Cloud. Deploy in a few clicks!
I wasn’t going to link to this article, but I found myself having something to say about it as I was about to delete it from my queue, so I decided to write them down! I don’t think it’s a worthwhile story, and it got way more attention than it deserved. Also, yes, I’m aware of the irony of linking to it after saying that! 😂
The quote was part of an official statement to a watchdog that has an ongoing investigation into Apple. If Apple planned to make any defence against this investigation, they had to say something along these lines. There’s no scandal here. It’s just a quote that makes sense in the context where it was delivered.
Are there problems with the App Store? Yes! Should Apple be looking to address the concerns of unhappy developers? Absolutely! But we shouldn’t be “surprised” that they don’t choose this venue to do it.
Also, oof… the hits keep on coming from this investigation. 😅
You won’t often need a hex editor these days, but it’s always good to have one around for when you do. I really like this new app from Finn Voorhees. First of all, it’s well designed and feels perfectly at home on Big Sur. Then, I gave it the test that I thought it might fail. I opened a ~12GB XIP file, and … it opened instantly and scrolled smoothly from end to end. 🚀 You should go and install this right now.
I’ve lost count of how many times I’ve linked to someone tweeting about some Xcode secret setting, keyboard shortcut, or piece of hidden UI in Xcode that I thought you’d find helpful. If only someone would put them all together into a curated, well-organised site. Hold on a minute… Jesse Squires just did exactly that, and it’s open-source? Thanks Jesse! He also wrote up some more details of the project here.
Here’s Brent Simmons with his approach to threading. What was a little surprising to me is that this isn’t already everyone’s approach to asynchronous code. Outside of networking, which should always be async, my approach is not to think about concurrency until absolutely necessary. One tip I did pick up from this is to scatter isMainThread
assertions everywhere. 👍 Brent also wrote some clarification on the benefits of this approach in this follow-up post.
On the same subject, I also enjoyed this post from Alex Grebenyuk, which covers the “until absolutely necessary.” part of what I said above. 👍
You may not have come across explicit uses of Mirror
before, but you use it implicitly all the time when debugging. I liked this article from Federico Zanetello that shows how to use it while building a custom SwiftUI picker control.
Apple has always preferred “navigation-based” disclosure over “in-place disclosure” on iOS, but that doesn’t mean designers and developers agreed with them. I can’t even estimate how many custom table view implementations with hacked together in-place disclosure I’ve seen over the years. SwiftUI brings a standard implementation withDisclosureGroup
, and Kristaps Grinbergs is here to teach us all about it.
Have you ever had a situation where you’ve implemented keyboard shortcuts in your iPad app, but they’re not showing in the overlay? Even if you haven’t, this post from Daniel Jalkut will teach you something as he explains how he tracked down the problem.
I know I said I was hoping for a persistence framework that felt more at home with SwiftUI a couple of weeks ago, but that doesn’t mean that what we have today won’t work! Want to get up to speed with Core Data in a SwiftUI project? Natascha Fadeeva has just what you need.
iOS Developer @ Atomic Robot – Atomic Robot works with some of the most exciting companies and brands to help them bring their innovative projects to life! We have a highly collaborative team that is focused on high quality engineering and continuous learning. – Remote
Humbly Confident Senior iOS Developer @ You Need A Budget (YNAB) – We strive to make working at YNAB a unique and fantastic experience (we’ve even been named Fortune’s #1 Best Small Company to Work For). We have a team full of truly exceptional people—the kind you’ll be excited to work with. We’re a software ecosystem that includes apps for web, iPhone, iPad, Apple Watch, and Android phones. We have some big plans for our iOS app, and that’s where you come in! – Remote
iOS Developer @ Doximity – Doximity, the medical network used by over 70% of US clinicians, is hiring passionate iOS engineers (full-time remote!). You’ll get to be part of an amazing product team and work on an app that is constantly evolving. Use your skills (Swift, MVVM, FRP) to be an integral part of our newly launched telemedicine feature. Apply today! – Remote within the US
Are you hiring? Get your open iOS development positions listed right here by posting a Featured Listing over at iOS Dev Jobs.
Let’s wrap this week up with a few stats from the last 500 issues. I’ll resume the usual “And finally…” service next week!
First, the obvious one. How many links? 6,989 “main” links, with an additional 5,249 in my comment or the summary text under each link. Surprisingly, in the first 100 issues, I only included 23 links in comments/summaries. In contrast, in the last 100 issues, there have been 2,560. 😱
How many words have I written? I’ll admit I was slightly disappointed when I counted the total across all issues, and it was a relatively meagre 428,582. I felt a little better when I saw the reading time as a solid 35 hours and 42 minutes. Who wants to read through from the start? You’ll finish before the end of Saturday! Enjoy! 😂
What about top domains? The top of the list is predictable, with github.com
taking the top spot with 703 links, followed by twitter.com
with 326, apple.com
with 265 and medium.com
with 262, and github.io
finishing the top 5 with 88. The list has a very long tail, though, with 65% of links being to domains I’ve never linked to before.
How about links in my comments and summaries? Again, predictable. Starting with 1,579 links to twitter.com
(that’s 30% of all links in summaries!), then github.com
with 466, apple.com
with 397, medium.com
with 72, youtube.com
with 62, and swift.org
coming in at 49.
But, I know what statistic you’ve all been anticipating most. Which emoji has been most popular over the 500 issues, and to answer that, I’ll sign off with…
😂👍🎉😀😬🚀😍😎