Under the Radar

136: Freshly Cleared Decks


00:00:00   Welcome to Under the Radar, a show about independent iOS app development.

00:00:04   I'm Marco Arment.

00:00:05   And I'm David Smith.

00:00:06   Under the Radar is never longer than 30 minutes, so let's get started.

00:00:10   So we are back from WWDC after a full week of all manner of things in terms of meeting

00:00:18   people, learning new things, and unfortunately I don't think either of us have quite had

00:00:22   enough time to dig out from that experience and to really get down to the nitty-gritty

00:00:26   details around the technical announcements that were announced.

00:00:30   I think there's a lot of interesting topics and useful things for us to discuss that came

00:00:35   out of the technical side.

00:00:37   I think what we decided is that it made sense.

00:00:38   Rather than diving into those this week, we're going to talk about the more technical announcements

00:00:43   and things that came up in the following weeks to the show.

00:00:46   But for today, I think there's many things that we can talk about, though, that are not

00:00:50   specifically detailed into low-level API changes or those types of things.

00:00:56   And I think the first one that I think is an interesting one to talk about is just the

00:01:01   high-level point around, so now we have all of these changes, now we know finally what

00:01:07   is going to be coming for us this summer.

00:01:10   It's sort of a little bit of a discussion around release planning and working out what

00:01:13   we ship, when we ship it, and how that process goes.

00:01:19   As for years, I've always followed this process where I do a bunch of updates in the fall

00:01:25   with the previous iOS update.

00:01:28   That sort of fall through spring period is typically a very busy, busy, busy time, lots

00:01:32   of updates.

00:01:34   And then around mid-spring, it starts to get really awkward because you start to think,

00:01:38   "Well, is it worth--how much do I want to work on a feature that might be Sherlock'd

00:01:42   or that might be fundamentally changed technically, or new opportunities might appear that Monday

00:01:48   at WWDC?"

00:01:49   And so, in general, in the back of my mind, as I get closer to WWDC, I start working less

00:01:54   on more adventurous features and tend to focus mostly on things like bug fix updates and

00:02:00   those types of changes.

00:02:02   And so it's like, "Gee, that Monday at WWDC, in a large way, just completely dictates what

00:02:08   my summer is going to be like."

00:02:10   And now we have that information, and now we can kind of work out what we're going to

00:02:13   do.

00:02:14   And I'm curious, Marco, what are you thinking right now in terms of the way to structure

00:02:18   this?

00:02:19   Do you have a lot of updates you're just going to keep working on for your old things, or

00:02:21   just drop everything and focus on updates that are going to appear this fall?

00:02:27   I like to think it's the latter in practice.

00:02:28   That's a little bit of the former two.

00:02:31   We talked in the past about how the Apple development year kind of has seasons to it,

00:02:37   and that the summer is kind of like the big reset.

00:02:40   And like you were just saying, typically the best way for us to spend our springtime, which

00:02:45   is kind of like the calm before the storm of WWDC, is to basically clear the decks.

00:02:51   Basically get your house in order, get bug fixes out there, make your app as stable as

00:02:58   possible in the existing branch or version of it.

00:03:01   So that way, when WWDC happens, you have a clear plate, and you can start working on

00:03:08   the new stuff.

00:03:09   You can start taking advantage of the new stuff.

00:03:11   And that's mostly what I did this past spring.

00:03:13   I was adding basically refinement features to Overcast.

00:03:16   I was doing some security improvements and privacy stuff with GDPR.

00:03:21   But for the most part, I was doing pretty much an entire springtime of minor bug fix

00:03:27   updates.

00:03:28   And that has worked out pretty well.

00:03:30   I have one in review right now that I think should probably, hopefully, if I've done my

00:03:34   job right, should be my last update until iOS 12.

00:03:39   That might not happen.

00:03:40   If I have to fix a bug sometime later in the summer, then I'll do that.

00:03:42   But hopefully, this is it for this branch.

00:03:44   Because what I want to do, and what I have already started a little bit doing, is every

00:03:50   time we get our beta 1 and our SDK beta 1, I start a new branch of the app in Git.

00:03:57   And this is my iOS 12 branch.

00:03:59   And I set the build target to iOS 12 only.

00:04:04   And I see all the new warnings and deprecations and everything that I have to deal with.

00:04:09   Because every time you get a new iOS version, there's a whole list of stuff that gets added

