00:00:00 ◼ ► Welcome to Under the Radar, a show about independent iOS app development. I'm Marco Arment.
00:00:05 ◼ ► And I'm David Smith. Under the Radar is never longer than 30 minutes, so let's get started.
00:00:09 ◼ ► So as we sit here at the social policy coffee shop, and in a few minutes we're going to go down the street and get some beer and sausage and maybe some of that awesome vegan Indian food.
00:00:27 ◼ ► I miss those days. A little bit. I mean, it is really nice to wake up in my house with my family, you know, not having to travel across the country and spend an Apple Watch a night in a hotel.
00:00:40 ◼ ► But otherwise, there are parts of that that I miss, certainly. But I think overall, I think I'm happier, honestly, this way.
00:00:49 ◼ ► Yeah, no, it's weird, I'd say this year. It's WWDC week, which is super exciting and fun, but it's kind of a weird feeling because I think last year felt like an exception.
00:01:00 ◼ ► That it was certainly not, I think, how Apple would have planned to do it. And they were responding to a situation that was kind of just thrust upon them a few months before WWDC.
00:01:10 ◼ ► Whereas this year, it was planned and expected. And this is, you know, it feels a little different that going into a week where, you know, it's like, "Okay, I kind of know how this is going to go."
00:01:20 ◼ ► And, you know, so far, we're about recording this around the middle of the week. And it's, so far, I'd say it's been going well and is, you know, similar, if not slightly better in a few ways to what we had last year.
00:01:31 ◼ ► Where it's the same kind of, you know, nice, short focused videos that, you know, we're going to format that I think is just amazing. And then they've added a few little bits and pieces to it. But otherwise, overall, like structurally, the conference seems to, you know, they've gotten the hang of it, and they didn't have to actually change that much from what they did last year to make it even better.
00:01:50 ◼ ► Yeah, I mean, again, like, I think we are going to have a weird transition that's not going to be entirely positive if they go back to in person conferences next year. Because there is so much about this that actually is really nice for a lot of people.
00:02:04 ◼ ► And honestly, I like it this way. I mean, as I said, like, there is definitely stuff I miss about the old, you know, in person format. But if they never went back to the in person format, I wouldn't be upset.
00:02:16 ◼ ► And I think if they do go back to it next year, I think I might be kind of upset about certain aspects of it. So I actually am really enjoying this format again.
00:02:25 ◼ ► Yeah. And I think too, it's even things like they've added, like a few little extra ways to make the week even better. Like they added digital lounges, which turned out, when they sort of announced those ahead of the conference, and it turned out it's essentially a Slack community that is essentially going to be created for this week. And then I think at the end of the day on Friday, it'll just sort of disappear. So it's not like this, you know, long term thing that Apple is doing.
00:02:49 ◼ ► But for this week, there's this Slack group that you can sign up to be added to. And then it's essentially a highly moderated Q&A, for it seems like the main way that it's being used, where there's a mechanism by which you can ask a question.
00:03:05 ◼ ► And there's different sort of like office hours with different Apple folks there. And they'll answer your questions. And if they answer your question, then you can respond to the thread where they answered it in terms of if there's a follow up question or clarification you'd like to make.
00:03:21 ◼ ► But overall, I sort of participated a little bit in this in the Swift UI ones yesterday, and it was really nice. It felt like a really cool combination of a lab and a developer forum where because it is, it's better than the forums because it's moderated in a very sort of structured, concrete way that I think the dev forums can often kind of feel a bit meandering.
00:03:44 ◼ ► And there's a lot there's a much higher noise ratio where there's a lot of people who are just posting like, you know, they have a they run into some issue, and they're just posting their question there. And it's hard to kind of work out is this something specific to their setup?
00:03:56 ◼ ► Or is this an actual question about technology and platforms? Because the digital lounges are kind of heavily moderated. Only the questions that are actually interesting and useful and have broad applicability are being answered.
00:04:10 ◼ ► And so that's there. And then it's kind of like a lab where, you know, the right people, the people who are developing this technology are the people who are answering the questions. And so that was kind of cool and a really cool kind of way for them to even sort of go a step farther than the labs, which are also being offered this week where you can have, you know, essentially, one on one WebEx calls with people at Apple.
00:04:33 ◼ ► But but I would say I think we're recording this in the middle of the week, and hopefully many of you will hear it before the end of the week. So if you're not participating in either of those things, the labs or the digital lounges, I would highly encourage you to give it a try because I found it.
00:04:45 ◼ ► Yeah, I wasn't sure what to expect with the lounges. But I would say I learned a lot just from the you know, the one the q&a they did yesterday. And I think they're planning to do one of those, you know, essentially every day this week.
00:04:56 ◼ ► Yeah, that's really cool. I'm really happy to see them like, taking this online only format and not only just repeating what was last year, which actually worked pretty well, but even like broadening it and adding and adding to it and you know, taking things about previous web, webc that were in person, like the labs, and figuring out like new formats for that new ways to do it new ways to give more people access to Apple employees and and and lab like experiences, because that's that's always been such an incredibly valuable part of the conference.
00:05:25 ◼ ► And yet, it's been so hard for so many people out there to ever have access to that because it because getting to the conference is so expensive, and so limited and how many people can even get in. And so to have that be broadened out to anybody for free. That's really cool that that really is a huge improvement for a pretty big part of the community.
00:05:46 ◼ ► Yeah, no, I'm very bad. Overall, I'm very, very pleased with the structure. And I think if it goes back to being in person again, I will be happy in some ways and sad and others and hope that they even if they went that way that they would do the same kind of thing where they could preserve what was great about the online if they went back to in person, rather than just sort of undoing all of the improvements they've made.
00:06:07 ◼ ► But now it's probably actually worth talking a little bit about actually what was announced and what was, you know, the the themes and overall, I think we've often kind of, you know, you don't need us to go through API by API necessarily, but I think it's often interesting for us to kind of give our broad themes for what we're seeing this year.
00:06:23 ◼ ► And then maybe sort of wrap finish up by talking about some of the sort of the API's that we're most excited about. And I think for me, overall, this felt like a, I was gonna say a light year, but it isn't light in terms of content. There's a whole lot of stuff here.
00:06:38 ◼ ► But there are some years I find where there's the big sweeping announcements, things that create a whole new, like, you know, opportunity in the App Store, see, like widgets last year, or their massive fundamental system overhauls, like when we had iOS seven, where, you know, here's a new UI language that Apple is pushing.
00:06:58 ◼ ► And there's those big kind of sweeping years. And then there's a year like this, where I feel like Apple is, most of the changes felt like they were kind of, Apple is fixing drawbacks or limitations or stumbling blocks on the platform, rather than like introducing wild new things.
00:07:18 ◼ ► And so as an example, it's like, in Swift UI, you know, there's some things that are kind of new and new and additional, but largely it was, you know, those things that you've been annoyed with or struggling with or having to do weird workarounds for, we've built them into the, you know, built them into the API directly.
00:07:35 ◼ ► And there's time and time again, where I feel like there's many of these things that like weird workarounds are going away. And I love that as a year, I think it's it makes my summer a lot more straightforward, that it's not I'm doing a lot of busy work, I'm doing a lot of, you know, deleting stuff that I don't need anymore, or doing things in a much more reliable and straightforward way.
00:07:54 ◼ ► And then there's the things that they did add the major and sort of new things, which I think are primarily like SharePlay seems like the biggest sort of customer facing feature that is a big new API. And then on the developer side, there's all the like async wait stuff.
00:08:10 ◼ ► And then there's those things, it's like either if you're not, if you don't have an app that has a particularly collaborative aspect to it, SharePlay is fantastic, but not necessarily relevant. And then the async wait stuff is super cool, but requires iOS 15. So it's very unlikely that many of us are going to be able to adopt it sort of right away.
00:08:28 ◼ ► And so it's kind of cool to see. And but probably really is going to come into its own in the next, you know, in a year or two from now.
00:08:35 ◼ ► Yeah, this I love years like this, because, you know, even though it might not be super exciting, you know, on the surface level, it's one of those things where as you look through the API diffs, and as you watch the sessions, you start realizing, oh, there's this whole new framework, or this all new capability, like in the underground stuff in your app, like, you know, there's this whole new text engine that replaces core text.
00:08:59 ◼ ► There's like, there's all this, obviously, you know, async await, as you mentioned, and actors and all these like language changes, and all the API changes that are now made possible by that.
00:09:09 ◼ ► There's a lot of this stuff that most customers won't be demanding from you. So in a way you have tons of freedom, like when there's a new giant customer facing feature, customers basically dictate your roadmap from that.
00:09:23 ◼ ► Like, I still I don't have widgets yet. I was working on that actually last week. But I still get one star reviews almost every day, because I don't have widgets yet. And from customers saying, What the heck is this app abandoned because there's no widgets.
00:09:37 ◼ ► This year, I don't think there are any features like that. Like, I don't think there's going to be a thing this year where, where your customers are going to be giving you one star reviews for not adopting some new thing that was just announced, you know, besides shareplay, which, honestly, I think shareplay is going to end up a lot like the iMessage App Store, where it's a really cool thing.
00:09:58 ◼ ► I don't think a lot of people are going to be using it with a lot of apps. It might it might take off with a small number of apps, I don't see it taking off with a big number of apps. So that's not the kind of thing that I think most apps really need to rush to adopt unless you happen to be like, you know, a movie playing app or something.
00:10:14 ◼ ► But otherwise, I don't expect that to become a big thing. Even even for my app, even for overcast, I honestly I don't think I'm going to do it unless there's massive demand that I'm not seeing yet. But that'll probably come later. But anyway, you know, because there's not seemingly any of those, like, customer mandated features that you have to adopt, like a new UI redesign, or like some big feature, like widgets, that gives us a great opportunity this year to kind of back off the the gas pedal on like all the brand new games.
00:10:43 ◼ ► And go back and do features and quality control. You know, it's much like how we've talked here on the show about the seasonality of the Apple developer year, and how normally the springtime is when you get a chance to pay down technical debt, fix bugs, you know, maybe make some features based on the old API's that that you don't need to worry about W2C changing your plans for.
00:11:06 ◼ ► And then the summer comes and it throws everything in the air, and you have to rush to get all the new stuff adopted. Well, this year, you don't seem to really have to do that. So this year, we have, I think, an extended period of the whole next year, where we can just focus on quality tech debt and features that like under our control, not having to, you know, drop everything to adopt Apple's roadmap that they've laid out for us.
00:11:30 ◼ ► And the good news is that because so many of the iOS 15 changes, as usual, you're not going to really be able to use a lot of the a lot of them until you can require iOS 15. That kind of gives you a year, you know, this this this following next year to work through that that adoption rate.
00:11:48 ◼ ► And so, you know, by next summer, we can probably start requiring iOS 15, we can probably start, you know, using a single weight everywhere all over our code and all that stuff, like we can use the new text engine, we can use all these new, you know, there's a lot of UI kit, minor changes here and there.
00:12:03 ◼ ► So, in a way, I'm actually really happy that there's not more giant user facing stuff, because so many people, myself now included, can't require the new OS on day one. And so whatever they announced, we really can't use until a year or two later anyway.
00:12:19 ◼ ► So in this way, since there's nothing really pressuring us to jump all over this new stuff, we can do it more on our own schedules, and focus more on other areas of our app development that that don't require us to drop everything and and, you know, quickly rush to adopt the new hot thing.
00:12:35 ◼ ► Yeah, I suppose it's like, if I was trying to summarize the theme, it feels like it's a year of like, it's a year of better rather than new. Yeah. And so like, I can make my apps better. And there are certain things that are new in that. But overall, it is more that I can, you know, shore things up and take it in like rough, round off rough edges that have been annoying or get rid of a bunch of hacks, potentially that I have in there, or at least, you know, one thing I always even if I can't drop support for old OS is it's like, I can do it.
00:13:04 ◼ ► OS is it's like I can, you know, my weird sort of hacked around implementation can be when I show income be sort of on old, you know, on devices running the old OS is, and I can use the new version for new OS is and kind of is a way for me to adopt like there's, you know, the way the new in Swift UI, there's a whole bunch of these things where I was doing, you know, strange hacks and things around like searching, for example, like they used to be this really complicated thing that you had to interact with you, I get for and there was never really a good answer.
00:13:33 ◼ ► And now it's just a first party thing. And I expect to adopt the first party thing. And, you know, when people are running iOS 15, and also have my old version in there, that works, sort of that has weird edge cases and problems. And I'll just kind of, you know, sort of divert my code that way. But, you know, an increasing proportion of my users will get the better implementation will get the version that works more reliably and is more straightforward. And so it's like a year like that is is always great for me, I really enjoy being able to just sort of figure out how to do that.
00:14:02 ◼ ► And I'm not able to just sort of not feel like I'm tearing things out so much as just like improving them incrementally.
00:14:09 ◼ ► We're brought to you this week by Pingdom from SolarWinds. Today's internet users expect a fast web experience no matter how targeted your marketing content or how sleek your website is, they'll bounce if a page is loading too slowly. With real user monitoring from Pingdom, you can discover how website performance affects your visitors experience. So you can take action before your business is impacted all for as low as $10 a month.
00:14:33 ◼ ► Whether your visitors are dispersed around the world or across browsers, devices and platforms, Pingdom helps you identify bottlenecks, troubleshoot performance and make informed optimizations.
00:14:42 ◼ ► Real user monitoring is an event based solution so it's built for scalability. That means you can monitor millions of page views, not just sample data, all at an affordable price.
00:14:53 ◼ ► Get live site performance visibility today with real user monitoring from Pingdom. Go to Pingdom.com/RelayFM right now for a 30 day free trial with no credit card required.
00:15:06 ◼ ► Then when you're ready to buy, use the code RADAR at checkout, that's code RADAR at checkout, to get an awesome 30% off your first invoice.
00:15:19 ◼ ► So Dave, I'm wondering, the watch actually seemed like kind of a quiet year this year in most ways, except they added this one capability that I think you actually might have a lot of use for.
00:15:33 ◼ ► Yeah, so I mean I think we were transitioning into the things I'm most excited about this year and I think number one is the way they added always on capabilities to the Apple Watch, which is one of those things where it isn't that I can, it's not transformative, it's just this quality of life improvement and I can make my apps so much richer as a result.
00:15:54 ◼ ► So this essentially, if you know what I'm talking about, is on a Series 5 or 6 Apple Watch, when you put your wrist down, currently your app gets this kind of frosted glass look that shows the time and it replaces your, you know, the running app.
00:16:08 ◼ ► And this is the same thing even if you're doing a workout app or something where there's actually information that you want to be able to show a user.
00:16:15 ◼ ► And so, in WatchOS 8 now, you can, A, even if you don't do anything, it'll just continue to show your application just in a dimmed view, like all the time, so you don't have this weird frosted glass thing, which is great.
00:16:30 ◼ ► And then additionally, there's all these APIs and capabilities that I can do to update my UI even when it's dimmed, even when it's running in the background.
00:16:38 ◼ ► So if I have a workout app, I can show metrics and there's a really clever kind of way that they're doing it where you can, the system can throttle the frequency of those and give your app feedback on that in terms of to say, you know, you're allowed to update your UI once a second, maybe, if you're a workout app.
00:16:54 ◼ ► But if you're something that's not quite as time critical, maybe it's you can update your interface once a minute.
00:17:00 ◼ ► And presumably under the hood, it's allowing them to do a lot of battery optimizations and things like that, but it's a really cool thing that now, you know, third party apps can do the thing that first party apps did.
00:17:10 ◼ ► And, you know, it was always one of those things that was really frustrating to me where, you know, my workout apps couldn't do one of these main features that the built-in one did.
00:17:20 ◼ ► And anytime there's that kind of asymmetry, it's always frustrating. So I was super excited to see that.
00:17:24 ◼ ► And I think that is going to be something I spent a huge amount of time this summer working on.
00:17:29 ◼ ► Yeah, I was very happy to see that as well because there's not like, you know, I mean, there's not a lot of people who make watch apps at all.
00:17:34 ◼ ► But even if you do make watch apps, there's not a lot of watch apps that even would need to do this.
00:17:38 ◼ ► But it kind of helps for all of them because it like it gets rid of that, like instead of having that blurred glass look, as you were saying, you can decide how your UI looks in the sleep state.
00:17:50 ◼ ► Even if you don't get a chance to update it very frequently, that's still significantly better than where we've been before.
00:17:55 ◼ ► And it just so happens that if you have a workout app or a background audio app, you and me respectively, then you can update it much more frequently.
00:18:05 ◼ ► And that's, so like if you happen to have one of those two app types, life just got a lot better for you on the Apple Watch Series 5 and 6.
00:18:13 ◼ ► And from a user point of view, it's going to be great too because as a user, that blurred screen over anything, not your clock face or the workout app, that sucks from a user point of view.
00:18:23 ◼ ► And so to have apps, even Apple's own apps now able to not do that and to show some kind of UI in the sleep state, that's going to be great from user point of view.
00:18:34 ◼ ► And in fact, that's actually, to me, that I think is the only thing my customers are going to pressure me for on day one.
00:18:41 ◼ ► Because if you have a workout or audio app on the watch, it's going to be really weird if you don't adopt this really quickly.
00:19:04 ◼ ► So like you have work to do in terms of updating your like play state and timers stuff, but the actual just like not showing the glass anymore, that seems like that's automatic.
00:19:19 ◼ ► This is where it helps a lot to have a watch UI that only updates once a minute anyway.
00:19:32 ◼ ► And I think like it was one of them that's also on the watch that is kind of a silly thing that is probably mostly effects.
00:19:40 ◼ ► But for us, it is huge is you can now refresh your app based on background health refreshing notifications.
00:19:52 ◼ ► And right now I'm doing all kinds of weird tricks and things to try and keep that that count fresh, which is problematic because, you know, I can't I have to throttle it so that I get enough updates throughout the day.
00:20:07 ◼ ► But what I really want to know is if you're out for a walk, I want to update it regularly.
00:20:12 ◼ ► And if you're just, you know, sleeping, I don't want to necessarily burn my updates, but I have no way of knowing which of those states it is.
00:20:18 ◼ ► And so now I have a thing where, you know, I can request background refresh and the system will be able to wake me up at appropriate times when there's new and interesting data.
00:20:26 ◼ ► And so that's something that I'm super excited about, even though it's a very nice use.
00:20:29 ◼ ► But it's like that's one of those things that I've spent huge amounts of time and tremendous number of gray hairs trying to get to work.
00:20:44 ◼ ► I mean, for me, like I think my first thing is, you know, besides all the wonderful new APIs that I will only be able to use once I can require 15.
00:20:59 ◼ ► You know, things like, like, you know, if you can require iOS 15 or if you can manually enable certain features only on iOS 15, but not have your whole app require it.
00:21:09 ◼ ► You can start adding new features, you know, things like I was looking at the the sound classification API, which actually is not new.
00:21:21 ◼ ► I was going to try to obviously do like, you know, see if I can do live music classification just to, you know, adjust my speed algorithms when music is playing.
00:21:30 ◼ ► I looked into this like back in iOS 13 when it first launched and it used way too much power then.
00:21:35 ◼ ► So I don't know if I'll be able to do this, but I'm kind of looking forward to trying it.
00:21:39 ◼ ► There's also some stuff I saw that they talked about in the new app privacy reporting area.
00:21:45 ◼ ► There's a thing that will show you as a user what domain names your apps are connecting to.
00:21:51 ◼ ► And there's if you look at the NSURL request attribution API, this allows you to set certain to basically tag certain requests as the user initiated these requests.
00:22:04 ◼ ► And so if you have, for example, if you're like loading like a web view in your app to a certain page that the user like the user enter this URL or clicked on something that is loading this URL, you can say at the API level, I didn't do this out of my own volition.
00:22:18 ◼ ► The user did this. And I think that classifies things differently in that privacy report.
00:22:22 ◼ ► That's something that we should all probably look at and, you know, enable that in your apps if you need to.
00:22:26 ◼ ► Other than that, I'm actually, oh, and there's the store kit refund API, which might be a little bit more limited than we first thought, but that's probably worth adopting for your iOS 15 users because I think people will start expecting that.
00:22:44 ◼ ► Yeah. And I think that's great. I mean, I think a lot of those things are just, they're nice to have. And the store kit, like they also just essentially rewrote all of store kit to make it very swifty and nice, which is like great to see.
00:22:59 ◼ ► But the reality is it's like the last thing I feel like I want to do is necessarily rewrite any of my store kit code because that's how I felt too.
00:23:05 ◼ ► Like I got it working a few years ago and just don't touch it. Just once it's working, don't touch it.
00:23:12 ◼ ► Exactly. Like the next time I implement store kit, I will absolutely use store kit too. But it's like, it's the kind of code you just never want to mess with because you've got it working.
00:23:21 ◼ ► The money is coming. This is great. The last thing I want to do is just, you know, like change it. And that turns out there's some weird issue and I like lose out on a week's worth of income as a result.
00:23:34 ◼ ► I think the big things for me on iOS and a little bit on watchOS too, but is the some of the improvements in SwiftUI and the one that I think I'm most excited about is the new canvas API.
00:23:44 ◼ ► Which is a really clean way of doing something that I found myself regularly trying to accomplish in SwiftUI.
00:23:52 ◼ ► Which is I want to do some amount of custom drawing inside of my SwiftUI views. And this has always been kind of awkward previously where you could do it with shapes.
00:24:04 ◼ ► And you know, like you make a ZStack and you put shapes in it, you do coloring and you very quickly can become very unperformant.
00:24:12 ◼ ► Or you end up doing something where you like render it into an image. You actually use core graphics, like the old style way of doing it. You render something into a core graphics context, create an image and then just display it in SwiftUI, which is also kind of bad.
00:24:28 ◼ ► And this is a really interesting way to get the performance of the core graphics approach with the sort of built in capabilities and flexibilities of the SwiftUI approach.
00:24:38 ◼ ► And so far in my testing it is really, really good and also is just kind of transformative in a few narrow contexts that I think will make it really compelling for the things that I can do.
00:24:48 ◼ ► So for example, in both widgets in complications, there's a limit on the amount of memory that your SwiftUI view can use before it gets killed by the system.
00:24:58 ◼ ► And so there's a couple of situations in both my widgets and my complications for WidgetSmith and WatchSmith respectively where I've had to pare down what I show or kill an idea that I've had because there was no way for me to get, you know, just put the simple example is in my complication system.
00:25:16 ◼ ► I wanted to show like a day of the week dial, you know, so if you had, if you imagine you just have a dial that has like M O N for Monday, T U E for Tuesday, and it just goes around in a circle and there's an arrow pointing to whichever one is the current one.
00:25:28 ◼ ► It seems like it should be a relatively straightforward thing, but building that in a way that was gotten under the memory limits turned out to be super hard previously, just because of the nature of having to have so many different text instances to do that in a way that curved the text appropriately.
00:25:45 ◼ ► You know, whereas I so far I took, you know, took that same code that I'd been using or you tried to use and failed previously, put it inside of a canvas and I could display it no problem.
00:25:57 ◼ ► And then you just sort of, I start dialing it up and I could show thousands of characters of text in a complication with no problem.
00:26:03 ◼ ► And so it's one of those things where that API to me is just so cool for now this whole world of things that I could start to think about doing.
00:26:10 ◼ ► And similarly in widgets, there's just a really cool thing that Swift UI is now has a super performant version that I can, you can push the limit in.
00:26:20 ◼ ► That's awesome. Yeah, that's Swift UI. It continues to be like, that's, that's the thing that I wish I could use more of.
00:26:27 ◼ ► But I think I'm like, again, it's like how, how long into the future am I going to kick this can of my long awaited redesign?
00:26:33 ◼ ► Cause I wanted, if I'm going to write a redesign UI, I want to do it in Swift UI and it just seems like, like, you know, iOS 13 and 14 versions of Swift UI weren't quite flexible and ready enough for me to do that with a lot of my needs.
00:26:53 ◼ ► You know, things like, you know, they like table lists are now refreshable and searchable and like all this like just little quality of life stuff that, that a lot of apps need if you're going to adopt Swift UI.
00:27:02 ◼ ► Or that let you avoid a bunch of other hacks. And so I'm very much looking forward to when I can use that.
00:27:07 ◼ ► But in the meantime, honestly, you know, I was looking at my stats over the last week and, and I, now I can require iOS 14 pretty safely.
00:27:20 ◼ ► And so I'm now looking forward to one year later adopting all the cool stuff that iOS 14 added.
00:27:26 ◼ ► And that's, I think I'm going to be spending most of my summer doing that, just kind of like living this like one year behind lifestyle, which I realize is what a lot of our listeners out there either choose to do or have to do for their, for their jobs.
00:27:41 ◼ ► And, and, you know, I'll enable some, some of this cool 15 stuff like, you know, piecewise as I can.
00:27:47 ◼ ► And then next year, maybe I can finally require 15 and do all this cool fun, fun new stuff with Swift UI and stuff.
00:27:54 ◼ ► So looking forward to it overall. I think this was a really good year so far, like a really good summer so far with the little, little information we have so far.
00:28:02 ◼ ► And I'm looking forward to just having a quality and feature year and a little bit of new stuff, but not a ton of new stuff.
00:28:11 ◼ ► Yeah, exactly. And I think I'm very much the same way. It's nice to have enough to keep me busy, have a lot of interesting opportunities, but it's not a year that I feel like I'm going to be totally swamped and overwhelmed that have to, you know, and I can be selective in which apps get updated.
00:28:26 ◼ ► You know, many of my apps, I think will need very little update and very little change to be, you know, compatible with iOS 15. And so far, it seems also like it's a very much a non breaking year where there isn't a, you know, I went, one of the first things I always do is I read, you know, recompile all my apps on the new OS and all of them seem to have, you know, very few deprecation warnings, very few weird compatibility issues or crashing on launch or anything like that.
00:28:52 ◼ ► Like, overall, it seems like it's a very stable, good year. And so there's not a lot of busy work that I'm going to have to do. And so overall, it's just exciting. And it's fun. And, you know, the conference itself has been going really well. And I look forward to the next few days of, you know, watching sessions in them as soon as they come out being in the digital lounges, doing my labs and kind of enjoying the fun of the week where there's a bit more buzz among the community and a lot of just kind of fun solidarity and community that, you know, is always a highlight for me.
00:29:27 ◼ ► I think they would be. So if I really wanted to, I could go and do that or I could go and, you know, find a fruit smoothie that I could have in the morning and...
00:29:46 ◼ ► This is our best idea yet. All right. Thanks for listening, everybody. And we'll talk to you in two weeks.