Find An iOS Dev Job Through Vettery
Vettery specializes in developer roles and is completely free for job seekers. Interested? Submit your profile, and if accepted, you can receive interview requests directly from top companies growing their mobile dev teams. Get Started.
Highlighting WWDC Scholarship Winners
Here's Tim Cook highlighting a few of the scholarship winners from this week. I didn't meet these individuals specifically but some of the absolute highlights of my week were the conversations I had with both academic WWDC scholarship winners, as well as many other scholars from STEM organisations. I heard so many inspiring stories, and met so many talented individuals. You're all amazing. 👍
But actually, my fondest scholarship memory from this week was from AltConf where I met Lonnie. It's no small thing to attend a conference as a high school graduate without any of the special events, or support that the official scholars receive. Lonnie's passion for learning how to develop iOS apps was so inspiring. I'd never have had the courage to do something like that myself at that stage in my career.
Apple Platform SDK API Differences
It's sometimes hard to see just how big a release is without seeing a diff of all frameworks that were added, and changed all in one place. Thanks to the ongoing work of Matt Stevens, that's exactly what we have here. Spoiler: This release is huge! 🤯
A first look at Xcode 11’s Swift Package Manager integration
Alright! One of my biggest wishes for this year was for the Swift Package Manager to step under the Xcode spotlight, and it happened! 😍 John Sundell gives us an overview, and a glimpse at how to use it.
Getting Started with Xcode Test Plans
I didn't hear much talk about this feature from the community during the week, but it's very cool. Shashikant Jagtap gives us the low down on creating and running Test Plans in Xcode.
SwiftUI by Example
I ran into Paul Hudson a few times this week, and by "ran into" I mean I had to dodge him as he was dashing back and forth between his hotel room, where he was writing these quick start guides, and the labs where he was checking he had everything correct with the SwiftUI engineers. This is the best content you'll find about SwiftUI outside of the amazing official tutorials.
RxSwift to Apple’s Combine “Cheat Sheet”
So it's time to move all of your RxSwift code to Combine, right? Slow down… It's probably not that time just yet! Shai Mishali has put together a comparison of RxSwift to Combine as it stands today.
Declarative iOS layout with Panda
You can't use SwiftUI with apps that ship today, but that doesn't mean there aren't options that take the same declarative approach that are available right now. If you just can't wait for September, let Belle Cooper tell you about Panda and Bamboo from Javier Zhang.
Creating a Mac Version of Your iPad App
So here it is!
Marzipan Project Catalyst! Menu bars, mouse/trackpad support, Mac style sidebars, windows and it's all just behind a single check box in your Xcode project… 😀 Once you need more than the check box though, there's also some tips for deliving a little deeper.
Making UIKit and AppKit work together
So you can't "officially" mix UIKit and AppKit in
Marzipan Project Catalyst yet… Is that going to stop Steve Troughton-Smith? Tell me honestly, do you really think anything could stop him? This thread is fascinating and is also great news for the future.
I've written a few versions of this over the years… It's so good to see it integrated into Foundation. 🎉
Ever been to the noun project and searched for "share", or "download", or "cloud", or "camera"? Of course you have. This is how we ended up with every app having a very slightly different version of ultimately the same icon. SF Symbols is awesome.
Also, check out this library from Frederick Pietschmann de-stringifies your usage of it. Finally, this site from Noah Gilmore is a great way to find the icon you need.
Business and Marketing
Updates to the App Store Review Guidelines
The significant thing about this news post from Apple is not so much the backtracking on the parental control MDM issue that has been in the news recently, although I am surprised that they did that! No, the significant thing is that this post is a summary of this week's changes to the App Store Review Guidelines! Summary posts like this are incredibly useful, and I couldn't be happier to see Apple document these changes properly.
Up to Speed
Memory Management in Swift: Heaps & Stacks
Yes yes, there's lots of exciting new things to learn this week, but that doesn't mean we shouldn't also take care of the basics! I really liked this article from Sarin Swift on memory management in Swift. Even if Swift abstracts a lot of this stuff, it's still a very good idea to understand what's going on.
The 15 Best WWDC Videos of All Time
This is such a good idea from Paul Hudson. Much of the content from WWDC is very specific to what's being announced but there's also a good amount of sessions from previous years where the content is evergreen. Here's a list of 10 of the best. Once you're done with watching this year's session videos 😂, have at some of these old classics.
Senior iOS Developer @ Doist – Joining Doist as an iOS developer means you'll be joining a diverse, remote-first team of 60+ people who are distributed across 25 countries. You'll get to help create tools, like Todoist and Twist, that promote a calmer, more balanced, more fulfilling way to work and live. – Remote
Senior iOS Developer @ Float – Are you Float’s next Senior iOS Developer? As Senior iOS Developer with Float, you will lead the mobile development team to design, implement, test, and deliver in an Agile environment. Float designs and builds mobile products that make our clients’ workforces more effective. – Remote or Morton, IL
Senior iOS Engineer, Swift @ Starry – Tired of your monopolistic cable provider? Join Starry! We are a booming 5G internet company rapidly expanding to more than 20 cities and beyond. Our teams work hard to delight our customers with the best experience. – Boston, MA
Engineering Manager @ onX – Lead the mobile development teams at onX, a Montana based company with the leading off-the-pavement GPS mobile app! As an Engineering Manager, you will manage 10+ talented and fun-loving devs who take pride in empowering our customers to find their way in the wild. Our Engineering team is growing quickly and onX is taking our technology into new outdoor markets... come join the journey! – Bozeman, MT
Looking for a job? There's many more job listings over at iOS Dev Jobs. Do you want your job listing posted here? Just post a featured listing and your job will be right here next Friday.
What a week!
Just a few days ago, before all of this week's announcements, I thought this week's newsletter would mainly be focusing on
MarzipanProject Catalyst. I figured there would also be a few guides to Dark Mode, and a few other assorted goodies, but we knew what we were getting… Right? Little did we know, Apple had a different plan for what we'd all be talking about this week. 🤯🤯🤯
MarzipanProject Catalyst is here, but it feels like it has been overshadowed by almost every other announcement from the week. SwiftUI is the obvious star of the show. Yes, it's declarative, but it's also reactive with the introduction of the Combine framework! 🤩
As the week progressed, and we found out a little more each day I found myself more and more impressed with every extra detail. Abstracting UI code away from UIKit/AppKit feels like the start of the next generation of iOS development, and it's a significant move. Will a
Textgive you a
CATextLayer, or something else entirely? Who knows! It gives Apple so much more flexibility going forward, and makes
MarzipanProject Catalyst seem much less significant (and controversial) than it did when it was previewed last year. Obviously still important, but not to the same extent as it was last week.
More importantly though, it's so wonderful to see that our community is talking about iOS UI development again! I've made it no secret that while I love Swift, my love for this ecosystem is much more about what we can build with iOS rather than how the language itself is developed. The pace of change of iOS itself has been slower recently than it was at the beginning, but this year is a big one and I couldn't be more excited to cover all of the changes to the platform over the next few months.
Oh, and I'm definitely going to write up the story of how this happened. I haven't had time to write it up this week, but you all deserve to know how a life-size cutout of me in AltConf came to be a thing… 😂Dave Verwer