Sponsored Link
Scaleway, the cloud platform designed for developers
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!
News
Apple "surprised" by developer frustration...
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. š
Tools
āHextEdit
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.
Xcode Tips
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.
Code
What thread should your code run on?
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. š
Inspecting SwiftUI views
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.
How to show and hide content with DisclosureGroup
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.
Discoverable Key Commands
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.
Up to Speed
Quick guide to using Core Data with SwiftUI
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.
Jobs
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.
And finally...
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ā¦
ššššš¬ššš
Comment
Itās not only a milestone for OS X/macOS this week. Here we are at Issue 500!
It was almost ten years ago, but I can recall pressing send on Issue 1 quite vividly. I remember at first being surprised by and then immediately loving the Mailchimp 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!
So, what comes next?
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