00:04:15   to your to-do list.

00:04:16   And it's kind of hard to know where to start, how to prioritize it.

00:04:21   And it's difficult, because some of the more fun stuff, like, hey, there's a new API I

00:04:25   want to use.

00:04:26   Or my app can now do this thing.

00:04:27   Or I can replace a lot of my own hacky code with this new system-provided way to do this.

00:04:33   And a lot of that stuff is really tempting to do first.

00:04:38   But in reality, what I usually need to do first is fix everything that breaks with the

00:04:43   new iOS version.

00:04:44   And so there's different degrees of what it means to be broken.

00:04:49   A deprecation is kind of a future promise that a thing will break.

00:04:54   And so that is something that you should fix pretty soon in the summertime.

00:04:58   But it doesn't necessarily have to be week one of working on your new thing.

00:05:03   New compiler warnings are usually a big pain in the butt, but usually things that you should

00:05:07   deal with.

00:05:08   Again, pretty soon.

00:05:09   It doesn't need to necessarily be day one, but you should really put it up there pretty

00:05:13   high on the list.

00:05:15   And then every time the OS changes, and every time especially you require the newest version

00:05:19   only, which basically disables a bunch of compatibility modes in iOS, then you might

00:05:26   have bugs in your app.

00:05:28   Especially minor visual bugs with things like, oh, they changed the way table views worked

00:05:31   a little bit, or something like that.

00:05:32   And so you might now have things that worked fine in previous versions, but in the current

00:05:36   version are broken.

00:05:38   And so my priority order of how I tackle new things when we get our first betas, assuming

00:05:44   my app is already in the stable state that I hopefully left it at for the main public

00:05:49   branch of it, basically job number one is find things that have broken and fix them.

00:05:56   Job number two is fix all the new warnings and update the project settings and everything

00:06:00   else.

00:06:01   And job number three is fix all the deprecated stuff that is newly deprecated in the app.

00:06:07   And so that's basically what I've been doing.

00:06:09   And then unfortunately, I really don't feel very good tackling the new fun APIs until

00:06:15   all three of those things are done.

00:06:17   So usually it's a few weeks in, at least before I try anything new.

00:06:19   And this is not that efficient for certain things.

00:06:23   It's kind of hard to motivate yourself after the fun of WWDC week to then say, all right,

00:06:29   let's go do some boring maintenance work on my app so I can fix all these warnings and

00:06:33   deprecations because that stuff usually is not that fun.

00:06:37   But I don't like having that hanging over me forever.

00:06:41   And I find it hard to enjoy the new stuff unless I have a clear plate.

00:06:48   And I feel like you can get the app to a low bug state before the conference.

00:06:55   But once you run your app on the new beta, it's like your plate gets piled on top of

00:07:00   -- you get a giant pile of all these warnings and maintenance things that you just have

00:07:05   to deal with.

00:07:07   And so to me, my plate is no longer clear.

00:07:10   And so I can't enjoy the new stuff until my plate is re-cleared of all that maintenance

00:07:14   stuff.

00:07:15   And in certain years, the OSs we get are better or worse at that than others.

00:07:21   Like certain years, you have more maintenance stuff or it's harder to fix or it takes more

00:07:25   work to fix or it's something that could be a very long process like a design refresh.

00:07:31   That's usually more complex to update your app for like an iOS 7 kind of thing.

00:07:37   That's usually more complex than, oh, they deprecated UI WebView, stuff like that.

00:07:42   So anyway, that's kind of what I'm doing is dealing with all those deprecations and everything.

00:07:47   I don't think this year is too bad of a year for that.

00:07:50   I think we got off pretty easy.

00:07:52   So I do hope to get into the newer stuff probably by next week.

00:07:57   But we'll see.

00:07:58   Those deprecations and things can be deceptively time consuming.

00:08:02   >> Yeah.

00:08:03   I mean, the thing that I always struggle with with that, and in general, I think I follow

00:08:06   a similar pattern to you, but I always kind of -- it feels awkward to largely put the

00:08:12   app from a user-facing perspective on the shelf and to essentially enter into a period

00:08:21   where other than significant bug fixes, there'll be no user-facing activity for a couple of

00:08:28   months potentially, until sometime in mid-September probably.

00:08:33   That always feels like kind of -- it's a strange and it's a missed opportunity in a way that

