Swift Playgrounds for iPad now supports robots, drones, and toys
News of a major, yet to be released update to Swift Playgrounds for iPad in the week prior to WWDC? If that's not a good sign that next week's keynote is jam packed full of other announcements, I don't know what is! This is a fantastic step forward for Playgrounds too, with the ability to control toys from Lego, Sphero and several other manufacturers it's a big step for the educational potential of Playgrounds.
This was almost an "And finally..." link, and while it might still make you smile, it's more important than that. What would a SwiftUI layout look like in a text-only interface? Chris Eidhof is doing some interesting experimentation. The idea is that a SwiftUI app UI should essentially "just work", but in a text-based user interface. I'm not sure this will be the next revolution in UI design, but it's certainly not a joke project.
One of the biggest topics of conversation this week has been what happens to Combine now that we have AsyncSequence
and AsyncStream
on the way? I liked Ben Scheirman's take on it. What I'd say is that even if Combine is deprecated next year, which is far from certain, it'll likely be a long deprecation cycle. There's no need at all to refactor any working code just yet!
What did you think of this year's WWDC? But, more importantly, how do you think Apple should operate next year's conference? Online only? In-person? Apple is asking your opinions, so this is your chance to be heard.
Note: This survey has already been available for almost a week, so I'm unsure how long it will remain open. Fill it in quickly to make sure you get your say about the future of WWDC.
The Unofficial WWDC21 Lounge Archive
It's not surprising that Apple closed down the WWDC digital lounges once the conference was over, but it would have been a shame to lose the invaluable information shared in them during the week. However, thanks to Paul Williamson and Emin, we have an anonymised archive of conversations in the lounges.
From everything I heard and saw, these lounges were a great success. I hope they continue next year, even if there is also an in-person event.
implement account deletion before January 31st 2022
We knew this was coming at some point, and now we have a deadline. If you offer account creation within your app, you also need to provide an account deletion feature by the end of January next year.
If I had to make a prediction, Apple will delay this. Don't trust me, though, as I know nothing. Get it implemented by then, if you can!
The Swift Evolution readme was updated this week with an outline of the release schedule, and priorities for version 4. Predictably the final release is scheduled for fall next year, presumably alongside iOS 11, Xcode 9, etc... However, during the year there's going to be two main phases of development. Changes that affect source and ABI compatibility first, then other changes as we get towards the release. Sounds good to me.
Issue 300? That's incredible! 🎉 It feels like I just started writing this newsletter last week... 😄 When Dave started this site, I hadn't even typed my first line of code – which makes me wonder, what will the next 300 issues bring?
Dave was really looking forward to writing this 300th issue but unfortunately he's ended up unavailable today! Everything is fine and he'll be back up and running in a couple of days though, so don't worry!
Offer Introductory Pricing for Your Subscriptions
iOS subscriptions just got a whole lot more powerful. With introductory pricing, you can allow users to subscribe in your app for discounted rates for a certain amount of time, which is likely to get more users locked into your product. I know I'm going to be using these changes in my app next year – if you have subscriptions, I strongly suggest you consider doing so as well. 💪
This new package from Morten Gregersen is worth a look for two reasons. First, it’s an API client library for the App Store Connect API, and that’s always useful. However, what makes it unique is that it’s powered by code generation run via a GitHub Action. So, whenever the API changes and the OpenAPI specification gets updated, the action generates a new pull request, so it’s always up-to-date! Whatever next! 🤑