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: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: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
◼
►
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: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: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:58
◼
►
- I'm not taking that bet.
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: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: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:16
◼
►
[BLANK_AUDIO]