00:08:37   for three months of the year, there's no new updates, there's no new interest.

00:08:42   The app is what it is in the store.

00:08:44   And obviously, I have enough apps that many of my apps go three months without getting

00:08:48   updated normally.

00:08:50   So it's not like it's a completely outrageous thing.

00:08:52   But it is always -- one thing that I just wanted to mention is slightly awkward about

00:08:56   this time of year.

00:08:57   And I think maybe it's an interesting thing that if you're working on an app that doesn't

00:09:01   have a lot of new iOS 12 stuff in it, or you don't see much this fall that you can be pushing

00:09:07   towards, it is potentially an opportunity to have a period of time when you may have

00:09:12   a easier time getting Apple or just general user attention for an app update, just because

00:09:19   it is likely a quieter time more generally.

00:09:21   But I think for my own apps, that's largely what I'm doing.

00:09:23   I have a couple of bug fixes and minor feature changes that I expect to do, and then it'll

00:09:28   be this sort of -- yeah, there's this sort of -- you have this pivot where you have to

00:09:30   change as you head towards iOS 12.

00:09:33   And in general, that kind of managing two concurrent development branches or even just

00:09:40   keeping track in your head of what's the new stuff and what's the old stuff just gets really

00:09:44   complicated.

00:09:45   So literally just sort of diving into it and committing to it and only kind of going back

00:09:50   to the old branch as needed for small bug fixes or things is probably the sane way to

00:09:55   do it.

00:09:57   But it is definitely kind of an awkward thing and something that I kind of wish I had a

00:10:02   slightly better answer to, but I think the reality is it's fine.

00:10:06   Most people won't probably notice.

00:10:08   And having a strong showing this fall is ultimately probably more important for most apps.

00:10:16   I think that is definitely a time when there's a lot of user interest.

00:10:19   There's a time when there's a lot of press interest and Apple interest in adopting the

00:10:23   new technologies and putting yourself onto the radar for all those things in terms of

00:10:29   all the different lists and things that come up is I think a very compelling and useful

00:10:34   time.

00:10:35   But it is a little tricky.

00:10:36   And honestly the hardest part for me at this point is I still don't think I fully have

00:10:43   my list of all of the things I want to do this summer to my various apps.

00:10:49   And I think it's always so hard to know what to prioritize, to know what things are actually

00:10:55   going to be a big deal.

00:10:57   Say we get something like Siri or shortcuts.

00:10:59   Ostensibly, it seems like a big deal that every app that I'm working on should adopt

00:11:03   it.

00:11:04   But at the same time, there's always in the back of my head, is this going to be one of

00:11:08   these really big new compelling things or is it going to turn out more like iMessage

00:11:13   apps or something, which was fine.

00:11:15   It's exactly the example I was thinking of in my head as you were reading that sentence.

00:11:19   I'm like, "Oh, I hope he says iMessage apps."

00:11:21   Yeah.

00:11:22   You know, where it's like iMessage apps kind of fizzled out.

00:11:26   I think stickers became a bigger thing.

00:11:28   But actually putting rich functionality in iMessage didn't really happen.

00:11:32   And is Siri shortcuts going to be one of those or, you know, like, but for example, today

00:11:36   with to debut widgets, I would say is a feature that I'm very glad I adopted, I think is widely

00:11:41   used, and especially if anything has become more and more important.

00:11:44   So like adopting them in day one was important.

00:11:47   And I think finding from a release planning perspective, that balance of like, is this

00:11:50   actually going to be the new hotness?

00:11:52   Or is this just kind of one of these features that's going to appear and then fizzle or

00:11:56   appear and then become something different down the road, I think is really hard.

00:12:01   And I think at a certain point, we just kind of have to guess.

00:12:04   And we just kind of go with our gut of what we think we're going to be we're interested

00:12:08   in working on.

00:12:09   Do we have a, you know, I think do we have a thing I've learned many times the hard way

00:12:13   is do I feel like I have something that is actually compelling for this feature?

00:12:19   Or am I just trying to find a way to shoehorn it into my app?

00:12:23   And if I'm, you know, I think I'm much more reticent to do a shoehorn shoehorning feature

00:12:27   now than I once was where I was just every new feature, I'm going to try and adopt it

00:12:32   and just hope that in aggregate that kind of works for me.

00:12:35   I think now I'm much more circumspect about, you know, is this compelling?

