Sponsored Link
Build internal tools 10x faster with Retool
Stay focused on building iOS apps instead of spending hours creating custom tools that only internal business teams will use. Easily create dashboards, admin panels, CRUD apps, and other internal tools with Retool. Just drag and drop to connect any database or API, only adding code when you need custom logic. It’s the ideal way to stay focused on customer-facing mobile development.
News
Technotes
Apple Technotes have a rich history of being some of the most valuable documents on the old (now archived) documentation site, but no new ones (that I know of) have arrived recently. Until now! This new page lists both fresh new notes and newly updated versions of old ones.
I’m delighted these came back, but it made me wonder when something should be a technote over being “standard” documentation. From an outsiders perspective, I’m not sure it’s clear where the line lies. I can see an argument to make a technote for solutions to specific problems. For example, TN3110 might feel out of place in the general Bluetooth documentation. But what makes TN3115 fit a technote rather than an article inside the Core Bluetooth documentation?
I’ll add one final positive note before I stop. I’m so happy to see these documents include a revision history! It’s so important to know how long it has been since someone reviewed or updated documentation. Bravo!
Adapting ahead of regulation
I said I didn't want to talk more on this subject this week, but I feel like I must link to this post from Brad Smith of Microsoft.
Tools
Profiling binary size on iOS using Bloaty
Am I really going to link to an article that recommends using a tool called Bloaty McBloatface? It appears that I am! 😬 Am I linking to it because of its name? 😅You can be the judge of that. 😂 Thanks to Joshua Haberman for the tool and Mohammad Asif for sharing it!
Fixing SwiftUI’s Automatic Preview Updating Paused
I love this idea from Marina Gornostaeva for avoiding wear and tear on your ⌘, ⌥, and P keys. 😅 Want to know how to trigger an automatic refresh when your code successfully compiles? Read this!
Code
Your calendrical fallacy is thinking…
What an excellent site from Dave DeLong highlighting some (I'm not naive enough to say "all" 😂) of the edge cases that you'll only ever learn about if you're trying to write an app that deals with dates or times. Which is ... most apps. 😅 It also pointed me towards this document on ICU System Time Zones, which I also had no idea existed!
By the way, I know this isn't a new site, but I hadn't come across it before until I saw a tweet thread where someone had echoed each rule from the site word for word. I won't link to the tweet thread since it didn't credit the site, which isn't great.
Theming Apps on iOS is Hard
Allowing people to pick different themes in your app is a popular feature, but other than light/dark mode, iOS provides no direct support to help you implement it. How does Christian Selig do it, and what are his wishes for APIs that Apple could create to make it easier? Read on to find out!
Three surprises when using Markdown with SwiftUI
Are you using iOS 15's new Markdown support? These three tidbits of information from Marco Eidinger will come in handy if you are or plan to in the future. I had no idea Apple's implementation used the popular cmark package? That's great to see!
Up to Speed
100 Days of SwiftUI
I rarely link to something multiple times, but I'll make an exception for this re-launch of Paul Hudson's excellent (and still free!) 100 days course. The fundamentals are the same. The best way to learn is with a small amount of practice every day, but things had become a little outdated since it debuted in 2019. So, Paul has been working on a new version, and here it is! There has never been a better time to start getting up to speed with SwiftUI.
Jobs
iOS developer @ Bontouch – Bontouch is an award-winning product innovation agency. We have a simple but ambitious idea: to make the world’s greatest apps for the best brands on the planet. Join us and work with fun and passionate coworkers creating world-class digital experiences for million of users. Come and join us! – On-site (Sweden) with some remote work (within European timezones)
Founding iOS Developer @ Tally – We're building an app that captures and saves the sound of human voices to learn about and connect to the people in our lives in a fun, game-like way. We're looking for someone who crafts native consumer iOS apps worthy of an Apple Design Award and who wants to build something wonderful. Interested? – Remote (within US or European timezones)
Senior iOS Developer @ Komoot – Touching all parts of the iOS app, your work will make outdoor adventures easily accessible to our users. You’ll develop diverse features for navigation, routing, social interaction and content visualization that will make your work challenging and fun. – Remote (within European timezones)
Senior Swift Engineer @ Toggl – We have been a fully remote company since 2014 and have worked in a Results-Only-Work-Environment (ROWE) for the past couple of years. We have a set of core values which we live and work by. Ownership and Freedom are two of them. We encourage these values in all our employees. – Remote (within US, European, or Asia-Pacific timezones)
iOS Developer @ Doximity – Doximity, the medical network used by over 80% of US clinicians, is hiring passionate iOS engineers (remote). You'll 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 growing telemedicine feature. – Remote (within US timezones)
Senior iOS Developer @ Chariot Solutions – Consider joining the Chariot Solutions team. Remote eligible. Great benefits, employee-first culture. – Remote (within US timezones)
Mobile Full Stack Engineer @ Expensify – Join our passionate team of top-notch engineers to solve a real-world problem, and help people spend less time managing expenses and more time pursuing their real goals. – Remote (Anywhere) with some on-site work (Australia, United Kingdom, or United States in CA, MI, NY, or OR)
Lead iOS Engineer @ Ramp – Are you interested in taking one of the fastest growing startups mobile for the very first time? We are looking for a lead engineer to lead a completely greenfield iOS build out for us. This would involve full architecture of the app along with building the team under you to spearhead this effort. – Remote (within US timezones)
Senior iOS Developer @ AbleTo – We want you to show up and feel your best at work. We respect your time outside of work. Our inclusive, flexible workspace prioritizes a work/life balance. We offer competitive salaries, health benefits, 401K matching, fully funded HRA, generous time off, and mental health days. – Remote (within US timezones)
iOS Developer @ onX – onX is a pioneer in digital outdoor navigation. We bring our outdoor passion to work every day with a singular goal–to awaken the adventurer in everyone. We do this by engineering industry-leading technology, and by crafting dynamic outdoor experiences. – Remote (within US timezones)
Principal iOS Developer @ Bellum AI – Bellum is part corporate venture studio, part in-house R&D. We are working on two mobile products focused on gamification. We are a fully-remote team that you will be joining on Day 0 with the opportunity to build products from the ground up. – Remote (within US timezones)
iOS SDK Developer @ Stream – You will write and maintain our open-source SDKs that are used by hundreds of our customers and consumed by hundreds of millions of their users. – Remote (within US timezones)
iOS Developer @ Crossway – Crossway is a not-for-profit Christian ministry and exists solely for the purpose of proclaiming the gospel through publishing and other means. Join Crossway as a remote iOS Developer to work on the ESV Bible app and other exciting projects! – Remote (within US timezones)
Are you looking for a new challenge at work? Check out iOS Dev Jobs for even more opportunities, and download the native iOS and macOS apps for daily notifications when companies post new opportunities.
And finally...
Why bother fixing your compiler errors when you can do this instead? 😂
Comment
I want to write about something less controversial today after all the responses to last week’s comment. 🤕 Although, I must have had some level of balance as people accused me of being both too kind and too harsh to Apple. 😂 Most people thought I was being too lenient towards Apple, though, and I don’t mean to be flippant. I understand that many of you are angry and disappointed.
So, I thought I’d take this week’s comment to tell you about a fun new feature we just added to the Swift Package Index. 🚀
I’ve talked about the build system before. It’s a massive part of the package index, but it’s hidden away out of sight. People are often quite surprised that the compatibility matrix on every package page comes from a real-world compilation of up to 36 builds every time a change to the default branch or a new release appears. At the time of writing, we’ve processed ~3,000 builds in the last 24 hours and almost 40,000 in the past month. It works hard. 😅
So what’s the new feature? We just launched a new page, partly as a troubleshooting page for us, but also as a curiosity for anyone interested (yes, this is you!). You can take a live look at the most recent 200 builds that the system is processing. We hope you find it interesting and that it shows off a little of what’s going on behind the scenes! 🤖
While we’re on the subject of real-world compatibility, did you know that you can use our build system to give potential users of your packages always up-to-date compatibility information about what platforms and Swift versions you support? We launched shields.io badges a while ago, but the details were at the bottom of a rather long blog post, so you may have missed them! If you maintain a Swift package, you can show your potential users always up-to-date compatibility information. There’s information on how in the green callout on this page. 🚀
Dave Verwer