PodSearch

Under the Radar

208: The Road Ahead

 

00:00:00 ◼   ► Welcome to Under the Radar, a show about independent

00:00:03 ◼   ► iOS app development.

00:00:04 ◼   ► I'm Marco Arment.

00:00:06 ◼   ► - And I'm David Smith.

00:00:07 ◼   ► Under the Radar is never longer than 30 minutes,

00:00:08 ◼   ► so let's get started.

00:00:10 ◼   ► - So I have a wonderful update, Dave.

00:00:13 ◼   ► A few episodes ago, I forget exactly how long it was,

00:00:17 ◼   ► I had asked about advice about what to do

00:00:19 ◼   ► when I was modernizing my app code base into Swift,

00:00:24 ◼   ► and I needed to rewrite my watch app.

00:00:27 ◼   ► I had asked you whether I should do it in Swift UI,

00:00:30 ◼   ► which would involve a complete rewrite,

00:00:32 ◼   ► throwing away a whole bunch of UI code,

00:00:34 ◼   ► but UI code that was for WatchKit, which I hate,

00:00:38 ◼   ► and that was old and crusty,

00:00:39 ◼   ► and it would be good to get rid of,

00:00:41 ◼   ► and I am happy to report that I took your advice

00:00:45 ◼   ► at the time, which was, yes, go ahead

00:00:47 ◼   ► and rewrite it in Swift UI,

00:00:49 ◼   ► and as of roughly today, it's almost done.

00:00:54 ◼   ► I have almost the entire core of it all done,

00:00:57 ◼   ► all rewritten, all working, I'm using it now on my watch.

00:01:00 ◼   ► Yesterday, I got local audio playback working again.

00:01:03 ◼   ► Everything's integrated, everything is using

00:01:05 ◼   ► the same sync engine as the desktop,

00:01:07 ◼   ► or as the, wow, as the iOS version.

00:01:12 ◼   ► - Which is on the desktop now.

00:01:13 ◼   ► - Yes, it is, it's on my desktop at least.

00:01:15 ◼   ► That's the story of another day, though.

00:01:18 ◼   ► So happy to report that that is almost complete,

00:01:23 ◼   ► and I actually, I should have it in beta

00:01:24 ◼   ► in the next couple days, and it's gone very well.

00:01:29 ◼   ► There are things about Swift UI

00:01:31 ◼   ► that are incredibly rough edges, incredibly,

00:01:34 ◼   ► and there is so much about it that is undocumented

00:01:37 ◼   ► or poorly documented, and there's so much about it

00:01:40 ◼   ► that is confusing and a little bit ugly

00:01:42 ◼   ► and a little bit hacky, but overall,

00:01:47 ◼   ► this project has been a success,

00:01:49 ◼   ► and overall, I think I might like Swift UI.

00:01:54 ◼   ► It's still a bit of a might there,

00:01:57 ◼   ► 'cause there are so many weird situations.

00:02:00 ◼   ► Once you leave the beaten path of what would look good

00:02:05 ◼   ► on a conference slide and start having real world needs,

00:02:09 ◼   ► like, okay, well, what happens when this data has to change

00:02:12 ◼   ► as a result of a sync action,

00:02:14 ◼   ► or how do you persist this data,

00:02:15 ◼   ► or how do you react to this strange situation

00:02:19 ◼   ► that you have in real life all the time?

00:02:21 ◼   ► Swift UI has still a lot of rough edges

00:02:23 ◼   ► and a lot of hackiness around a lot of those conditions,

00:02:25 ◼   ► but I'm happy to report that if you are willing

00:02:29 ◼   ► to drop a lot of your, quote, requirements

00:02:32 ◼   ► of certain custom behaviors or special appearances,

00:02:37 ◼   ► and if you're willing to just kinda let Swift UI

00:02:39 ◼   ► be Swift UI and kinda come to it on its own terms,

00:02:42 ◼   ► if you're willing to rewrite a whole lot

00:02:44 ◼   ► of your data layer stuff to adopt

00:02:46 ◼   ► the new observable object protocols and stuff like that,

00:02:49 ◼   ► then it actually can be pretty cool,

00:02:53 ◼   ► and I actually have been able to do quite a lot of UI work

00:02:56 ◼   ► pretty quickly, and there's parts of it

00:03:00 ◼   ► that go very slowly, but overall,

00:03:03 ◼   ► I've actually been fairly happy with it

00:03:05 ◼   ► in the context of a watch app

00:03:08 ◼   ► that can require mostly the latest OS.

00:03:12 ◼   ► In other contexts, like, I haven't brought any of it

00:03:16 ◼   ► to the phone yet.

00:03:17 ◼   ► I did, actually, over the break,

00:03:19 ◼   ► I actually did very quickly write a, like,

00:03:21 ◼   ► throwaway single-screen coffee calculator app

00:03:25 ◼   ► entirely in Swift UI for iOS only.

00:03:28 ◼   ► It's not released, so please don't ask,

00:03:30 ◼   ► but it might someday be.

00:03:32 ◼   ► It's actually easier to put something in the App Store

00:03:35 ◼   ► rather than trying to, like, have this app on your phone

00:03:38 ◼   ► that you launched four times a year

00:03:41 ◼   ► and have that actually work without, like,

00:03:42 ◼   ► something expiring, but, so it actually might release

00:03:45 ◼   ► to the App Store, but anyway, overall,

00:03:47 ◼   ► I'm very happy with Swift UI on the watch,

00:03:51 ◼   ► and I'm looking forward to a time

00:03:54 ◼   ► when I might be able to use it on iOS,