00:12:39   Is this actually going to make my app better?

00:12:41   If it is, I'll do my best to make it ready, you know, day one, take advantage of all of

00:12:44   those types of things.

00:12:45   But I'd be much more thoughtful than I used to be for sure.

00:12:50   We are brought to you this week by Linode.

00:12:52   With Linode, you have access to a powerful suite of hosting options with prices starting

00:12:57   at just $5 a month.

00:12:58   You can be up and running with your own virtual server in the Linode cloud in under a minute.

00:13:04   Linode offers industry leading performance with native enterprise SSD storage, a 40 gigabit

00:13:10   network, and Intel Xeon E5 processors.

00:13:13   Linode now has 10 data centers spread across the world.

00:13:16   So you can serve your customers even quicker than before.

00:13:19   And if you know if you're a programmer listening to the show, which you probably are, they

00:13:22   even have an API lets you easily automate tasks or develop custom applications in the cloud.

00:13:27   And all this is manageable via their awesome web interface or the command line.

00:13:31   All of the pricing tiers feature hourly billing with a monthly cap on all plans and add on

00:13:36   services like backups and node balancers.

00:13:39   So Linode has fantastic pricing options available.

00:13:43   Their plans are one gig of RAM for just $5 a month.

00:13:47   And they offer lots of other plans above that and even specialized things like high memory

00:13:51   plans that those start with 16 gigs of RAM and go up from there.

00:13:55   As a listener of this show, if you sign up at linode.com/radar, you will not only be

00:13:59   supporting us, which we will definitely appreciate, but you will also get $20 towards any Linode

00:14:05   plan.

00:14:06   On the one gig plan, that could be four free months.

00:14:08   And with a seven day money back guarantee, there is nothing to lose.

00:14:11   So go to linode.com/radar.

00:14:14   This is the host that David and I use.

00:14:16   It's great.

00:14:17   I've been there a long time and I'm very, very happy there.

00:14:19   I highly recommend them.

00:14:21   Once again, go to linode.com/radar.

00:14:23   You will learn more there.

00:14:24   You can sign up there and you can take advantage of that $20 credit or use promo code radar2018

00:14:30   at checkout.

00:14:31   Thank you so much to Linode for supporting the show.

00:14:35   So the other sort of wrench that was thrown into our release planning sort of thoughts

00:14:40   this year is the addition of I think what is generally being referred to as the marzipan

00:14:46   UI kit on the Mac.

00:14:48   It doesn't actually give the Apple didn't give it a name, which just creates more confusion,

00:14:53   I think.

00:14:54   But anyway, the sneak peek.

00:14:55   Well, I'll just keep calling it marzipan and Apple will keep pretending like we're not

00:14:57   calling it that.

00:14:58   So the ability to run UI kit apps or to bring UI kit functionality to the Mac in Mojave is

00:15:09   a very interesting thing from a release planning perspective.

00:15:13   I think it's interesting, obviously, in that this isn't this year.

00:15:16   This is something that they're talking about releasing sometime next year.

00:15:20   That's I mean, it could be WDC.

00:15:23   It could be before that could be after that, but sometime next year, this is going to be

00:15:26   coming out.

00:15:27   And I think from a release planning perspective, that's for me is kind of interesting because

00:15:32   it's a new platform that ostensibly is something that we're going to be able to take advantage

00:15:36   of with relatively little work.

00:15:38   And in many ways, it seems like these apps are if you have a compelling, strong iPad

00:15:45   app that exists in your application, that the effort to take that and turn that into

00:15:52   a Mac app is suddenly potentially going to be not necessarily like click a button and

00:15:57   off it goes, but a dramatically reduced scope of work.

00:16:02   Or honestly, in some ways, even an iPhone app.

00:16:04   And I imagine there are certainly some Mac apps that I have.

00:16:08   I mean, I'm looking at my audio recorder right now, which is a fully native Mac app, which

00:16:13   is piezo by rogue Amoeba, and it is an iPhone size block on the screen that doesn't change

00:16:21   its size.

00:16:22   So even there, like you could have an app that would just run naturally on the Mac,

00:16:26   give it irrespective of size.

00:16:27   But I think for me, especially I think about, are there things that I want to be doing this

00:16:31   year to beef up my iPad app and get it ready for UI kit on the Mac whenever that comes?

