Sponsored Link
Stream Releases v4.0 of its iOS Chat SDK
Stream’s latest iOS Chat SDK release provides a better developer experience with new docs, customizable attachments and UI components, and under-the-hood performance improvements. Read more about it on our blog.
News
Submissions now accepted through the holidays
Were you planning to take some time off over the holidays this year? Think again! 😂 Since the beginning, the week-long holiday closure has been a feature of the App Store that I wasn't expecting to change!
Seriously though, please do make a plan to take time off over the holidays. For me, at least, 2021has been even more challenging than 2020. Time off is good for you.
Tools
Finder's special icon for ~/Developer
I can't remember when I found out about the trick that Alex Grebenyuk highlights here, but I've been doing it for several years. I love having all my development work in a folder that fits with the rest of the system. 🥰
It's also a great reminder that no matter how many times you tell people about something, it's never enough! I'm sure I linked to this trick already in a previous issue when I first found out about it, and I've seen several other people highlight it since then, yet the likes and retweets on Alex's tweet show it's still new to so many people!
Swift Playgrounds App Projects
I briefly mentioned the new playground format a couple of weeks ago, but Aaron Sky digs into it in detail with this post. We still need Swift Playgrounds 4 to have the complete picture, but it can't be far away now.
Code
CollectionConcurrencyKit
I wouldn't be surprised to see methods like these that John Sundell has implemented in this new library added to the standard Swift library in a future version. What a handy way to kick off several async tasks all at once. Check out the accompanying blog post, too.
Managing Focus in SwiftUI List Views
I've been following along with Peter Friese's ongoing set of articles on SwiftUI List
views (1, 2, 3, 4, and 5) and was going to wait for it to finish before linking to it. I couldn't wait to share his latest post on the FocusState
property wrapper, so here's the whole series. This is such an important part of giving editable lists a great user experience.
Using different fonts for different languages
I've never had to do this, but I can certainly imagine a situation where a different language would need a different font. I had no idea how until I read this piece from Sarun Wongpatcharapakorn.
Dynamic colors in SwiftUI
Tweaking your colours for dark mode is essential for making your app look good regardless of your user's preference. I've always used an asset catalogue, but if that's not an option for one reason or another, Natascha Fadeeva has a useful category on UIColor
for you.
Displaying mathematical fractions
Here's a fun article to finish this week's code-related links. How would you go about displaying fractions that don't exist in Unicode (like ½, ¼, and ¾) in a more aesthetically pleasing way? You'd use superscript and subscript, of course!
Business and Marketing
ASO tips & tricks to increase your app's ranking
The best articles on ASO are based on experience, and that's exactly what this one from Niels Mouthaan is. It's short and sweet with some concrete recommendations.
Videos
Videos from the Back to the Mac conference
I missed this conference from last year and only found it via this Twitter thread from Khoa Pham. What a great set of talks about macOS development! You'll want to spend a couple of hours with this.
Jobs
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 Swift Engineer @ Vital – Vital is an API that empowers health companies to provide preventative healthcare using a combination of continuous monitoring & lab tests. We've just raised $3mil backed by Y Combinator and a number of other amazing investors! We're looking for Swift Engineer to lead our health-kit integrations. – Remote (within US, European, or Asia-Pacific timezones)
iOS Developer @ Doximity – Doximity, 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 newly launched telemedicine feature. – Remote (within US timezones)
Principle iOS Developer @ Sleepiest – Here at Sleepiest, we're all about getting people sleeping better and living happier healthier lives. Sound up your street? We're a tiny 4 person core team, with big ambitions; we've been Apples App Of The Day worldwide, and the app has over 3.7m downloads (and 50k paying subscribers). Join us. – Remote (Anywhere)
iOS Developer @ Impending, Inc. – Join a team of 4 responsible for designing and building Heads Up! – the App Store's most popular and beloved party game. We're remote friendly (US timezone overlap is critical), pay $150-200k/year, and also tinker on some cool indie projects like Clear, which popularized swipe left to delete. – Remote (within US timezones)
iOS Engineer @ Clay – Clay's app is one of the most advanced SwiftUI apps in production, and was written in SwiftUI from day 1. We've tackled some of the most frustrating bugs, and designed some of the most seamless interactions. If you're interested in using SwiftUI professionally, this is the place to do it. – Remote (within US timezones)
Did you know that iOS Dev Jobs has native apps for iOS and macOS? Get a daily notification when a job gets posted that matches your filters. Download the apps.
Comment
All of the open-source work I have been involved with before the Swift Package Index was reasonably small scale. SimulatorStatusMagic was undoubtedly popular but was low traffic in terms of issues and contributions.
The Swift Package Index project is different. Of course, the work that Sven and I do generates plenty of pull requests and issues, but it also gets a reasonable number of new issues opened by people with good ideas to enhance or improve it.
Recently we’ve been concerned that the sheer number of open issues has increased to a level where we can’t keep track of everything. We want to encourage contribution to the project, but it’s too easy to lose control of a to-do list when anyone can add anything to it. No one benefits if the list of issues gets so big no one ever looks past page one.
So, this week, I did some re-organisation on the Swift Package Index project to get us into a better place to welcome all contributions from the smallest idea or bug report to complete pull requests. There’s a new README, an updated guide to setting up for local development, and most importantly, a new set of discussion forums where we can talk about features before moving them forward into an issue. I moved every issue that was already a discussion or didn’t have a concrete goal into the forum. I also set up issue templates to guide you when you hit “New Issue”.
It’s still far from perfect, but I hope the tweaks I’ve made help further encourage contributions while at the same time keeping the different types of feedback better organised. The Swift Package Index is an open-source project built by and for this community, and we’d love for you to be involved.
Dave Verwer