00:03:56 ◼   ► like, in the iOS app, and that might start this year,

00:03:59 ◼   ► I think, which we'll get to in a minute,

00:04:00 ◼   ► but overall, the watch project, I'm very happy.

00:04:04 ◼   ► You convinced me to go that direction.

00:04:06 ◼   ► It went very well, and it's almost done.

00:04:08 ◼   ► - That's wonderful to hear, and I think it gels a lot

00:04:11 ◼   ► with my experience with Swift UI,

00:04:13 ◼   ► that I think there is this, it's like there is this

00:04:16 ◼   ► very uncomfortable period at the beginning

00:04:19 ◼   ► of doing Swift UI work, where because of the lack of,

00:04:23 ◼   ► I mean, I think both, there's a lack of documentation

00:04:26 ◼   ► and kind of a difficulty there, or even just,

00:04:28 ◼   ► I mean, it looks like documentation is a tricky thing.

00:04:30 ◼   ► It's like there are good resources for Swift UI that exist.

00:04:34 ◼   ► They're just not first party,

00:04:36 ◼   ► but I think there's this really awkward period

00:04:37 ◼   ► where it, because it's so different conceptually

00:04:41 ◼   ► than any other sort of experience I've had

00:04:44 ◼   ► in building things, that there's just, like,

00:04:45 ◼   ► you have to hit your head into a wall for a while

00:04:49 ◼   ► and it's uncomfortable and not pleasant,

00:04:51 ◼   ► and then suddenly you break through to the other side,

00:04:53 ◼   ► and it's like, huh, okay.

00:04:55 ◼   ► Like, I can kind of get this.

00:04:57 ◼   ► And there's some things about it

00:04:59 ◼   ► that are just super awesome and amazing.

00:05:01 ◼   ► And so it's sort of, having a project to start out with,

00:05:05 ◼   ► I think, is a great place, and I think the watch app,

00:05:07 ◼   ► I'm so glad to hear, turned out to be that for you,

00:05:09 ◼   ► 'cause I think, and that was my experience.

00:05:11 ◼   ► I learned Swift UI on the watch as well,

00:05:13 ◼   ► and I think it's a really good context for it,

00:05:15 ◼   ► because just the use cases and the complexity

00:05:19 ◼   ► of what you're doing are so much simpler, necessarily,

00:05:22 ◼   ► because it's on a watch, that it's a great place

00:05:26 ◼   ► to kind of play around with that,

00:05:28 ◼   ► whereas on an iOS, the expectations are much higher,

00:05:31 ◼   ► the screen size is much higher,

00:05:32 ◼   ► the layouts are much more nuanced and complicated,

00:05:35 ◼   ► so it sort of necessarily makes sense

00:05:37 ◼   ► that it's harder to learn there.

00:05:40 ◼   ► But yeah, that's great to hear,

00:05:42 ◼   ► and I'm glad that you're stepping firmly into 2021,

00:05:47 ◼   ► into the modern age, writing apps in Swift and Swift UI.

00:05:52 ◼   ► It's very cool.

00:05:53 ◼   ► - Yeah, and the Swift side of it

00:05:54 ◼   ► is also working out very well for me.

00:05:56 ◼   ► I'm finally, it's funny, I crossed a threshold yesterday

00:06:00 ◼   ► where I had to work inside

00:06:03 ◼   ► of some Objective-C classes yesterday,

00:06:06 ◼   ► and as I was writing the code, I was thinking,

00:06:08 ◼   ► man, I wish I was writing in Swift right now.

00:06:11 ◼   ► Like, the Objective-C versions of what I was writing

00:06:14 ◼   ► felt more cumbersome, and it wasn't for any

00:06:17 ◼   ► significant reason, it was like a semicolon here or there.

00:06:20 ◼   ► It wasn't that big of a deal, really.

00:06:22 ◼   ► Like, the things that programmers complain about

00:06:25 ◼   ► are often greatly exaggerated. (laughs)

00:06:28 ◼   ► But I was very happy to be at that point now,

00:06:32 ◼   ► and I realized, too, as I go through different,

00:06:35 ◼   ► rewriting certain classes or writing new code in Swift,

00:06:40 ◼   ► I notice just how many methods or refinements

00:06:45 ◼   ► or name changes or things like that

00:06:49 ◼   ► have only started being used very recently in the OSes,

00:06:52 ◼   ► like as of iOS 13, or some of the things I was doing

00:06:55 ◼   ► were on file handles, and file handles

00:06:59 ◼   ► completely changed their API in iOS 13.4.

00:07:04 ◼   ► (laughs)

00:07:05 ◼   ► - Oh, great.

00:07:06 ◼   ► - And so, in a way that makes things a little bit cleaner

00:07:09 ◼   ► with exception handling and stuff, and so,

00:07:10 ◼   ► there's a lot of things that changed then,

00:07:12 ◼   ► and instantly deprecated the previous versions,

00:07:13 ◼   ► and so I actually am requiring for the next update

00:07:17 ◼   ► to overcast whenever it comes out,

00:07:18 ◼   ► it's still a little bit out, but I'm actually

00:07:20 ◼   ► gonna require iOS 13.4, which is strange.

00:07:25 ◼   ► - Why not?

00:07:26 ◼   ► - But it makes certain things easier,

00:07:27 ◼   ► and there's so many things like that where

00:07:29 ◼   ► I'm actually, not only am I getting into Swift finally

00:07:33 ◼   ► for real this time, but I'm actually happy

00:07:36 ◼   ► that I waited this long, because a lot of this stuff

00:07:41 ◼   ► has gotten nicer in fairly recent versions of the OS,