00:16:39   Or conversely, it's like if I was thinking, I mean, I wasn't personally, but I think in

00:16:42   the back of my mind, overcast on the Mac is always this open question.

00:16:46   Like it's this funny place of if any work you were going to do on that now probably

00:16:50   wouldn't make sense to do now, other than the work potentially of getting your UI kit

00:16:54   code base, you know, flexible and ready for a big wide screen.

00:16:59   Yeah, I mean, this to me, marzipan is probably the most interesting, like long term planning

00:17:05   aspect that we learned this year.

00:17:07   You know, like, you know, like you mentioned, you know, bringing overcast to it.

00:17:10   I would love to do that right now.

00:17:12   I'm pretty sure it won't work because I use UI WebView and UI WebView is deprecated.

00:17:17   And according to Steve Trout and Smith's digging through marzipan and the work of a lot of

00:17:21   other people who are working on it as well, it seems like what is included right now in

00:17:27   that runtime is only the like, you know, mainstream and non deprecated functionality.

00:17:33   Everything like anything that's deprecated now and UI kit is gone in marzipan.

00:17:37   So that's one of the reasons why I want to get off of deprecated stuff pretty soon.

00:17:42   And actually the very first thing I what I was doing yesterday was converting UI WebView

00:17:46   to WK WebView, which surprisingly not easy given how much I abuse UI WebView.

00:17:50   It's doable.

00:17:51   I finally figured it out.

00:17:52   It also does not help that I'm doing that conversion in Swift, which just slows me down

00:17:57   tremendously because I'm still very, very new to Swift.

00:17:59   But I think this is the time to do it.

00:18:01   But anyway, getting back to, you know, more general things with marzipan, I think what

00:18:06   this shows you is, you know, this is really valuable for Apple to have told us about this,

00:18:11   even though they have nothing to let us use yet with it, because this lets us plan things

00:18:17   that like this is why businesses like when their vendors and suppliers and, you know,

00:18:22   things give them roadmaps.

00:18:24   It helps you plan important decisions.

00:18:26   There's a lot of value to that.

00:18:27   And we're not used to having a roadmap in Apple land.

00:18:29   And it's really nice that right now we have one for this.

00:18:32   Not a very detailed one, but we have one nonetheless.

00:18:35   And so what this tells me as an iOS developer is, first of all, if I was thinking about

00:18:42   maybe undertaking the massive project of writing a Mac app from scratch, which I wasn't, but

00:18:46   just for the sake of argument, suppose I was, maybe I would cancel that ambition and just

00:18:51   say, all right, you know what, I don't need to write my own AppKit.

00:18:54   Since I already have this giant iOS code base, I don't know AppKit very well.

00:18:58   And I don't have any existing customers using it.

00:19:01   So I might as well not do it at all now.

00:19:04   But also, if you read the tea leaves a little bit with the Marzipan stuff, with Mark Gurman's

00:19:11   rumored iOS redesign next year, John Gruber's rumored new UI declarative framework, it would

00:19:19   make a lot of sense to release all those things at the same time and for that same time to

00:19:24   be next summer.

00:19:26   That would make a whole lot of sense for a lot of reasons.

00:19:28   So not only is Marzipan a big looming thing on the one year from now horizon, but it also

00:19:36   seems likely that we might also get a UI redesign and possibly a new UI framework.

00:19:42   So what this tells me is this year is not a good time to write a bunch of UI code, to

00:19:50   invest heavily in UI redesigns or new UI or lots of UI coding.

00:19:58   This is probably a good time to hold off on that.

00:20:01   So I use that inference and the knowledge of Marzipan, I use that to prioritize what

00:20:08   I should be working on instead.

00:20:11   So for me, that is under the hood stuff, back end improvements, server improvements in the

00:20:16   app, audio engine improvements, things like obviously bug fixes, adopting new APIs, doing

00:20:23   things like WKWebView, replacing that kind of stuff.

00:20:27   There's a lot I need to do with the audio engine to make it compatible with AirPlay 2,

00:20:30   which now seems increasingly important.

00:20:33   And there's a lot I have to do on the watch because I love all the developers who we talk

00:20:38   to who are like, "Yeah, you know, I don't really have anything to do this summer.

00:20:40   They didn't really give me much."

00:20:41   I'm like, "You don't make a podcast app."

00:20:43   Because if you make a podcast app, you have a lot to do this summer actually, which is

