I didn’t think I’d ever get to see anything I had worked on in a WWDC session presentation. That’s a privilege even if you work inside Apple. It’s pretty much unheard of if you don’t.
And yet, this week, it happened. 🤯
It began when I started receiving messages and DMs from people saying, “Did you just see the mention of a package index on that slide?” during the Platforms State of the Union. I hadn’t even seen it, but a quick screenshot proved it! I did wonder for a few seconds whether we might be about to be Sherlocked, but something far more exciting was on the table.
It came in the “What’s new in Swift” session on Tuesday. 2m45s into the session, Nicole Jacque begins talking about Swift Packages, and suddenly, there’s a screenshot of the package index! Right there in a WWDC session! I couldn’t quite believe it.
I want to say a heartfelt thank you to everyone who was involved in making this happen. I have to think this decision wasn’t taken lightly, and it’s so lovely to see that people inside Apple think what we’re working on is important enough to include alongside their own work. The Swift Package Index remains the most exciting part of my work every week, and I can’t wait to see where we take it over the next year.
So, that was my highlight of this week, but that was far from the only exciting thing that happened! As usual, I’m not going to try and cover every announcement or new API today. We have several months for that!
I hope you all had a great WWDC week, and enjoy the collection of links below, as always!
I don't remember when I first became aware of Steve Jobs. It happened gradually.
I had been aware of Apple since I used my school's single Mac Classic (yes, just one for the whole school) in 1990 when I was sixteen. The teachers kept it locked away in the cupboard, but I managed to find excuses to use it. I certainly didn't know much about the company's history at that age, though, and there was certainly no internet in any form I had access to back then if I had wanted to research it!
I think the first time I was properly aware of Steve was during one of the iPod announcements. I was fully immersed in a Microsoft focused part of my career at the time, and I remember comparing it to much cheaper (and so much worse) alternatives. I wasn't too impressed, but I wasn't paying proper attention.
I finally opened my eyes to Apple when I bought my first Mac in 2006. As soon as I focused on the company, it was instantly apparent what an incredible job Steve had done bringing it back from the brink of failure.
I was lucky enough to be in the same room as Steve a few times during WWDC keynotes. It was quite an experience, even as a member of the audience. People used to refer to it as his "reality distortion field", and I certainly felt it. He changed the way I thought about products and was instrumental in changing the path of my career. I've missed him over the last ten years and will continue to miss him for the next ten.
But, rather than reading the thoughts of someone who didn't know Steve, I'd recommend you spend some time this weekend reading this article in the WSJ from Jony Ive, one of his closest friends. It's beautiful.
iOS Developer (f/m/x) @ COBI.Bike GmbH – We offer you a great team, great e-bikes you can try out, a beautiful office, newest apple hardware so you can make the magic and happen and the chance to develop your skills further. We're amazing! Join us! – Frankfurt, Germany
Swift Engineer @ WillowTree – At WillowTree, Swift Engineers have the freedom to create products people love. You’ll collaborate with a cross-disciplinary team to build large-scale products for well-known brands. We look for team members who advocate for software engineering best practices and inspire their team to continuously learn and improve. – Charlottesville, VA
Senior iOS Developer @ Albus – Join us to work on modern apps (Swift and iOS 12 minimum) used by thousands of medical professionals everyday. Our management is composed of mobile experts whose product's vision takes the technical aspects in consideration. Your voice will be heard at every step (technical, UX, design...). Get the best of both worlds by working in a small modern team inside a stable and growing company. – Nantes, France
Lead Application Engineer @ LiveSurface – Build the next generation of LiveSurface products with a focus on SwiftUI, Combine and the newest Apple frameworks. LiveSurface is an industry leader in visualization and image creation tools for creatives. We blend clean UX, proprietary rendering technology and hand-curated content to provide realtime photorealistic visualization to our users. – Remote
Senior iOS Engineer @ Fi – Fi is reinventing the relationship between dogs and their humans by providing dogs more freedom and their owners peace of mind through the Fi Smart Dog Collar. We're working hard to push pet tech forward by building amazing hardware and software, all in a dog friendly office. Come join our veteran team that hails from Nest, Square, Google, MakerBot, FourSquare, and Canary. – New York, NY
Just six weeks ago, Sven and I launched the Swift Package Index - A site dedicated to helping you make better decisions about your dependencies.
Today, we’re releasing our next major feature — comprehensive compatibility metadata for both platforms and Swift versions. At a glance, you can see what versions of Swift a package supports, and whether it’s compatible with iOS, macOS, tvOS, watchOS, and Linux! How are we getting all of this information? There’s no better way to check whether a package supports an environment than by running a build in that environment, right? So that’s how we’re doing it. We run builds using every permutation of platform and Swift version to determine precise compatibility data for every package. 😅
We’ve run over 200,000 builds so far, and developed a mechanism to automatically keep up with every package in near real-time as new versions are released. We then aggregate the build results into easy to read compatibility tables on every page of the Swift Package Index. I’m confident that there’s no better way (that's available today) to quickly check whether the package you’re interested in supports your app’s environment.
There’s a lot more to say about this feature than I can fit into an iOS Dev Weekly introduction, so what you should do now is go and read the launch blog post, and then check the feature out. That blog post also contains the answer to what many of you have been asking about these tweets.
Developing this feature has been an enormous effort. So much so that if we knew then what we know now, it may never have left the drawing board, but it did, and now it’s here for you all to enjoy!
macOS Software Engineer @ PreEmptive – We make cutting-edge products that protect apps via obfuscation and injected runtime checks. We're small, we're agile, and we're serious about forming and supporting great development teams. We're looking for someone with iOS / LLVM / C++ expertise help develop our next great product. Remote-friendly, proximity to Cleveland Ohio preferred. Come join us! – Remote, or Cleveland OH
Senior iOS Engineer @ IRL – IRL is an all-remote company building a social calendar that will be a ‘one stop shop’ for all the things you want to do with friends. Our iOS team is looking to add a Senior Engineer to our small, nimble squad. Our size-to-product ratio is low, so you’ll be a high impact contributor, making tangible changes daily. Come write great iOS code for a beautiful app and help the world do more together! – Remote within ±3 of Pacific Time
iOS Developer @ Doximity – Doximity, the medical network used by over 70% of US clinicians, is hiring passionate iOS engineers (remote-friendly!). 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! – San Francisco CA, or Remote within the US
Senior iOS Engineer @ DuckDuckGo and Senior macOS Engineer @ DuckDuckGo – Rather than rely on interviews, we base our hiring decisions on demonstrable work performance. We achieve that by asking our candidates to complete paid projects, which largely resemble the type of challenges they would be solving at DuckDuckGo every day. – Remote
Senior Mobile Software Engineer, iOS – Doximity, the medical network used by over 70% of US clinicians, is hiring passionate Senior iOS engineers (remote-friendly!). 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! – San Francisco CA, or Remote within the US
macOS Software Engineer @ PreEmptive – We make cutting-edge products that protect apps via obfuscation and injected runtime checks. We're small, we're agile, and we're serious about forming and supporting great development teams. We're looking for someone with iOS / LLVM / C++ expertise help develop our next great product. Remote-friendly, proximity to Cleveland Ohio preferred. Come join us! – Remote, or Cleveland OH
Senior iOS Engineer @ IRL – IRL is an all-remote company building a social calendar that will be a ‘one stop shop’ for all the things you want to do with friends. Our iOS team is looking to add a Senior Engineer to our small, nimble squad. Our size-to-product ratio is low, so you’ll be a high impact contributor, making tangible changes daily. Come write great iOS code for a beautiful app and help the world do more together! – Remote within ±3 of Pacific Time
Senior iOS Engineer @ DuckDuckGo and Senior macOS Engineer @ DuckDuckGo – Rather than rely on interviews, we base our hiring decisions on demonstrable work performance. We achieve that by asking our candidates to complete paid projects, which largely resemble the type of challenges they would be solving at DuckDuckGo every day. – Remote
I think it’s safe to say that given the circumstances, this year’s WWDC was a complete success. I lost count of the number of times I saw people compliment Apple on the session videos, especially the fact that they can be of different lengths when there’s no fixed schedule. I feel the same way and feel confident in saying that the videos this year got the information across in a much more engaging way than a “traditional” conference talk.
I also saw several people say they’d be happy if future editions were entirely virtual too. I certainly think there are lots of positive lessons that’ll come out of this year’s event, but I do hope that we haven’t seen the last in-person WWDC.
I know it’s entirely my fault, but I didn’t make as much of this year’s conference as I usually do. I attended several online events, met some new people, and watched a couple of session videos, but I found it hard to take full advantage of the week. The fact that I was sitting at my desk at home meant that what I mostly did this week was… work! 😬 One advantage of being in a physical location for a conference is that it forces you to pay attention and take advantage of what’s happening. I know this is entirely my fault, but I’m sure I’m not alone.
So, let’s get started with this week’s links! I say this every year, but it’s worth repeating. I won’t try to sum up every announcement or cover every new API this week. Not only would that be impossible, but how would I keep you busy for the rest of the summer if I covered everything today? 👍
For almost nine years, this newsletter has been a collection of links that caught my eye during the week. It’s the same this week, and it’ll be the same next week. If we’re lucky, we might be getting close to digesting everything by September. 🤞
It was Data Privacy Day last week, and Apple was all over it. The most significant part of the event was Tim Cook’s appearance at the Computers, Privacy & Data Protection Conference. Tim doesn’t often speak publicly, which should tell you how important this is to Apple.
Last year saw the introduction of privacy “nutrition labels”, and all apps must now disclose their data collection practices so the App Store can show a (relatively) glanceable summary.
The Washington Post investigated how accurate these labels were, and the results were unsurprising, with plenty of apps are either deliberately, or accidentally getting this information wrong. Apple appears to be verifying some information, to some extent, but that’s difficult on the client-side, and impossible when data hits a server. Manual verification is potentially part of the solution, but it can never be the whole picture. Disclosure needs to be trust-based, but you can’t trust companies. What’s the solution? Heavy penalties, like the removal of developer accounts, is one option, but I hope that Apple has plans to ensure apps toe the line.
There will be much turbulence as Apple continues to make everyone (including end-users) care about privacy. The biggest shakeup will come from App Tracking Transparency, which has the potential to fundamentally affect companies whose business models are to sell your data.
If you’re a small or independent developer, it’s unlikely that this will have a significant impact on your business, but you’ll still want to stay on top of privacy with every third-party service you use. We’re going to hear a lot about it from Apple over the next few years.
Congratulations if you got lucky in the WWDC lottery! I won't be at the main event this year, but I will be in the city 🎉 which gives me a great excuse to talk about all of the other wonderful events that are going on that week.
First up, as always is the ever reliable AltConf. There will be live streams of the Keynote and State of the Union talks, then it's straight into community talks & sessions for the rest of the week. Oh, and if you fancy speaking there's also a call for speakers open at the moment. Tickets are available right now.
Then, there's Next Door with a great line up of speakers already announced and again, tickets already available.
Taking a slightly different approach, there's try! Swift also making an appearance in San Jose. It's only a one day event, but it's an interesting one. Starting with a panel discussion on Swift it then goes into a hack day contributing to the language. If you've always wanted to get started with the process of developing Swift itself, you should definitely earmark Friday for this event. Tickets are also already available.
Finally, if you're more interested in the design side of things then Layers is also returning. No speakers or tickets available yet but there's an email list (and a simply stunning display of CSS) on the page so get yourself down on that list if you're interested!
Did I miss any other conferences in San Jose that week? I know there are lots of other events, but I'll cover those closer to the time. I'll tweet any other conferences I missed over at the iOS Dev Weekly Twitter.
Let's talk a little about Marzipan.
Naturally the last few weeks have been full of speculation about what it means for future versions of both iOS and macOS. Is this the start of a transition to ARM based Macs or touch screen "laptop" style devices? I'd say both of those are quite possible in the next few years. Is this the beginning of the end for AppKit? Maybe, eventually? Could AppKit eventually host UIKit views rather than being completely separate? Possibly! Will UIKit be extended to include more laptop and desktop exclusive controls? I'd say this is very likely.
Then, what about that rumour from the end of April of a new declarative UI framework? If Apple is putting all of this effort into UIKit on macOS is that rumour automatically false? Absolutely not. I'd say that even if there is a completely new, declarative framework in development somewhere inside Apple that it's quite likely that the things it produces will still be made out of UIViews. If anything, Marzipan is a really good sign that macOS might be able to join in with the declarative party, if the declarative party ever actually happens.
I also think that the work that people like Steve Troughton-Smith, Guilherme Rambo and many others are doing to uncover what Marzipan is as of today is fantastic. I'm also really glad they are doing it, but just remember that everything we have right now is based on a ten minute announcement on stage and some bits that are in early beta.
I'm personally just trying to keep in mind that we are more than a year away from version 1 of what might partially resemble what we are seeing as a result of spelunking these betas. I'm excited by what's coming, but I'm also not going to spend a huge amount of time thinking too hard about what s being dug up today. It's just too early. ⏳