00:07:45 ◼   ► and a lot of this stuff I really couldn't adopt

00:07:49 ◼   ► a lot of the niceties of a lot of this stuff

00:07:51 ◼   ► until I could require, say, iOS 13.

00:07:54 ◼   ► And that hasn't, like, my shipping version

00:07:56 ◼   ► still is on 12, I'm gonna drop that soon,

00:07:58 ◼   ► but most of this is happening very recently,

00:08:01 ◼   ► and SwiftUI, yeah, it came out last year,

00:08:04 ◼   ► but SwiftUI requires iOS 13 and watchOS 6,

00:08:07 ◼   ► and I can only reasonably require those versions

00:08:10 ◼   ► of the OS for my user base, like, around now.

00:08:14 ◼   ► So I really couldn't have adopted SwiftUI earlier

00:08:16 ◼   ► than I did without significant user loss,

00:08:19 ◼   ► and I'm actually very happy that I didn't adopt Swift

00:08:22 ◼   ► as heavily as I am now until very recently,

00:08:25 ◼   ► so I could also take advantage of stuff on the iOS side.

00:08:29 ◼   ► - Yeah, and I think that'll make sense.

00:08:30 ◼   ► I mean, there's always that attention there

00:08:32 ◼   ► in terms of the, you know, this, like, speed

00:08:35 ◼   ► versus ultimate ease, because the longer you wait,

00:08:38 ◼   ► the easier many things will often become,

00:08:41 ◼   ► and there's less sort of rework or change

00:08:43 ◼   ► or things like that that you have to navigate,

00:08:45 ◼   ► but it certainly is, you know, it's like,

00:08:47 ◼   ► if you wait too long, it becomes problematic,

00:08:48 ◼   ► but it sounds like, you know, in terms of where you are

00:08:51 ◼   ► and with overcast going forward this year,

00:08:53 ◼   ► like, it seems like you're in a pretty sweet,

00:08:54 ◼   ► you know, good place where you're comfortable

00:08:58 ◼   ► with the new tools and the new technologies

00:09:01 ◼   ► to a sufficient degree that you can adapt

00:09:03 ◼   ► and sort of adopt them as you go going forward

00:09:07 ◼   ► into this year, and you don't have sort of this wall

00:09:12 ◼   ► that you had to climb at the end of last year.

00:09:14 ◼   ► Now, that's like, if you've done that, it's behind you,

00:09:17 ◼   ► and now you can just kind of move forward

00:09:18 ◼   ► into doing whatever feature work or things

00:09:20 ◼   ► that you sort of want to do in this year.

00:09:23 ◼   ► - Exactly, and you know, and a lot of this stuff,

00:09:25 ◼   ► like, you know, for different programmers,

00:09:27 ◼   ► the timing of when is best for you to jump

00:09:29 ◼   ► into something new is very, very different,

00:09:31 ◼   ► and a lot of this is just because

00:09:32 ◼   ► of the kind of programmer I am.

00:09:34 ◼   ► If I was more into, like, being, like,

00:09:38 ◼   ► on the cutting edge of things, tooling or language design

00:09:41 ◼   ► or anything else, I would've and should've

00:09:43 ◼   ► jumped into Swift much, much earlier than this.

00:09:46 ◼   ► If I was really into, like, influencing the direction

00:09:50 ◼   ► of the language, like, you know, posting on the groups

00:09:52 ◼   ► and, you know, making pull requests

00:09:54 ◼   ► and talking about proposals, like, all that stuff,

00:09:57 ◼   ► again, earlier would've been better,

00:09:59 ◼   ► but I'm not that kind of programmer.

00:10:00 ◼   ► I like to go in to a new environment,

00:10:04 ◼   ► you know, a platform, a tool, a language,

00:10:07 ◼   ► when all that stuff has been worked out,

00:10:08 ◼   ► when it's pretty stable, pretty mature,

00:10:11 ◼   ► and has a lot of niceties already built in

00:10:13 ◼   ► from having many years of evolution

00:10:16 ◼   ► and refinement and experience.

00:10:18 ◼   ► Like, you know, I wanna go in not when it's, like,

00:10:21 ◼   ► you know, the city's under construction

00:10:23 ◼   ► and everything's being built and everything's in flux.

00:10:24 ◼   ► I wanna go in when, like, it's like a movie futuristic city

00:10:29 ◼   ► where, like, everything is, like, clean and polished,

00:10:32 ◼   ► not like the bad future cities, but, you know, like,

00:10:34 ◼   ► what futuristic cities used to be depicted as.

00:10:37 ◼   ► Like, you know, everything is, like, clean and perfect

00:10:39 ◼   ► and advanced and everyone's flying around and flying cars

00:10:41 ◼   ► and everything's, like, that's what I want

00:10:43 ◼   ► when I enter a new language.

00:10:45 ◼   ► I want it to be at that stage of its evolution,

00:10:47 ◼   ► not the, like, you know, rough and tumble early days,

00:10:50 ◼   ► which many people find very exciting,

00:10:52 ◼   ► but that's not for me, because, like,

00:10:54 ◼   ► I'm not a language nerd at all

00:10:56 ◼   ► and I don't tolerate any problems with the tooling.

00:10:58 ◼   ► And that's, again, like, Swift UI is still

00:11:01 ◼   ► in those early days, which is why it was hard for me

00:11:03 ◼   ► to adopt that at first.

00:11:05 ◼   ► But Swift itself is very much not,

00:11:07 ◼   ► and it's way past those, and so Swift itself

00:11:10 ◼   ► and the frameworks on iOS and everything that use Swift