00:20:49   great.

00:20:50   It's a great problem for me to have.

00:20:51   Anyway, so because of the information we have and the rumors that point to additional supporting

00:21:00   things, I'm choosing to spend this year on under the hood stuff.

00:21:06   And there will be a few features here and there or a few design tweaks here or there,

00:21:10   but ultimately I don't think it's very smart for me to spend this year doing a lot of design

00:21:16   and UI coding.

00:21:17   And there's so many under the hood things that could definitely occupy me for a year

00:21:22   that require either no UI or not that much UI.

00:21:26   Even things like search, people have asked me for search since day one.

00:21:30   Very, very common feature.

00:21:31   And there's all sorts of little nice to have features like that that people have asked

00:21:35   me for over the years that I just have never really had the time to do because I've been

00:21:38   keeping up with the UI bandwagon.

00:21:41   And so when I take a year off the UI bandwagon to kind of give that a pass and say, "I'm

00:21:46   gonna work on other things this year besides major UI work," that I think will free me

00:21:52   up to do a lot of really cool stuff.

00:21:54   - Yeah, and I think what's really interesting about what you just said is how all of these

00:21:59   things combine into one another.

00:22:03   Or starting with the starting point of that UI kit is coming to the Mac and the other

00:22:09   things that we've heard about, and then you end up with this is the year of the behind

00:22:13   the scenes rather than the visual design, potentially.

00:22:17   I think that's a really interesting approach.

00:22:22   I think it's very smart to try and draw those kinds of broader inferences because one thing

00:22:26   I will say that Apple is usually very good about is they leave lots of clues.

00:22:31   They're actually a very secretive company.

00:22:35   But I think as well, I would love it if they were a bit more obvious with these types of

00:22:39   things.

00:22:40   There are often these clues in breadcrumbs that lead you forward into the future.

00:22:47   And I think if you pick up on those, maybe the most obvious examples are the things that

00:22:51   they started doing around flexible screen sizes.

00:22:55   Or last year we had the safe area inset stuff, and then, wow, look at this, we have an iPhone

00:23:00   10 where suddenly there's a need for safe area insets.

00:23:05   And I think there's all these...

00:23:07   It's good you can get carried away trying to read the tea leaves a little too much,

00:23:11   but I think there's definitely something in this that there's going to be a more fundamental

00:23:17   change to the visual side of our applications probably sometime next year.

00:23:23   And so doing major work this year is probably unwise.

00:23:27   It is kind of weird to me, though, that in the back of my mind, it's like a year is a

00:23:31   really long time.

00:23:34   For most of our apps, they've only been around for a few years, and so a year is a pretty

00:23:40   long time to have that kind of thing looming over us that maybe we don't want to do this,

00:23:46   or maybe we want to make changes accordingly.

00:23:49   And so I struggle a little bit with that, that I still want to feel like I can keep

00:23:54   driving forward and keep making the app better or making it visually interesting or those

00:23:58   types of changes that I don't want to feel like my hands are totally tied as a result.

00:24:02   But at the same time, I think it is certainly true that it's not a year for, "Hey, I'm going

00:24:08   to do this complete visual rebuild," or those types of things, where that may be forced

00:24:13   upon us, or at least we may have the opportunity next summer, maybe this is the positive way

00:24:17   to look at it, to dramatically change and improve the way our app is structured visually,

00:24:23   and so we can take advantage of that at that point.

00:24:28   But yes, it's interesting to think, too, I do like sometimes where having a constraint

00:24:34   of saying, "Well, I'm not going to focus on visual design much this year.

00:24:38   I'm going to focus on behind the scenes or performance."

00:24:40   I mean, that's what Apple has themselves explicitly said.

00:24:43   iOS 12 is all about performance, and so taking a good part of the summer or this fall and

00:24:50   saying, "I'm just going to sit down in the profiler and just see if I can squeeze more

00:24:55   performance out of my app and just have that be a focus and have that be something that

00:24:59   isn't flashy, potentially.

00:25:01   It isn't something that's going to garner a lot of attention in an overt way, but it's

00:25:06   certainly something that you would hope in aggregate will gradually improve the user's

00:25:12   experience of your application, and that gradual improvement will ultimately lead to more satisfied

00:25:16   customers, which is good for business."

00:25:19   And so in some ways, I like having that constraint to say, "It's so easy."

