Accessibility Software Engineer - Hearing @ Apple, Inc. – Are you interested in making the world a better place? Do you want to help influence and create some of Apple’s most important products? Our team, iOS Accessibility Software Engineering, is looking for a talented engineer who can contribute directly to our hearing focused accessibility products, including Made for iPhone Hearing Aids, Live Listen, Real-time Text Support and more. – Cupertino, CA
Senior Software Engineer (iOS) @ Capital One – At Capital One, the iOS platform is recognized as an opportunity to reach our customers in unique, personal and engaging ways. Nothing is off limits as we explore exciting ways to take advantage of the full ecosystem of iOS devices including Apple’s Watch, TV and whatever future developments Apple creates. – Mclean and Richmond, VA
Lead Software Engineer, Senior Manager (iOS) @ Capital One – As a Team Lead, you will drive design, implementation, testing, and devops in an Agile environment, using modern methodologies, and open source tools. You’ll be empowered to choose the way you work (Mac or PC, iPhone or Android). You will bring solid experience in designing and delivering software applications, and lead teams that are at the forefront of disrupting the financial services segment. – Mclean, VA
iOS Engineer @ Chegg – "Chegg is one of the best teachers I’ve ever had" These are not our words, but the words of Victoria, one of our students. We're reimagining the learning experience in 2020 and we're looking for an iOS engineer to join a new team to build Chegg's next learning platform. You'll also be part of our iOS guild of a dozen engineers passionate about being better iOS devs. – Rehovot, Israel
Senior iOS Engineer @ Citizen – Citizen is a global safety network used by more than 10% of New York. In the past few months, we’ve rolled out to SF, LA, Baltimore, and Philadelphia and despite being in only 5 cities we are consistently a top-10 News app. We’re people from Instagram, Tesla, Google, and the NYPD who came together to build tech to help people. Curious about helping scale Citizen to millions of users? Let's chat. – New York, NY
Senior iOS Engineer @ Octi Inc. – We are the next great platform for AR. We have all of our own patented custom tech and have been backed by the best product investors in the world. – Los Angeles, CA
iOS Chapter Lead @ Babylon Health – We're looking for iOS Chapter Lead to join one of the most disruptive and socially conscious AI start-ups around. – London, UK
iOS Developer @ Transit – Bright, light-hearted coworkers. The cutest rooftop in Montreal. We’re a team of app-wielding urbanists creating the vaccine to eradicate car ownership: Transit. We bring better real-time data (and smarter trip plans) to hundreds of cities, spanning public transport, bikeshare, scooters, and other shared modes. We keep millions of cars off the road — and lure more people to sustainable options. – Montreal, Canada
iOS Trainee Program @ The App Academy – Ready for the next step in your career? Become a highly skilled iOS developer in Amsterdam, The Netherlands. Apply for the iOS Trainee Program at The App Academy. Limited spots available, so act now! – Amsterdam, NL
So, it was shaping up to be a quiet week until yesterday! Unless you've been locked in a windowless, soundproof room for the last 36 hours you'll already be aware that Swift was released as open source, right on schedule. Everything is up on GitHub and already people are tackling the hard problems. 🙄
I'm sure the madness that is the current set of PRs will calm down over the next few days (or weeks) and the proper work will start. But instead of focusing on that, let's talk about the release itself.
I'm extremely impressed with how Apple have approached releasing Swift into the community. When it was announced that there would be an open source release, there was very little detail on what that actually meant. It could have been anything from a simple, occasional source drop to development done in public. What did we get? Well, pretty much everything we could have hoped for. This truly is an open development process now. Not just in terms of the source code, but in terms of everything that goes along with it, including discussion of plans and features for future releases.
To me, the source code itself is the least interesting part of the release (don't forget that Objective-C was open source too!). I really have no need to peruse the depths of the Swift implementation. I’m not a compiler engineer and I doubt that the vast majority of iOS/Mac developers will ever end up deep inside the Swift implementation. What’s exciting to me is all of the peripheral information, and tools that accompanied the release, and even more important than that the fact that the Swift team inside Apple has managed to effect this kind of change.
There’s links to various interesting bits of the release below, but I’ll end here by saying congratulations to all of the team who have been involved in this project. It can’t have been easy and you’ve all done a wonderful job with it. Bravo.
This week's issue is going to be a little lighter on the other links due to the amount of information on the Swift open source release. Back to normal next week though!
So, I successfully predicted this wasn’t the big AR/VR/MR year at WWDC. 🥽 What I missed were any signs that this would be the year we’d have two dedicated sessions covering regular expressions instead! 😳🤯🥰
What I also didn’t expect was to see so many people attend the in-person portion of this year’s conference. I’m not sure what the exact capacity was, but it seemed to be a significant number from the photos!
I wonder if we’ve seen the future of a truly hybrid WWDC? I’m not the first to say that the pre-recorded session videos are superior to filmed in-person sessions, so it feels like that part is a clear win. It will always be tough to convince companies to send people to California for a one-day event, though, especially if it involves intercontinental travel. If Apple slightly expanded this type of event, is there a balance that might make those journeys worthwhile? I think there probably is.
I’ve seen several people this week suggest that Apple should run this kind of event in multiple locations worldwide. That’s a good idea, but there is something special about meeting developers and app builders from all around the globe that regional events struggle to compete with.
There’s no easy solution to a successful hybrid event. Still, I’m sure the developer relations teams within Apple were watching very closely and that it’ll be a hot topic inside Apple Park over the next weeks and months! We’ll have to wait and see what happens next year, but I must admit I felt some regret for not applying for a ticket. That feeling intensified when I saw this tweet from Paola Mata specifically. I want to feel that way, too!
As with all post-WWDC issues of this newsletter, I won’t try to summarise everything from the last week in today’s issue. We have the whole summer for that. Instead, my comments and the articles I link to are always inspired by whatever I found interesting during the week. So here we go!
Over the years, the cadence of the annual iOS release schedule has settled to become very predictable. First betas arrive in early June, then update every few weeks until the mid-September event where the iOS and Xcode GMs appear. Everyone does a final test on the GM, and a week or so later, the updates drop. It’s regular as clockwork. 👍
But it’s 2020, and nothing goes to plan this year. At Tuesday’s event, we expected to see the announcement of a late September release date, but as you know by now, it ended up being less than 24 hours after the event. 😬 Twitter, predictably, was the focus for the community’s ire and dissatisfaction. There was a broken GM build uploaded, and the clock was ticking.
I’m sure there are good reasons for why it happened this way, but it did throw everyone into a state of panic. A little communication from Apple to developers would have been very helpful, but I’m sure that a decades-long history of tight-lipped stoicism is tough to change. Maybe if the announcement of the event had come with a post on the developer news site outlining the adjusted release schedule, people would have been pacified after the event.
But without a final build, there’s no way to do that last test, and I saw several tweets from developers who found last-minute issues that only appeared in the GM build. It’s not ideal after developers have been working all summer to be ready on day one.
I do want to touch on the “day one” thing though. It’s long been seen as essential to have your app ready for the first day of a new platform, or operating system release. In reality, it’s probably not as critical as it might feel. Only a tiny percentage of users upgrade on day one, so it only affects the very earliest of adopters. It’s not worth losing too much sleep over, in my opinion. Most users will never know that your app didn’t immediately take advantage of every new API.
I also saw several people talking about lost marketing opportunities from not being there at launch, and again I don’t think it’s that important. Marketing is a constant, ongoing task, and coverage of these new releases doesn’t stop next week. There’s plenty of time to be featured by Apple, or a third party news site if you release a few days after the official launch. You’ll still beat most of the big companies, that won’t have widgets for the next 18 months.
Or, you could roll with it and integrate this into your marketing plan. 😍
I think it’s fair to say that this year has been exceptional, for all the wrong reasons. 😬
Yes, our industry has fared better than most in 2020, and we should all be grateful for that, but that doesn’t mean it’s still not been full of stories of hardship. No matter which way you spin it, 2020 has been tough for most people.
But we can also look forward with hope. With multiple viable vaccines on the horizon and some countries already starting to administer doses, there is hope that at this time next year, the world will again be a slightly happier and safer place. We’re not out of it yet, but it feels like we’re starting to see the first glow of sunrise.
But before you write off 2020, I’d spend a minute thinking about what you have managed to achieve this year. I actually surprised myself a bit when I did. My 2020 started with the Community Survey Results, and then the (re)launch of the Swift Package Index as an open-source project just before WWDC, and then the build system a couple of months later. I also completed a six-month contract, and still managed to find time to press send on this newsletter every Friday. I’m pretty proud of that, given all the challenges.
This year has been very challenging for me, and I’m sure it has for you too. But it’s important to remember it’s not been a complete washout for any of us. Take a few minutes to look back at your own year. I bet there are more positives than you first think. Don’t just think about work either. Life is about more than iOS development.
As always, I’d like to thank you all so much for sticking with me and continuing to read and send feedback on what I write here. I truly appreciate that you consider this worthy of your attention.
I normally take a week off over the holidays, but in recent years I’ve been using that week to do a round-up of the best “And Finally…” links of the year, which kinda negates the whole “week off” thing… 😬 So this year, I’m going to take an actual week off meaning no issue at all next week. The following week will be the round-up of “And Finally…”, which will be waiting for you in your inboxes on the first day of 2021. That should take the sting out of returning to work!
My bags are packed and in less than 24 hours I'll be in the air on my way to San Jose! ✈️
Whether you're going to be at one of the full length conferences (WWDC, AltConf, NextDoor or Layers), one of the shorter events (try! Swift), watching the keynote online either through the official page, the official app or through the recently updated WWDC.io app or at one of the countless other events that are happening all over the world (like this one in London) I hope you all have a great week! Let's meet back here next week to recap it all?
I'm going to be starting my week in California with a pre-keynote #noqueue breakfast and I'll also be attending some of the runs being organised throughout the week over at WWDC.run. As for the evenings, there's the WWDC Parties app to fill up your schedule.
If you're going to be in the area, I'd like to highlight two great ways to meet and socialise with people next week which is by far the most important reason you're there. First is WWDC.family which is location sharing for everyone at the conference. Also, Beacon which was launched last year for impromptu events. I'll be using both!
Let's wrap this up with some great advice from Tyler Fox. Actually, I'm going to slightly modify his advice. No matter your career plans, if you're lucky enough to be inside the convention centre go and spend time in labs with the engineers of the frameworks you're interested in. I've lost count of the amount of positive things that have happened that started with a lab conversation. In fact, I'm sure that the first time I met Tyler was doing exactly that. Even if you're not inside the main event, make sure you meet and spend time all of the other engineers, designers and other people involved with iOS who'll be in the city that week. Come back from the conference thinking "Wow, I can't believe how many amazing people I met".
Oh and if you see me, please do come up and say Hi! 👋
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 Marzipan Project 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. 🤯🤯🤯
Yes Marzipan Project 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 Text
give you a UILabel
, an NSTextField
, a CATextLayer
, or something else entirely? Who knows! It gives Apple so much more flexibility going forward, and makes Marzipan Project 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… 😂
As we head into the festive season, I find myself looking back on 2022. The world still feels like it’s heading in the wrong direction in so many ways, but as day-to-day life starts to more closely resemble pre-pandemic times, it has been a much more pleasant year than the last couple.
In the world of Swift and Apple platform development, we started this year amongst an avalanche of rumours that I didn’t believe:
So, my prediction for this year is that this is not the year for any AR/VR hardware from Apple. Not even a holographic sticker on the back of the iPhone 14. 😂
I’ll take a win on that one! It wasn’t all success, though, as I did suspect we might see a watch face SDK this year, and that didn’t pan out at all. 😬
I like to read back through my introductory comments at the end of the year. I don’t particularly enjoy it, it gives me the same feeling as listening to audio of myself speaking, but I find it’s valuable, and there were a few comments that I felt happy with as I re-read them.
My thoughts on issues with App Store business models and VC funding (and the follow-up) still feel relevant. I was also pleasantly surprised when I re-read my thoughts on AR user interfaces and the Swift plugin for VS Code. Finally, I was happy to highlight the great work on the Parse platform that survived abandonment.
It was also a big year for the Swift Package Index, with our primary focus this year being to build a robust package documentation system. Over 225 packages have adopted that documentation system, which is wonderful to see, and we’re proud to continue our work supporting the Swift open-source package ecosystem.
I hope you all take some time to look back and celebrate your achievements this year, too. I also hope the next few weeks are a time for celebration with family and friends and a break from work.
Finally, I want to thank you all for continuing to read what I have to say. This newsletter would not exist without you. As usual, there will be no newsletter next week and a “Best of And Finally…” the week after. Regular service will resume on the 6th of January, 2023. I’ll See you then!
Who's ready for WWDC? Siri is! Was this an intentional move or a premature deploy to the Siri servers? My guess is that it was intentional, and a fun way to get everyone talking for a few hours before the official announcement. Thanks Siri!
Anyway, there's a few changes this year with Monday's keynotes and the design awards being based in a different location. There's been some talk that with the increased seating capacity in the auditorium (~7,000 instead of ~5,000) that this is to increase the capacity for the conference as a whole, but again no one really knows. A change of scenery will be nice though!
If you're on the fence about whether to attend, you've still got about an hour to get your name in the hat for the lottery. If you need a little advice on the decision, why not take the next 30 minutes and listen to the latest episode of Under the Radar with Marco Arment and David Smith which takes a pretty balanced look at the pros and cons.
See you there, hopefully!
Did you get a pre-order in? If you're hoping for a new phone (or watch) I hope you had fast clicking, or tapping skills. From watching Twitter, it looks like there may only have been about 7 jet black devices that were available for shipping next week! 😏
I've been thinking a lot more about the App Store cleanup during this week, and I've decided to run a little experiment on how effective it's going to be. It'd be easy to find some truly terrible apps and watch them disappear, but I'm interested in the grey area between good and bad. I've shortlisted some apps that are still ranked highly in searches for popular search terms, but that haven't been updated in at least 18 months and have reviews that complain about things like crashing on startup. These apps are clearly still being downloaded and I want to see what their fate is. I'm not going to name the apps as I don't want to embarrass the developers, or tip Apple off on which ones I'm watching! 😂
I have no doubt the clean up will be effective, I 'm just curious where the line will be drawn.