00:11:14 ◼   ► or that Swift has been adopted for,

00:11:15 ◼   ► it's significantly in a better place.

00:11:18 ◼   ► - Yeah, and I think it's really the only downside

00:11:21 ◼   ► of that strategy, and I think I generally am

00:11:22 ◼   ► in the same place as you, except for the sense

00:11:24 ◼   ► that for my work, I enjoy, well,

00:11:28 ◼   ► my pattern has been to adopt things as soon as I can,

00:11:32 ◼   ► typically, in terms of new framework features

00:11:36 ◼   ► and, you know, iOS capabilities.

00:11:38 ◼   ► And that has been typically, like, in the early,

00:11:41 ◼   ► you know, the first maybe two years of Swift,

00:11:44 ◼   ► it didn't matter if I was Objective-C or if I was Swift.

00:11:47 ◼   ► And it's only been in the last couple of years

00:11:50 ◼   ► where I feel like last year where it was,

00:11:52 ◼   ► you know, if I wanted to do a proper watch app,

00:11:54 ◼   ► I needed to do SwiftUI.

00:11:56 ◼   ► And if I, and then this year, it was, you know,

00:11:58 ◼   ► if I wanted to do widgets, I had to use SwiftUI as well.

00:12:02 ◼   ► And so there's, we're starting to get to, I think,

00:12:04 ◼   ► the place also where, you know, if you want to be able

00:12:07 ◼   ► to do the latest and greatest, Apple is no longer,

00:12:11 ◼   ► you know, doing that in a way that you can just,

00:12:16 ◼   ► you know, still be doing things the old way.

00:12:18 ◼   ► Like, it's all the new way now.

00:12:20 ◼   ► And it certainly makes sense, you know,

00:12:21 ◼   ► SwiftUI and what they're doing with it.

00:12:23 ◼   ► And the way that it works with widgets, like,

00:12:25 ◼   ► is very cool, and I think it's a very clever

00:12:28 ◼   ► technological solution, but it's like,

00:12:31 ◼   ► regardless of that, that's the direction that they're going.

00:12:33 ◼   ► And so I think it's definitely an interesting place to be

00:12:36 ◼   ► as I, like, look forward into this year.

00:12:38 ◼   ► It's like, I feel good that I feel competent

00:12:41 ◼   ► with Apple's core technology stack that there is,

00:12:45 ◼   ► like, they're gonna almost certainly be putting

00:12:48 ◼   ► at front and center in all of the new things

00:12:49 ◼   ► that they announce this year.

00:12:52 ◼   ► That, you know, being competent with SwiftUI

00:12:54 ◼   ► seems very important right now.

00:12:57 ◼   ► If you want to make an app that is, you know,

00:12:59 ◼   ► gonna be able to do sort of the latest and greatest

00:13:02 ◼   ► cool stuff on iOS, because that's just where Apple is.

00:13:05 ◼   ► And that's, you know, the key theme of WDC last year

00:13:08 ◼   ► was very much like SwiftUI, it's a little early,

00:13:12 ◼   ► it's a little young, but this is,

00:13:14 ◼   ► we're not joking about this, this is for realties,

00:13:17 ◼   ► this is what we're gonna be doing for a long time,

00:13:20 ◼   ► and, you know, sort of get on board as soon as you can.

00:13:23 ◼   ► - We are brought to you this week by Command Line Heroes.

00:13:27 ◼   ► This is a podcast that tells epic true tales

00:13:30 ◼   ► of developers, programmers, hackers, geeks,

00:13:32 ◼   ► and open source rebels who are revolutionizing

00:13:35 ◼   ► the technology landscape.

00:13:37 ◼   ► Season six of Command Line Heroes is available now.

00:13:41 ◼   ► This season tells the stories of black technologists

00:13:43 ◼   ► who innovated and invented, despite systemic racism,

00:13:47 ◼   ► unfair hiring practices,

00:13:48 ◼   ► and unequal education opportunities.

00:13:50 ◼   ► There's an episode all about Gladys West,

00:13:52 ◼   ► whose mathematical models and data analysis

00:13:55 ◼   ► paved the way for GPS.

00:13:57 ◼   ► Another episode tells the story of Jerry Lawson,

00:13:59 ◼   ► who invented the first cartridge-based video game console,

00:14:02 ◼   ► paving the way for Atari, Nintendo, and Sega.

00:14:05 ◼   ► I was always a Sega person.

00:14:06 ◼   ► Another episode tells the story of Mark Dean,

00:14:09 ◼   ► who grew up in the Jim Crow South,

00:14:11 ◼   ► and grew up to revolutionize the PC industry

00:14:13 ◼   ► with the ISA bus.

00:14:15 ◼   ► I remember ISA cards.

00:14:16 ◼   ► My first card was an ISA card.

00:14:17 ◼   ► It's a sound card.

00:14:18 ◼   ► Anyway, season six of Command Line Heroes sounds awesome.

00:14:22 ◼   ► I've added it to my podcast app, of course, Overcast,

00:14:24 ◼   ► so I can listen to it, 'cause this sounds fantastic to me.

00:14:28 ◼   ► This is right up my alley,

00:14:28 ◼   ► and if you listen to this show,

00:14:29 ◼   ► it's probably right up your alley, too.

00:14:31 ◼   ► Search for Command Line Heroes anywhere

00:14:33 ◼   ► you listen to podcasts, especially if it's Overcast,

00:14:35 ◼   ► and we will include a link in the show notes.

00:14:38 ◼   ► Our thanks to Command Line Heroes