00:25:23   I think sometimes to just do that kind of visual work because it's fun, or at least

00:25:30   it's cognitively interesting.

00:25:32   And so having a constraint to say, "You know, probably not this year is the best time.

00:25:38   Only do the essentials.

00:25:39   Only do the things that really you can't get away with otherwise."

00:25:42   And then beyond that, just leave it be and focus on behind the scenes changes, and hopefully

00:25:50   that's better.

00:25:51   - And to kind of close out this thought, I think a really good way to look at this year

00:25:56   is, I mentioned earlier about the seasonality of Apple's development year and how springtime

00:26:03   is, when you know something big is coming in June, but you don't know what it is and

00:26:08   you kind of have to wait around, that's when you do a lot of your refinement features.

00:26:12   And honestly, that's when I've done some of my most interesting features and some of my

00:26:15   most successful features because I didn't have, like I had done all of my catching up

00:26:21   with the Apple train for the year.

00:26:24   I had nothing else to do for the new OS, so I could focus on new user-facing things that

00:26:29   were just nicer or that were quality of life kind of improvements.

00:26:33   In a way, since there isn't that much for most apps to do this year with the new stuff,

00:26:38   this whole year could basically be like the spring, just a year-long spring, which it

00:26:45   could really result in really nice improvements for everyone's apps because there isn't that

00:26:50   much Apple is forcing us to do this year.

00:26:53   We can spend way more of the year on those refinements and on new user-facing features

00:26:59   and things like that rather than having to keep up with the Apple treadmill of, "Okay,

00:27:05   new design, new API, new language, new technology, new stack."

00:27:08   That has kind of paused for a year, at least as we see it.

00:27:13   So it's kind of nice to actually do this.

00:27:14   It's also, you know, it's a good time for, like this is one of the reasons I'm diving

00:27:17   into Swift now because the reason I didn't do it in the past was I couldn't keep up.

00:27:24   Like I had too much to do and learning a whole new language would just slow me down too much.

00:27:29   This year, I finally have that time because at this point, not knowing Swift should be

00:27:35   considered technical debt because we know it's only a matter of time before there's

00:27:41   Swift-only frameworks and Swift-only platforms maybe.

00:27:45   We really need to know that.

00:27:46   So this is a good time for me to do something that will slow me down but will pay off technical

00:27:53   debt and pave the way for future efficiency.

00:27:57   And if everyone's doing stuff like that this year, that's pretty good for the apps and

00:28:01   pretty good for us as a whole.

00:28:02   Yeah.

00:28:03   And ultimately, I think it will probably end up in a really good place as a platform.

00:28:09   It's good, I think, that Apple is doing it.

00:28:10   I mean, for all accounts, it's bearing dividends for them that running iOS 12 on older devices

00:28:16   works a lot better now.

00:28:18   And if we can be part of that movement or that effort in our own apps, I think that

00:28:24   that ultimately is going to help everybody.

00:28:26   By the way, I do have one question.

00:28:28   Have you installed Beta 1 on your main phone, which you told everybody not to do?

00:28:31   I have not, no.

00:28:32   I have a testing device that is explicitly for that purpose.

00:28:36   I will say the call of the beta is strong this year.

00:28:38   Everyone who has done it, I've had very few regrets.

00:28:41   I've heard many people who—very few people who regret it, but I've held strong.

00:28:44   Maybe Beta 2, maybe Beta 3, but Beta 1, no go.

00:28:48   I'll tell you what, I might have done it.

00:28:51   You may have done it.

00:28:52   And if I would have done it, I can possibly maybe theoretically report that it's possibly

00:28:58   maybe super stable and totally fine.

00:29:00   But I couldn't recommend anybody else do it.

00:29:03   Of course not.

00:29:04   Not that I would have done it or did it.

00:29:05   No.

00:29:06   I mean, you'd never think of that.

00:29:07   That would be a terrible idea.

00:29:08   And especially, and specifically against the advice that you gave to our listeners on the

00:29:12   show, and so I would be kind of irresponsible to go against your own advice.

00:29:17   Exactly.

00:29:18   But had I done that, it might have ended up being even more stable than iOS 11.

00:29:23   Anyway, thank you for listening, everybody.

00:29:25   I'll talk to you next week.

00:29:27   Bye.

00:29:27   [BLANK_AUDIO]