00:14:40 ◼   ► for their support of this show and Relay FM.

00:14:42 ◼   ► - So I think it seems like a good place, right,

00:14:46 ◼   ► at the start of the year,

00:14:47 ◼   ► to sort of think through what we kind of expect

00:14:50 ◼   ► for this year, not in the sense of predictions

00:14:53 ◼   ► in a formal way, but I was just,

00:14:55 ◼   ► I feel like this is always the week where,

00:14:58 ◼   ► we've had the holidays, I took some time off

00:15:00 ◼   ► for the first time in a while.

00:15:02 ◼   ► Actually didn't work for a few days, which was nice.

00:15:05 ◼   ► It's like coming back was a little rough on Monday,

00:15:07 ◼   ► but I'm back, and I start to think forward.

00:15:09 ◼   ► I start to think about, okay,

00:15:11 ◼   ► what is this year gonna look like?

00:15:13 ◼   ► And both in terms of like,

00:15:15 ◼   ► where do I expect my apps to go?

00:15:17 ◼   ► But I think at the first place was just trying to think

00:15:19 ◼   ► in terms of like, what are the kind of the layout,

00:15:23 ◼   ► like the big blocks of this year that I expect?

00:15:25 ◼   ► And are they different, obviously, in a world of COVID

00:15:28 ◼   ► where a lot of the typical scheduling

00:15:31 ◼   ► may be slightly adjusted?

00:15:32 ◼   ► And so I think the first place I was just sort of thinking,

00:15:35 ◼   ► trying to think through was,

00:15:36 ◼   ► what is the sort of developer schedule likely look like

00:15:40 ◼   ► for us this year?

00:15:41 ◼   ► And I think it's probably gonna be one of these sort

00:15:43 ◼   ► of a year, a little bit similar to last year,

00:15:46 ◼   ► but slightly more confidence and certainty

00:15:49 ◼   ► that I suspect WGC will be remote again.

00:15:52 ◼   ► I think that will almost, there's much,

00:15:55 ◼   ► it's probably more likely that it will be early June

00:15:57 ◼   ► rather than late June.

00:15:59 ◼   ► Like I think that's typically where Apple likes it,

00:16:00 ◼   ► and I think now that they're planning it,

00:16:02 ◼   ► and have a year of work from home and all that

00:16:05 ◼   ► under their belt, they're probably gonna be a bit more

00:16:08 ◼   ► confident about doing that.

00:16:09 ◼   ► And so I kind of expect they will go back to the normal

00:16:11 ◼   ► like first or second week of June.

00:16:13 ◼   ► It'll be a at-home WWDC.

00:16:15 ◼   ► Between now and then, I don't expect much in the way

00:16:18 ◼   ► of sort of developer things.

00:16:21 ◼   ► We're pretty high on the iOS builds as it is.

00:16:24 ◼   ► Like I think we're on .4 now, I think, of iOS.

00:16:28 ◼   ► And so like it seems pretty, I think we're getting

00:16:32 ◼   ► fairly old and mature at this point.

00:16:34 ◼   ► So it seems less likely that we're gonna have,

00:16:35 ◼   ► like I think last spring there was the iPad cursor support

00:16:40 ◼   ► that came out, and that was kind of a relatively large

00:16:42 ◼   ► developer feature mid-cycle.

00:16:44 ◼   ► But I think we might, if I'm just guessing now,

00:16:46 ◼   ► it seems we're fairly set between now and June,

00:16:49 ◼   ► and so I could sort of plan accordingly

00:16:51 ◼   ► with what I'm gonna do.

00:16:52 ◼   ► And then we'll have another WWDC and developer cycle,

00:16:56 ◼   ► and then in the fall iOS launch,

00:16:58 ◼   ► and we'll get a new set of hardware, and so on.

00:17:02 ◼   ► And I think that's the general framework of the year

00:17:05 ◼   ► that I'm expecting.

00:17:07 ◼   ► And beyond that, I think some things are gonna be

00:17:11 ◼   ► sort of very quiet this year, that I think

00:17:13 ◼   ► there will continue to be conferences or sort of

00:17:17 ◼   ► things like that, but they'll all be remote

00:17:19 ◼   ► for at least between now and WWDC.

00:17:21 ◼   ► There's not gonna be a lot of opportunities

00:17:23 ◼   ► for things outside of that.

00:17:25 ◼   ► And I think in terms of actual opportunities,

00:17:29 ◼   ► like who knows what the next version of iOS

00:17:31 ◼   ► is gonna include.

00:17:32 ◼   ► But I think at a broad strokes, we have another,

00:17:35 ◼   ► we have six months of probably clear skies ahead of us

00:17:39 ◼   ► from a developer perspective in terms of

00:17:41 ◼   ► we can choose what we're gonna work on,

00:17:43 ◼   ► not much is gonna change in the environment around us,

00:17:45 ◼   ► and we could just sort of go full steam ahead

00:17:46 ◼   ► in whatever direction we decide based on

00:17:50 ◼   ► sort of the position we find ourselves in now in January.

00:17:54 ◼   ► - Yeah, that all sounds pretty much right to me.

00:17:55 ◼   ► I also agree that WWDC is almost certain

00:17:59 ◼   ► to be remote again, because as much progress

00:18:02 ◼   ► as we're making in the world here,

00:18:04 ◼   ► I don't think June is gonna be a time

00:18:05 ◼   ► when anybody's gonna have a 5,000 person

00:18:07 ◼   ► in person conference, that's a little soon.

00:18:11 ◼   ► And Apple also would be, I think, fairly conservative

00:18:15 ◼   ► with when they would do that again.

00:18:16 ◼   ► So I bet Apple won't have anything in person

00:18:19 ◼   ► possibly the entire year.

00:18:21 ◼   ► Certainly not the first half of the year.

00:18:23 ◼   ► But anyway, looking at the tech side of things,

00:18:28 ◼   ► I think it's interesting to look at where we are

00:18:30 ◼   ► on the different platforms and kind of assume

00:18:34 ◼   ► where things might go from there.

00:18:36 ◼   ► It seems like all the action this year

00:18:40 ◼   ► is going to be most likely, I think, on the Mac

00:18:44 ◼   ► and in the area of potential AR thing later in the year.

00:18:49 ◼   ► You know, we've heard rumors for so long, so many years,

00:18:53 ◼   ► this is gonna be the year of Linux on the desktop

00:18:55 ◼   ► and this is gonna be the year that Apple releases

00:18:56 ◼   ► the AR headset. (laughs)

00:18:58 ◼   ► But the rumors of that happening this year

00:19:02 ◼   ► are really heating up recently and are coming

00:19:04 ◼   ► from sources that are historically usually more accurate.

00:19:09 ◼   ► And it sure is sounding like a significant possibility

00:19:13 ◼   ► that we might get something like an AR development kit

00:19:16 ◼   ► this year, even if the product itself,

00:19:18 ◼   ► like the glasses or whatever, is not ready yet.

00:19:21 ◼   ► And there's a reason why Apple's been pushing so heavily

00:19:24 ◼   ► into putting LIDAR sensors and all the things and everything.

00:19:27 ◼   ► It's not just for better table demos.

00:19:30 ◼   ► There's probably a better reason.

00:19:31 ◼   ► And so I think, you know, looking at the platforms,

00:19:35 ◼   ► iOS itself seems pretty immature, pretty stable.

00:19:40 ◼   ► Like quality and stability-wise, iOS 14

00:19:42 ◼   ► has been a remarkably good release for me.

00:19:44 ◼   ► Have you seen the same thing?

00:19:47 ◼   ► - Yeah, I mean, I think broadly speaking,

00:19:48 ◼   ► it's been very stable, certainly compared to 13

00:19:50 ◼   ► in the early days of 13. - Yeah, yeah.

00:19:53 ◼   ► Not saying much for me.

00:19:54 ◼   ► - You know, there are still areas that always get frustrated

00:19:56 ◼   ► with like opening the Settings app

00:19:58 ◼   ► and the Settings app getting stuck for some reason

00:20:01 ◼   ► is still one of these things that like haunts my phones

00:20:03 ◼   ► and I have no idea what's going on there.

00:20:04 ◼   ► But otherwise, I don't think there's any sort of regular

00:20:08 ◼   ► annoyances or issues that I have on iOS 14.

00:20:10 ◼   ► - Yeah, like it seems like iOS

00:20:12 ◼   ► is in a very good place right now.

00:20:14 ◼   ► And it's also, you know, after 14 major releases,

00:20:18 ◼   ► it's, you know, the new stuff that comes every year

00:20:20 ◼   ► is not that mind-blowing.

00:20:22 ◼   ► It's not that life-altering for developers.

00:20:25 ◼   ► You know, it's incremental progress here and there.

00:20:27 ◼   ► And so I think we're gonna keep seeing that.

00:20:29 ◼   ► iOS is pretty mature.

00:20:30 ◼   ► I also think that, you know, you're looking

00:20:31 ◼   ► like on the Mac side, there's a lot of excitement right now

00:20:34 ◼   ► happening around the Mac, both I think internally in Apple

00:20:38 ◼   ► for the first time in possibly eight or nine years

00:20:43 ◼   ► and certainly externally.

00:20:44 ◼   ► And I think that has come at the cost of the iPad

00:20:50 ◼   ► to a large degree.

00:20:51 ◼   ► And not to say that they're, you know, ignoring the iPad,

00:20:54 ◼   ► but I think the iPad has lost like favored child status

00:20:59 ◼   ► among certain priorities maybe for the time being.

00:21:04 ◼   ► Because I think what we're seeing is that, you know,

00:21:06 ◼   ► the iPad got a lot of attention, a ton of attention

00:21:09 ◼   ► for a while on the consumer side.

00:21:12 ◼   ► The pro side of the iPad has gotten like bursts of attention

00:21:16 ◼   ► every few years, but they've been strong

00:21:19 ◼   ► when they've happened.

00:21:21 ◼   ► But I think what we're seeing now is Apple has redirected

00:21:23 ◼   ► that like pro focus of like what is high-end computing

00:21:27 ◼   ► on our platforms and where does that happen?

00:21:29 ◼   ► I think Apple for a while was trying to push that

00:21:30 ◼   ► to the iPad and now they've significantly gone back

00:21:34 ◼   ► to the Mac in that area.

00:21:35 ◼   ► And that's, I love that 'cause I've been on, you know,

00:21:38 ◼   ► a Mac person the whole time, so it's very good news for me.

00:21:41 ◼   ► I apologize to iPad people out there.

00:21:43 ◼   ► But I think overall that's likely to continue into 2021

00:21:48 ◼   ► where I think it's gonna be a pretty quiet year

00:21:52 ◼   ► for high-end iPad users.

00:21:55 ◼   ► You know, I mean hardware-wise, who knows what they're doing

00:21:57 ◼   ► like the 2018 iPad Pro is basically still

00:22:01 ◼   ► the current iPad Pro with very few changes.

00:22:04 ◼   ► But I also don't see a lot of need for them

00:22:08 ◼   ► to push that performance higher and higher and higher

00:22:10 ◼   ► when the software is not really getting there to support it.

00:22:12 ◼   ► So I think the iPad's gonna be pretty quiet still

00:22:15 ◼   ► for a while.

00:22:16 ◼   ► Looking at, you know, software platforms,

00:22:18 ◼   ► I think the Mac still is like greatly in flux.

00:22:21 ◼   ► You're in the middle of this transition,

00:22:23 ◼   ► you're in the middle of both the hardware

00:22:25 ◼   ► and like a software UI transition on the Mac.

00:22:28 ◼   ► And so that I think is gonna get all the attention.

00:22:30 ◼   ► So I think where all the heat is gonna be this year is

00:22:33 ◼   ► the Mac, you know, a little bit on the iPhone

00:22:36 ◼   ► 'cause it's always a little bit on the iPhone,

00:22:37 ◼   ► but not like significantly, almost none on the iPad.

00:22:41 ◼   ► And then if that AR thing happens,

00:22:43 ◼   ► where we get at least a developer kit this year,

00:22:46 ◼   ► then that's gonna be like the new hotness.

00:22:50 ◼   ► Everything else seems pretty stable.

00:22:52 ◼   ► You know, the watch is pretty stable.

00:22:54 ◼   ► I don't expect, you know, the watch never changes

00:22:57 ◼   ► in major ways, so I don't expect

00:22:59 ◼   ► that's just all of a sudden start.

00:23:01 ◼   ► And so I think it's gonna be that kind of year.

00:23:02 ◼   ► You know, if you're mainly on iOS,

00:23:05 ◼   ► I think you're gonna have a pretty like nice,

00:23:07 ◼   ► you know, incremental slash quiet year.

00:23:09 ◼   ► And if you're the kind of early adopter,

00:23:11 ◼   ► I think the AR thing coming in could be

00:23:12 ◼   ► a really massive deal.

00:23:14 ◼   ► And if you're on the Mac, it's a pretty big year anyway.

00:23:17 ◼   ► - Yeah, and I think that sounds fairly reasonable.

00:23:20 ◼   ► And it's interesting though as you say that all through,

00:23:22 ◼   ► it's like in many ways it's a relief

00:23:24 ◼   ► because the main areas that like I do my work in,

00:23:28 ◼   ► I don't think are particularly going to be

00:23:31 ◼   ► in upheaval this year.

00:23:33 ◼   ► And that's comforting in some ways to have

00:23:35 ◼   ► a sort of potentially a more straightforward, easy year

00:23:38 ◼   ► that I can focus on refinement rather than on

00:23:40 ◼   ► like complete whole cloth creation.

00:23:44 ◼   ► 'Cause you know, as much as it's like I'm excited

00:23:46 ◼   ► about what's happening on the Mac,

00:23:47 ◼   ► and I think it's, you know, I expect it's a year

00:23:50 ◼   ► that I will buy at least one, potentially more than one,

00:23:54 ◼   ► new Macs just to sort of, and it's like every time

00:23:56 ◼   ► they come out with a new, fancier, better, you know,

00:24:00 ◼   ► Apple Silicon Mac, I'm probably going to buy one

00:24:03 ◼   ► just because if it, I don't know how many times

00:24:06 ◼   ► they're going to be able to have this step change function

00:24:09 ◼   ► like improvement in my, in the performance

00:24:12 ◼   ► and my productivity on the platform,

00:24:14 ◼   ► but I will gladly take as many times

00:24:16 ◼   ► as they can do that this year.

00:24:18 ◼   ► Smart.

00:24:18 ◼   ► And then it's like, you know, the other things like AR,

00:24:22 ◼   ► like sure, it sounds interesting, but it's not as like

00:24:24 ◼   ► I have to see it, in my mind, I've never found

00:24:27 ◼   ► a compelling sort of thing that I felt I could do,

00:24:31 ◼   ► that I felt like I felt personally empowered

00:24:33 ◼   ► where it's, you know, it's a situation

00:24:35 ◼   ► that would make sense for me, so we'll have to see

00:24:38 ◼   ► certainly what happens there, and it's like if that's,

00:24:40 ◼   ► if the other platforms are kind of nice and straightforward,

00:24:43 ◼   ► that's great, like I can have a year where I focus on

00:24:45 ◼   ► just continuing to make like, you know, WidgetSmith,

00:24:48 ◼   ► WatchSmith, Pedometer, Sleep, like I can make these apps

00:24:52 ◼   ► just better and focus on just improvement,

00:24:55 ◼   ► and hopefully maybe I'll have a quieter summer

00:24:57 ◼   ► and, you know, it's, have a quieter year overall,

00:25:00 ◼   ► which would be nice in some ways.

00:25:02 ◼   ► - Yeah, I think we could all use a rest after 2020.

00:25:05 ◼   ► But also, you know, but I'm totally with you,

00:25:07 ◼   ► I think a year where you mostly get to just refine stuff

00:25:12 ◼   ► and add features and make stuff better

00:25:14 ◼   ► and maybe work on some of the like, you know,

00:25:16 ◼   ► underlying engine code, that's a great year to me.

00:25:19 ◼   ► I love that kind of year.

00:25:21 ◼   ► You know, there's a time and a place for the exciting,

00:25:23 ◼   ► you know, throw everything away, start over,

00:25:24 ◼   ► a new platform, those kind of years.

00:25:26 ◼   ► But we've had a bunch of those in the last decade,

00:25:29 ◼   ► and we could actually use some time to catch up,

00:25:31 ◼   ► especially in the last few years with the introduction

00:25:34 ◼   ► of SwiftUI and Catalyst and all these things that are like,

00:25:37 ◼   ► you know, massive like platform shifting things.

00:25:41 ◼   ► I think it's really nice to be able to actually have time

00:25:45 ◼   ► to adopt those, where you're not fighting like a,

00:25:48 ◼   ► kind of like a marketing cost year,

00:25:52 ◼   ► where they like redesign the OS or add dark mode,

00:25:56 ◼   ► or like things where like you are kind of forced

00:25:58 ◼   ► by market pressure or by technological changes,

00:26:01 ◼   ► you're kind of forced to adopt a new thing,

00:26:04 ◼   ► but it's not like that big of a deal for your app,

00:26:06 ◼   ► or it doesn't benefit your customers

00:26:08 ◼   ► in that many direct ways.

00:26:09 ◼   ► Like those I feel like are kind of overhead years,

00:26:11 ◼   ► where you're just kind of forced to churn

00:26:13 ◼   ► and do a lot of work that doesn't necessarily result

00:26:16 ◼   ► in like new marketable features.

00:26:18 ◼   ► I think this year will hopefully be the opposite.

00:26:20 ◼   ► Like, and we've had a bunch of those years recently,

00:26:22 ◼   ► so I'm glad to have one that this is finally looking

00:26:25 ◼   ► like it's probably gonna be more like a refinement year,

00:26:27 ◼   ► where you'll actually have a chance to add value

00:26:30 ◼   ► for your customers and hopefully not have like major

00:26:34 ◼   ► distractions or major technological churn needs

00:26:38 ◼   ► that you'll be forced to adopt and cost the other time.

00:26:42 ◼   ► - Yeah, I do think it's a funny thought

00:26:45 ◼   ► as I'm thinking through sort of what this year

00:26:47 ◼   ► might look like.

00:26:48 ◼   ► There's a non-insignificant chance that this is

00:26:51 ◼   ► the first year in the last 12 years

00:26:53 ◼   ► that I don't launch a new app.

00:26:55 ◼   ► - What?

00:26:56 ◼   ► - I know, right?

00:26:57 ◼   ► But I'm thinking about my situation and like where things are

00:27:01 ◼   ► with like the apps that I have and you know,

00:27:03 ◼   ► like the amount of work I have and the opportunities I have

00:27:06 ◼   ► like making Widget Smith, you know.

00:27:09 ◼   ► It's like I don't expect to launch a new app

00:27:10 ◼   ► and have it be as successful as Widget Smith ever again.

00:27:13 ◼   ► (laughing)

00:27:14 ◼   ► And so it's the kind of, so like the amount of work I have

00:27:19 ◼   ► just in sort of continuing to refine and develop

00:27:22 ◼   ► and flesh out and really take advantage of the position

00:27:27 ◼   ► that Widget Smith is in, like it feels like more work

00:27:31 ◼   ► than I could ever do.

00:27:32 ◼   ► And so like let alone having time to work on my other apps

00:27:36 ◼   ► and give them some attention as well.

00:27:38 ◼   ► And so it was just this funny thing when I was thinking

00:27:39 ◼   ► about this year and it's like, I mean,

00:27:41 ◼   ► it's sort of like never bet against the iPhone,

00:27:45 ◼   ► like never bet against me launching a new app.

00:27:48 ◼   ► But when I look at this year, I feel like the odds

00:27:51 ◼   ► are the lowest they've ever been for new app launching.

00:27:54 ◼   ► And who knows, maybe 2021 will be the year of no new apps.

00:27:57 ◼   ► We'll see.

00:27:58 ◼   ► - I'm not taking that bet.

00:27:59 ◼   ► (laughing)

00:28:02 ◼   ► There is, because like if they do anything

00:28:04 ◼   ► with new hardware, like if there is a single new hardware

00:28:08 ◼   ► capability or if they really do give us like an AR dev kit,

00:28:12 ◼   ► you're gonna have an app out there on day one.

00:28:14 ◼   ► Come on, like people mature, people get refined,

00:28:18 ◼   ► but people don't fundamentally change that much.

00:28:20 ◼   ► (laughing)

00:28:22 ◼   ► You're gonna have an app on day one for whatever new

00:28:24 ◼   ► hardware or software capability there is.

00:28:27 ◼   ► Whether it's a major effort or like a minor kind of

00:28:30 ◼   ► throwaway thing, you're gonna have something there,

00:28:32 ◼   ► believe me.

00:28:34 ◼   ► - I mean, I feel like maybe if I don't,

00:28:36 ◼   ► it'd be like disappointing like the world.

00:28:38 ◼   ► That's who I am.

00:28:39 ◼   ► But it is, it's a weird thing looking at this year.

00:28:41 ◼   ► And I feel like so many platforms are in a good,

00:28:44 ◼   ► stable place, there's not a lot of huge new things.

00:28:46 ◼   ► And obviously we'll find out in June how,

00:28:49 ◼   ► if I'll be laughing about saying that I may not launch

00:28:53 ◼   ► something new this year.

00:28:54 ◼   ► But I feel pretty fully loaded at this point as it is.

00:28:59 ◼   ► So if it was ever gonna happen that I just kind of

00:29:05 ◼   ► stick to what I've already got and continue refining

00:29:07 ◼   ► and developing it, 2021 seems like that year.

00:29:10 ◼   ► - I'm not holding my breath.

00:29:12 ◼   ► Thanks everybody for listening.

00:29:13 ◼   ► And we'll talk to you in two weeks.

00:29:15 ◼   ► - Bye.

00:29:16 ◼   ► [BLANK_AUDIO]