114: Platform Wish List for 2018
00:00:00
◼
►
- Welcome to Under the Radar,
00:00:01
◼
►
a show about independent iOS app development.
00:00:04
◼
►
I'm Marco Armet.
00:00:05
◼
►
- And I'm David Smith.
00:00:06
◼
►
Under the Radar is never longer than 30 minutes,
00:00:08
◼
►
so let's get started.
00:00:09
◼
►
- So this week we kind of wanted to do,
00:00:11
◼
►
since last week was kind of our report card
00:00:14
◼
►
of how the App Store did and the various improvements
00:00:17
◼
►
and changes it made in 2017,
00:00:19
◼
►
kind of wanted to take today to be our wish list for 2018.
00:00:23
◼
►
These are not predictions,
00:00:24
◼
►
these are just things we hope to see in 2018,
00:00:28
◼
►
not from the App Store side of things,
00:00:30
◼
►
but from the API and platform side of things.
00:00:34
◼
►
So I wanted to start that off the smallest to largest here.
00:00:38
◼
►
The easiest one for me to start off with is iOS,
00:00:43
◼
►
because for me, iOS is so mature at this point,
00:00:47
◼
►
there's so much in it,
00:00:49
◼
►
it's really hard for me to come up with specifics of like,
00:00:52
◼
►
here's one big thing that I'm missing in iOS.
00:00:55
◼
►
Like it's so complete and so mature,
00:00:57
◼
►
there's just so much there that I'm pretty good in iOS.
00:01:00
◼
►
The only thing I really hope to see specifically in iOS 12
00:01:05
◼
►
is that iOS 10 and 11 have been slowly evolving
00:01:11
◼
►
fundamentals of their UI design
00:01:15
◼
►
and design patterns and design styles,
00:01:18
◼
►
but there's not a single coherent target
00:01:21
◼
►
that they seem to be going towards.
00:01:23
◼
►
Like some apps look like Apple Music,
00:01:25
◼
►
like the new stock UI looks like Apple Music,
00:01:27
◼
►
some apps look like Apple Maps,
00:01:29
◼
►
which is a totally different style
00:01:30
◼
►
than Music and everything else.
00:01:32
◼
►
A lot of apps have seemingly not been modified at all
00:01:35
◼
►
or not been reconsidered design-wise since iOS 7.
00:01:38
◼
►
And iOS 7's pretty old now,
00:01:41
◼
►
and I think the iOS 7 style looks pretty dated
00:01:44
◼
►
and is not really appropriate anymore,
00:01:47
◼
►
which is a big thing I wanna address in Overcast actually,
00:01:50
◼
►
'cause Overcast still looks very iOS 70 in a lot of ways,
00:01:53
◼
►
and I'd like to update that in the next major version.
00:01:56
◼
►
But one of the problems is I don't really know
00:01:58
◼
►
what to update it to, because it seems like Apple
00:02:01
◼
►
is designing in different directions in some of these apps,
00:02:05
◼
►
and I would like, I think it's time for iOS 12,
00:02:09
◼
►
I think it's time for a single coherent redesign
00:02:13
◼
►
of the system on the level of iOS 7,
00:02:16
◼
►
or at least on the level of iOS 6,
00:02:19
◼
►
and just provide coherent direction of here is the new design.
00:02:24
◼
►
A lot of this is prompted by the iPhone X,
00:02:27
◼
►
a lot of the need for this is prompted by the iPhone X,
00:02:30
◼
►
because you have such a tall, skinny aspect ratio,
00:02:32
◼
►
it's very hard to reach things at the top of the screen.
00:02:35
◼
►
You also have an OLED screen now,
00:02:37
◼
►
so black looks really good,
00:02:39
◼
►
and people really want a lot more black,
00:02:41
◼
►
and also there can be a power savings
00:02:43
◼
►
to having a darker theme compared to a lighter theme.
00:02:47
◼
►
So there's these changes now that not only
00:02:50
◼
►
is the iOS 7 style design very dated looking,
00:02:53
◼
►
just trend-wise, but also it kind of falls down
00:02:56
◼
►
functionally in a number of areas,
00:02:57
◼
►
making everything so white,
00:02:59
◼
►
and keeping so many important controls at the top,
00:03:01
◼
►
that I think in the new world we're now in,
00:03:04
◼
►
we need a new design, and we need a coherent,
00:03:06
◼
►
we need Apple to show us a single coherent design direction
00:03:11
◼
►
that we should all be going in.
00:03:12
◼
►
- Yeah, and I think to that end,
00:03:16
◼
►
I totally agree that it would be lovely to have,
00:03:18
◼
►
I feel like when iOS 7 was released,
00:03:23
◼
►
there was a very clear, straight look and feel
00:03:27
◼
►
that everything, well, other than the Notes app,
00:03:30
◼
►
everything has sort of moved towards,
00:03:34
◼
►
and then it seems like now they're kind of
00:03:36
◼
►
experimenting out again, which is fine,
00:03:38
◼
►
and it isn't necessarily problematic,
00:03:40
◼
►
but it is like, I think in general,
00:03:42
◼
►
we look to the system apps to lead the way
00:03:46
◼
►
and to be an example, and so it certainly would be nice
00:03:49
◼
►
to get a sense from that, or even, ideally,
00:03:51
◼
►
it would be even more over to have a specific
00:03:54
◼
►
sort of proclamation about what the design,
00:04:00
◼
►
the standard design should look like,
00:04:02
◼
►
and if you wanna go different, that's great.
00:04:04
◼
►
If you want your app to have its own unique feel,
00:04:07
◼
►
that's awesome, but if you're trying to be,
00:04:10
◼
►
feel more system, feel more built in,
00:04:13
◼
►
what does that look like?
00:04:14
◼
►
And I feel in some ways, it reminds me,
00:04:16
◼
►
I feel like the material design guidelines
00:04:19
◼
►
that came out for Android is a good example,
00:04:23
◼
►
I think, of that is a very consistent, cohesive
00:04:26
◼
►
set of design criteria and examples that can apply
00:04:31
◼
►
to a lot of situations, and I just don't feel
00:04:33
◼
►
like we have that, and I think along those lines,
00:04:35
◼
►
I've also been thinking UIKit is very complete,
00:04:39
◼
►
but I also think that it's, in a weird way,
00:04:42
◼
►
it still misses a bunch of little things,
00:04:45
◼
►
and I would love to see those fully fleshed out.
00:04:48
◼
►
Like, there are some controls that I feel like
00:04:50
◼
►
I'm doing many, I create many times.
00:04:54
◼
►
I mean, something that comes to mind, for example,
00:04:56
◼
►
is like a login form.
00:04:58
◼
►
Like, I've written, that's the same code
00:05:00
◼
►
with the same kind of logic and the same kind of experience
00:05:03
◼
►
so many times, and it's like, why isn't this
00:05:05
◼
►
a standard control, that so many apps have a thing
00:05:09
◼
►
where it's gonna ask you for two fields,
00:05:10
◼
►
one of them's a password field, the password field
00:05:12
◼
►
should have, you know, you do the autocorrect differently
00:05:15
◼
►
in the password field than the other field,
00:05:16
◼
►
you want the, when you hit next on the first field,
00:05:19
◼
►
which is username or password, it should go
00:05:20
◼
►
to the next field, like, this is one of these things
00:05:23
◼
►
that, while iOS is fairly complete, there's a lot
00:05:26
◼
►
of these little standard controls, or like a modal blocker
00:05:29
◼
►
is another one that I think of, that almost every one
00:05:30
◼
►
of my apps, at some point, if you do any kind
00:05:32
◼
►
of in-app purchase or something like that,
00:05:34
◼
►
you have kind of this modal blocking UI.
00:05:36
◼
►
Why isn't there a standard UI kit version of that?
00:05:39
◼
►
And you know, while that's, and both in terms of leading
00:05:42
◼
►
a, towards a consistent design experience,
00:05:45
◼
►
but also to just kind of round out some of these
00:05:48
◼
►
rough edges that, you know, every app on iOS
00:05:52
◼
►
is having to implement their own version of,
00:05:54
◼
►
at that point, it should eventually be
00:05:55
◼
►
a system-wide thing, probably.
00:05:58
◼
►
You have anything else on the iOS side?
00:06:01
◼
►
- I think the only other thing that comes to mind
00:06:02
◼
►
is just, I would love to see some kind of system-wide
00:06:05
◼
►
dark mode support.
00:06:07
◼
►
I think increasingly, it seems like dark modes
00:06:09
◼
►
are a thing that a lot of people want,
00:06:13
◼
►
especially iPhone X, on the iPhone X.
00:06:16
◼
►
And so having a consistent system-wide sort of setting
00:06:20
◼
►
for that, that, you know, the user would open
00:06:22
◼
►
Control Center, go to dark, hit dark mode,
00:06:24
◼
►
and then, you know, their phone switches over into that,
00:06:27
◼
►
and then as an app, I can respond to that setting,
00:06:30
◼
►
rather than it being something that is, you know,
00:06:32
◼
►
I'm doing at my app level, which means, you know,
00:06:35
◼
►
it's inconsistent between applications.
00:06:37
◼
►
So I just like to see that as a, you know,
00:06:39
◼
►
as a system-wide switch that they could,
00:06:41
◼
►
a user could switch.
00:06:43
◼
►
- Moving on to Mac OS.
00:06:46
◼
►
I don't have a lot to say,
00:06:47
◼
►
because I'm barely a Mac developer.
00:06:49
◼
►
However, just to repeat the rumor that came out
00:06:51
◼
►
a couple weeks ago that they were working on
00:06:52
◼
►
some kind of cross iOS and Mac OS UI library or something,
00:06:56
◼
►
that sounds awesome, and I really hope that's real.
00:06:58
◼
►
And I would love to see the beginnings
00:07:01
◼
►
of something like that, you know,
00:07:02
◼
►
even though it's probably a major project
00:07:04
◼
►
that is probably gonna take years to actually flesh out,
00:07:07
◼
►
if it's underway at all, I would love to see part of that.
00:07:11
◼
►
- Yeah, or at least to indicate that it's coming,
00:07:13
◼
►
I think would be, like, if it's,
00:07:15
◼
►
it would be, it's new, even if it isn't,
00:07:18
◼
►
the first version isn't the full and most complete thing
00:07:20
◼
►
you could imagine, I would love to just sort of see
00:07:23
◼
►
clear indications that that is something that
00:07:26
◼
►
they are putting weight behind and are getting into,
00:07:29
◼
►
and if we get the first sort of baby steps of that
00:07:32
◼
►
this year even, that would be great.
00:07:35
◼
►
I also wanted to have a brief section here on Swift.
00:07:38
◼
►
Even though I barely use it so far,
00:07:41
◼
►
I would like to see just basically maturing of the language
00:07:44
◼
►
so that maybe I could use more of it.
00:07:46
◼
►
For me, one of the big things there is I wanna see,
00:07:49
◼
►
you know, broadening of Swift on the server side.
00:07:51
◼
►
I definitely have more uses for that,
00:07:53
◼
►
for it there that I would love to use,
00:07:54
◼
►
but it's still pretty young for that,
00:07:56
◼
►
and there's still not a lot of great,
00:07:58
◼
►
like, supporting libraries for that.
00:08:00
◼
►
Also, just maturing language-wise,
00:08:03
◼
►
I know some people are waiting on ABI stability,
00:08:05
◼
►
that that brings a number of other benefits,
00:08:06
◼
►
that would be nice from practical standpoints,
00:08:08
◼
►
but also I wanna see the concurrency story
00:08:12
◼
►
really start to play out there.
00:08:13
◼
►
Like, what does that look like, especially, you know,
00:08:16
◼
►
in places where it's kind of badly needed,
00:08:17
◼
►
like the server side where you don't have
00:08:19
◼
►
Grand Central Dispatch waiting for you, you know.
00:08:21
◼
►
I wanna know more about that, I wanna see Swift kind of,
00:08:25
◼
►
you know, just mature and stabilize to enable people
00:08:28
◼
►
to use it more and more ways and more places.
00:08:31
◼
►
- Yeah, I mean, and I use, so I do actually use Swift
00:08:35
◼
►
in Workhouse++ exclusively,
00:08:37
◼
►
and I agree with all of those things.
00:08:39
◼
►
Like, I think the thing that I wish I could see more
00:08:42
◼
►
in Swift is just this overall vague,
00:08:44
◼
►
this overall general sense that it's stable and mature,
00:08:49
◼
►
that the thing that is most frustrating to me with Swift
00:08:53
◼
►
is where, like, there's this, it feels like
00:08:55
◼
►
this never-ending stream of like,
00:08:57
◼
►
hey, here's this other cool thing
00:08:58
◼
►
that we thought we could do.
00:09:00
◼
►
Hey, what about this cool thing?
00:09:01
◼
►
Hey, what about this cool thing?
00:09:03
◼
►
And sometimes that's fine, but a lot of,
00:09:06
◼
►
like every time there's a new major Swift version,
00:09:08
◼
►
it's like, the number of, you know,
00:09:10
◼
►
they're very rarely source compatible
00:09:12
◼
►
and backwards compatible, and while I think initially
00:09:16
◼
►
it was reasonable and wise to not care
00:09:20
◼
►
about source compatibility, like from Swift version one
00:09:23
◼
►
to Swift version two, they, you know, just say like,
00:09:26
◼
►
hey, this is not gonna be source compatible.
00:09:28
◼
►
We're going to, you know, as we make this language
00:09:33
◼
►
the language that we want it to be,
00:09:34
◼
►
we're going to, you know, allow ourselves
00:09:37
◼
►
the freedom to make changes,
00:09:38
◼
►
and I think that has worked very well.
00:09:40
◼
►
Like, yeah, the language has improved dramatically
00:09:43
◼
►
as a result, but I will say it's a point where it's like,
00:09:47
◼
►
can this just be, like, can this just be done yet?
00:09:50
◼
►
Like, can we just move on and say like,
00:09:53
◼
►
okay, this is what we're gonna do
00:09:54
◼
►
with the understanding that it may not be perfect,
00:09:56
◼
►
that the language will never be perfect,
00:09:59
◼
►
but it's kind of frustrating to have this feeling
00:10:02
◼
►
that if any time there's a new version of Swift,
00:10:04
◼
►
if I recompile my app, then suddenly
00:10:06
◼
►
half of the things are broken,
00:10:07
◼
►
and sometimes there's migration tools
00:10:11
◼
►
that are helpful for that, but it feels like
00:10:13
◼
►
such a dangerous thing to have to go
00:10:17
◼
►
and make wide reaching changes
00:10:19
◼
►
throughout my entire application
00:10:21
◼
►
because of a language update.
00:10:25
◼
►
Like, it's not something that makes me feel great,
00:10:28
◼
►
so I just wish that he'd get to that point,
00:10:30
◼
►
have it feel stable, and for Swift to kind of be boring,
00:10:33
◼
►
you know, like every year, it's sort of like
00:10:35
◼
►
with Objective-C where it's like every year
00:10:37
◼
►
we get a little something, like,
00:10:39
◼
►
hey, now we're gonna do the ability to, you know,
00:10:43
◼
►
do wrapping around integer literals, for example.
00:10:46
◼
►
Like, that was like a feature they added to Objective-C
00:10:48
◼
►
that we could do at parentheses around a number,
00:10:52
◼
►
and then it becomes an NSNumber.
00:10:53
◼
►
Like, that's a great little bonus.
00:10:55
◼
►
It doesn't break your old version that was doing,
00:10:58
◼
►
you know, creating the NSNumber directly,
00:10:59
◼
►
but it's a nice little bonus,
00:11:00
◼
►
and I'd love to get to that place with Swift
00:11:02
◼
►
where it's like every year it gets a little bit better,
00:11:04
◼
►
but not in ways that compel you to take advantage of them
00:11:08
◼
►
because if you, you know, you have to switch your code around
00:11:11
◼
►
or just, you know, these little quality of life changes.
00:11:14
◼
►
That would just make me feel better about using it
00:11:17
◼
►
'cause at this point, I use it because I feel like
00:11:19
◼
►
it's good for me to, you know, understand Swift,
00:11:22
◼
►
to use it in a big app, and to future-proof myself
00:11:26
◼
►
as a result, but I don't, you know,
00:11:30
◼
►
I still have some of these hang-ups around it
00:11:32
◼
►
that just aren't great.
00:11:34
◼
►
- Yeah, it seems like the perfect is very much
00:11:36
◼
►
being the enemy of the good with Swift now,
00:11:39
◼
►
and they, you know, they need to settle it down,
00:11:42
◼
►
and they have, like, they've made great progress
00:11:44
◼
►
towards that, but it still is a moving target,
00:11:48
◼
►
and, you know, a lot of people want their programming
00:11:51
◼
►
language to be a source of excitement.
00:11:53
◼
►
I really don't.
00:11:54
◼
►
I want my programming language to be boring, as you said,
00:11:56
◼
►
like, because I don't wanna have to worry about it
00:11:59
◼
►
changing every year, like, I want to just, you know,
00:12:01
◼
►
be working at a higher level than that
00:12:03
◼
►
with where I get my excitement.
00:12:06
◼
►
Anyway, before we jump into the big one,
00:12:08
◼
►
which I'll give you a hint is not tvOS,
00:12:11
◼
►
we are brought to you this week by Squarespace.
00:12:13
◼
►
Enter offer code radar at checkout
00:12:15
◼
►
to get 10% off your first purchase.
00:12:17
◼
►
Make your next move with Squarespace.
00:12:20
◼
►
Squarespace lets you easily create a website
00:12:22
◼
►
for your next idea with a unique domain,
00:12:24
◼
►
award-winning templates, and much more.
00:12:27
◼
►
Whether you wanna create an online store,
00:12:29
◼
►
or a portfolio, or a blog, or so many other kinds of website,
00:12:33
◼
►
you can even make podcasts there.
00:12:34
◼
►
Squarespace is an all-in-one platform
00:12:36
◼
►
that lets you do exactly that.
00:12:38
◼
►
There's nothing to install, no patches to worry about,
00:12:41
◼
►
no upgrades needed, you don't have to worry
00:12:42
◼
►
about any of that stuff, Squarespace has it covered.
00:12:45
◼
►
And if you need any help, they have award-winning
00:12:47
◼
►
24/7 customer support.
00:12:49
◼
►
And it's so easy with Squarespace to do everything
00:12:51
◼
►
you need to make a website, from easily grabbing
00:12:53
◼
►
a unique domain name, and building amazing templates,
00:12:57
◼
►
these are award-winning, beautiful design templates
00:12:59
◼
►
for you to show off your great ideas.
00:13:01
◼
►
I use Squarespace for a couple of sites,
00:13:03
◼
►
and it is just so incredibly easy.
00:13:05
◼
►
I think a lot of listeners to this show
00:13:07
◼
►
probably are likely to have the skill set
00:13:08
◼
►
where you could make your own CMS,
00:13:10
◼
►
or you can run a server and host CMS there.
00:13:14
◼
►
But that's usually not a very good use of your time.
00:13:16
◼
►
You really shouldn't be doing that,
00:13:17
◼
►
you should be doing bigger, better things
00:13:19
◼
►
than running your own CMS in your server.
00:13:21
◼
►
And that's what Squarespace lets you do,
00:13:22
◼
►
it lets you take that time back,
00:13:25
◼
►
and let them take care of the boring website hosting,
00:13:27
◼
►
and you can do better things.
00:13:29
◼
►
So, go to squarespace.com, Squarespace plans start
00:13:32
◼
►
at just $12 a month, and you can start a trial
00:13:35
◼
►
with no credit card required.
00:13:38
◼
►
When you decide to sign up for Squarespace,
00:13:40
◼
►
make sure you use offer code RADAR to get 10%
00:13:43
◼
►
off your first purchase, and to show your support
00:13:45
◼
►
for this show, we thank Squarespace for their support.
00:13:47
◼
►
Squarespace, make your next move, make your next website.
00:13:50
◼
►
So, here comes the big one, I think both of us
00:13:54
◼
►
have a lot to say for the platform that I think
00:13:58
◼
►
gives us the most wish list items, WatchOS.
00:14:02
◼
►
To me, what it comes down to with WatchOS,
00:14:06
◼
►
the big thing, I have a lot of small complaints
00:14:08
◼
►
about WatchOS as a developer, but the big complaint for me,
00:14:14
◼
►
Steve Jobs, during the very first iPhone keynote
00:14:17
◼
►
in Macworld 2007, there was a section debuting
00:14:22
◼
►
the Safari web browser on the iPhone,
00:14:24
◼
►
and this was a revelation, and Steve famously said
00:14:27
◼
►
that all the other phones at the time only had, quote,
00:14:30
◼
►
baby web browsers, you only seeing the baby internet,
00:14:34
◼
►
and the iPhone was the breakthrough that would bring
00:14:36
◼
►
the real internet, real full web capability to phones.
00:14:41
◼
►
WatchKit is only letting us build baby apps.
00:14:45
◼
►
And Apple does not use WatchKit themselves,
00:14:49
◼
►
and it really, really shows.
00:14:51
◼
►
Considering the iPhone 1 nostalgia here,
00:14:54
◼
►
it's kinda like when iPhone OS 1.0,
00:14:57
◼
►
there was no native app API for developers,
00:15:00
◼
►
and they gave us the sweet solution of these inferior,
00:15:04
◼
►
limited web apps, and Apple's own apps were all native,
00:15:08
◼
►
and they didn't, you know, Apple's apps were way better
00:15:10
◼
►
than what people could do with web apps in 2007.
00:15:13
◼
►
Apple needs to either port all of their watch apps
00:15:19
◼
►
to WatchKit, which would require them to expand
00:15:22
◼
►
and improve it quite a bit to accommodate
00:15:24
◼
►
all the things they do in their apps,
00:15:26
◼
►
or they need to let developers finally write watch apps
00:15:29
◼
►
with the same UI framework and the same APIs
00:15:32
◼
►
that Apple uses for its watch apps,
00:15:34
◼
►
because until that happens, we will only ever be able
00:15:38
◼
►
to make baby apps for the watch.
00:15:40
◼
►
And it's not reaching its full potential.
00:15:43
◼
►
It's not even close to reaching its full potential.
00:15:45
◼
►
Ultimately, I have a lot of specifics about watchOS,
00:15:49
◼
►
but the big general thing is we can only write baby apps
00:15:53
◼
►
with WatchKit, and Apple doesn't use it, and it shows.
00:15:57
◼
►
- Yeah, I mean, and I will say, like,
00:15:59
◼
►
while I have a very long list of like,
00:16:01
◼
►
kinda wishlist items for watchOS,
00:16:03
◼
►
I think the reason why I have such a long list
00:16:06
◼
►
is because I feel like the platform has so much promise.
00:16:08
◼
►
It has such a, there's so many possibilities
00:16:11
◼
►
that are untapped there in a way that the iPhone and iOS
00:16:15
◼
►
or some of the other platforms like the Mac
00:16:16
◼
►
feel very mature, very stable, very kind of done,
00:16:21
◼
►
whereas I still feel like I've spent a tremendous amount
00:16:24
◼
►
of time making apps for the watch,
00:16:25
◼
►
and I feel like there is still a lot of potential there.
00:16:27
◼
►
There's a lot of things that I wish I was able to do,
00:16:30
◼
►
but I feel like I'm sort of being held back.
00:16:33
◼
►
And I mean, so much of this feels like
00:16:35
◼
►
it's this weird hangover from, you know,
00:16:38
◼
►
WatchKit 1 apps, where it was this weird, like,
00:16:41
◼
►
clever but very weird situation where, you know,
00:16:43
◼
►
the UI ran on the watch, but the logic ran on the phone.
00:16:47
◼
►
And so, you know, currently you have, you know,
00:16:49
◼
►
all of your UI still goes into one giant storyboard,
00:16:52
◼
►
and you can write, you know, send data to UI controls,
00:16:57
◼
►
but you can't read it back,
00:16:58
◼
►
and you can't dynamically change it.
00:17:01
◼
►
You have to, you know, you either have to have
00:17:05
◼
►
lots of different, you know, interfaces
00:17:07
◼
►
for different layouts, or have layouts that are very,
00:17:11
◼
►
you know, it's like have lots of hidden controls
00:17:14
◼
►
and things like that, or you end up doing crazy stuff
00:17:17
◼
►
like I do in Workouts++.
00:17:19
◼
►
Like, I wanted to have a totally customized
00:17:22
◼
►
workout display, and so I render that as an image
00:17:27
◼
►
and send it to the screen once a second,
00:17:30
◼
►
which is terrible, but it works well enough.
00:17:33
◼
►
But it's like, there's all these situations like that
00:17:35
◼
►
that mean that I'm not able to do things
00:17:37
◼
►
that I would love to do.
00:17:38
◼
►
Like, I would love to be able to have more animation
00:17:41
◼
►
and, you know, the similar types of experiences
00:17:44
◼
►
in my applications, but it's really hard to do
00:17:47
◼
►
animation right now in WatchOS, but clearly it's possible.
00:17:50
◼
►
Just look at the first-party apps.
00:17:52
◼
►
Like, they are doing a lot of things there
00:17:54
◼
►
that are clearly possible, and as best I understand,
00:17:57
◼
►
from a technical perspective, largely they're just
00:18:00
◼
►
running UI kit applications with a slightly different,
00:18:04
◼
►
you know, a few different controls, but they have
00:18:07
◼
►
the ability for us to do that, and it's really strange,
00:18:11
◼
►
I've thought, on the UI side of things, that they keep,
00:18:14
◼
►
they've added SpriteKit and SceneKit to it,
00:18:18
◼
►
which I've tried a little bit, but it's like,
00:18:21
◼
►
they're way overblown for what most applications
00:18:24
◼
►
are trying to do, but yet they still haven't given us
00:18:29
◼
►
UI kit, which is the one that would actually be useful,
00:18:32
◼
►
and maybe it's not full UI kit, like I don't need
00:18:34
◼
►
UI table views on my watch, but having the ability
00:18:39
◼
►
to override drawRect on a view and put things into it,
00:18:45
◼
►
or I'm able to dynamically add and remove subviews,
00:18:48
◼
►
like some of these really basic operations, I think,
00:18:51
◼
►
would dramatically increase the capability
00:18:55
◼
►
of our applications, and it's like, clearly it's possible,
00:18:58
◼
►
so that gives me some encouragement that it's not like
00:19:01
◼
►
we're asking for the moon, that it's just, you know,
00:19:03
◼
►
that it's technically impossible to do these things,
00:19:06
◼
►
because their apps are currently doing it,
00:19:08
◼
►
and I just hope that eventually we get to the point
00:19:10
◼
►
that they say, you know, we're gonna drop this paradigm
00:19:13
◼
►
that was necessary for watch kit one, and we're gonna
00:19:17
◼
►
replace it with something new, with something better,
00:19:19
◼
►
and kind of run in a different direction that will allow us
00:19:23
◼
►
to do so much more, because I feel like the types
00:19:26
◼
►
of applications and how compelling those applications can be
00:19:29
◼
►
would just dramatically increase when they finally
00:19:32
◼
►
do that, hopefully.
00:19:33
◼
►
- Yeah, because watch kit, it was designed back
00:19:36
◼
►
for the watch one when the apps were running on the phone,
00:19:39
◼
►
and it was just sending the, basically transmitting
00:19:42
◼
►
basic UI commands to the watch UI, and having it kind of
00:19:46
◼
►
run remotely, and so it's a very simplistic UI framework
00:19:51
◼
►
that's very, very limited in all these ways, you know,
00:19:53
◼
►
and it seemed like that was just the temporary solution,
00:19:58
◼
►
that maybe it was rushed together, you know, at a late time
00:20:01
◼
►
in the project, when they decided, oh, we do need
00:20:02
◼
►
third party apps from day one, or something like that,
00:20:04
◼
►
you know, we've heard mixed things here and there,
00:20:05
◼
►
it doesn't matter, but it seems like that was like
00:20:09
◼
►
kind of a temporary rush job, to get the minimum
00:20:11
◼
►
functionality for apps to work on the watch,
00:20:14
◼
►
and then rather than throwing it away when they had
00:20:16
◼
►
more time and moved native execution to the watch,
00:20:20
◼
►
they just kept it, and now we're running this, like,
00:20:23
◼
►
limited, this very limited UI framework as our only way
00:20:28
◼
►
to make watch UIs, that's not sustainable long term,
00:20:33
◼
►
and you can tell, if it was so good, why doesn't Apple
00:20:36
◼
►
use it, you know, and the answer is, because it's not so
00:20:39
◼
►
good, it's very limited, and as, you know, for all these
00:20:42
◼
►
reasons you just said, there are so many ways to make
00:20:44
◼
►
better and nicer watch apps if we had direct access
00:20:49
◼
►
to the version of UI kit that they run, but we don't,
00:20:53
◼
►
and it's kind of, on so many levels it's frustrating
00:20:57
◼
►
that, you know, it really does feel very similar to
00:21:00
◼
►
the iPhone 1 with us having to make web apps and Apple
00:21:03
◼
►
doing all the cool native stuff, and there, you know,
00:21:05
◼
►
I can get into some specifics for what specifically
00:21:08
◼
►
bothers me about my watch app capability beyond just
00:21:11
◼
►
the UI stuff that you mentioned, which, by the way,
00:21:14
◼
►
so much of what makes watch apps limited and in many ways
00:21:18
◼
►
mediocre is those UI limitations, like so many things
00:21:21
◼
►
about, oh well, you can't have this kind of title show
00:21:23
◼
►
here without rendering the whole screen manually,
00:21:25
◼
►
or you can't have this kind of screen that presents
00:21:28
◼
►
from this kind of screen, or like, just weird limitations,
00:21:31
◼
►
or like, gesture recognizer priority, like I can't do
00:21:34
◼
►
certain types of designs because it makes the taps
00:21:37
◼
►
not recognize properly because I can't have control
00:21:39
◼
►
over the gesture recognizers, like, there's so many
00:21:41
◼
►
little things, little and big things, because watch OS,
00:21:46
◼
►
or watch kit, is not UI kit, it does not expose what
00:21:49
◼
►
UI kit exposes, and we could make such better apps
00:21:53
◼
►
if we had what we have on iOS, and it doesn't,
00:21:55
◼
►
and you're right, it doesn't seem like there's any kind
00:21:57
◼
►
of major technical reason why we can't, because those APIs
00:22:01
◼
►
are all there, just they're private on the watch,
00:22:03
◼
►
and we can't use them, and only Apple can use them.
00:22:05
◼
►
You know, I'm not asking for a lot of, like, you know,
00:22:07
◼
►
heavy processing things or trying to keep the screen
00:22:10
◼
►
on all the time or anything like that, like,
00:22:13
◼
►
we're asking for, like, better button libraries
00:22:16
◼
►
and better view libraries and stuff.
00:22:19
◼
►
Specifically, you know, I also have problems with
00:22:22
◼
►
the media capabilities, I think it's pretty clear that
00:22:25
◼
►
a very major use case for the watch, especially as it
00:22:28
◼
►
becomes more independent from the phone, is audio playback,
00:22:31
◼
►
and Apple really does not make that good, and I've
00:22:34
◼
►
documented this in so many ways in the past, so I'm not
00:22:37
◼
►
gonna go deep on it now, I would say specifically I would
00:22:41
◼
►
like to have background audio for any app, not just
00:22:44
◼
►
workout apps, that's the big one, let the app continue
00:22:47
◼
►
to work in the background, just like it does on iOS,
00:22:50
◼
►
and just like it does on the watch, if it happens to be
00:22:51
◼
►
a workout app that's running a workout, so we know
00:22:53
◼
►
it's possible, but you know, let any app play background
00:22:57
◼
►
audio on the watch, the same way it works on the phone,
00:22:59
◼
►
only one of them can be playing it at once, that's fine,
00:23:01
◼
►
that way you keep memory in check and everything,
00:23:03
◼
►
let the app run in the background while playing audio,
00:23:06
◼
►
and drop WK audio file player and that entire awful system.
00:23:10
◼
►
I would also like to see the MP now playing info center,
00:23:15
◼
►
or an equivalent, to let us control what shows on the now
00:23:17
◼
►
playing screen, and also MP remote command center,
00:23:22
◼
►
or its equivalent, which lets us interpret the skip back,
00:23:27
◼
►
skip forward, play pause buttons, or commands from AirPods
00:23:30
◼
►
and other Bluetooth headphones, lets us interpret those
00:23:32
◼
►
in our app in custom ways, these are both things that
00:23:35
◼
►
have been listed on the iPhone for about a decade,
00:23:38
◼
►
and they're great, and so we need that, or we need some
00:23:43
◼
►
equivalent of those things on watchOS.
00:23:45
◼
►
- Yeah, and I think I'd add to that, in the same vein,
00:23:47
◼
►
I would love to be able to have some kind, like the now
00:23:52
◼
►
playing app, I would love to see something the equivalent
00:23:57
◼
►
of a now playing interface controller that could be
00:23:59
◼
►
inserted into other apps, so for me, for example,
00:24:02
◼
►
I'd love to be able to, if you're listening to music
00:24:06
◼
►
from your iPhone, or from the music app on the watch,
00:24:12
◼
►
to be able to control that within the app, that you don't
00:24:14
◼
►
have to leave and come back, or at the very least,
00:24:16
◼
►
to be able to control the volume.
00:24:18
◼
►
- Yes, volume's a big one.
00:24:19
◼
►
- It is incredibly frustrating that, especially because
00:24:23
◼
►
AirPods are Apple's, their solution for it is a Bluetooth
00:24:28
◼
►
headset that has no way to control the volume,
00:24:30
◼
►
it would be awesome if they allowed applications to,
00:24:35
◼
►
either, I could understand, maybe they don't want you
00:24:37
◼
►
to be programmatically able to set the volume,
00:24:39
◼
►
but then at least give me a control, like give me some
00:24:41
◼
►
UI element that I can add to my application that does
00:24:44
◼
►
allow you to control the volume, I would love to see that,
00:24:47
◼
►
and I think it has, it allows for just a broadening
00:24:50
◼
►
of what's possible, you know, with audio on the watch,
00:24:54
◼
►
beyond even, you know, like being able to play audio
00:24:56
◼
►
is really important, but I think even at the very least,
00:24:59
◼
►
being able to control the audio that is playing from
00:25:00
◼
►
another source would be a massive step forward.
00:25:03
◼
►
- Yeah, exactly, and I would also wish for better and
00:25:08
◼
►
more informative phone to watch file transfers,
00:25:11
◼
►
the file transfer API is very, very limited,
00:25:15
◼
►
specifically, it does not allow you to create a good
00:25:17
◼
►
user experience because, A, it's super slow,
00:25:20
◼
►
even if WiFi is available, even if it's on its charger,
00:25:23
◼
►
it will not use WiFi, if it can use Bluetooth instead,
00:25:27
◼
►
and Bluetooth is way slower, so you basically have
00:25:30
◼
►
a pretty bad situation where like, you can't force
00:25:34
◼
►
the transfer to use the fast WiFi, even, you know,
00:25:37
◼
►
no matter what the power state is.
00:25:38
◼
►
Also, there's no progress reporting, which is a huge problem,
00:25:43
◼
►
so basically, you can't create a good user experience
00:25:47
◼
►
because the user has this long-running, you know,
00:25:51
◼
►
horribly slow Bluetooth file transfer that they're
00:25:54
◼
►
waiting on, and all you can say is,
00:25:57
◼
►
I think it's transferring, or it's done, that's it,
00:26:00
◼
►
those are the only two states you can tell is,
00:26:02
◼
►
I think it's going and it's done, you know,
00:26:05
◼
►
what we're asking for here is not the world, you know,
00:26:09
◼
►
what we're asking for here is ways to let us make apps
00:26:14
◼
►
that give people good functionality
00:26:16
◼
►
and good user experiences.
00:26:18
◼
►
That's what we want from watchOS, and I just,
00:26:21
◼
►
I don't wanna be making a baby app anymore,
00:26:23
◼
►
I wanna be making real watchOS apps so that I can
00:26:26
◼
►
actually make good watchOS apps.
00:26:29
◼
►
- Yeah, and to that end, what I love about some of these
00:26:31
◼
►
things that we're asking for, like, I would love, you know,
00:26:33
◼
►
to have faster transfers between the phone and the watch,
00:26:36
◼
►
or just for the watch in general to be faster downloading,
00:26:38
◼
►
like, even if it's downloading from the internet.
00:26:41
◼
►
But I love, what's frustrating and encouraging to me
00:26:44
◼
►
is that I know this is technically possible,
00:26:47
◼
►
because if I take a Series 3 Apple Watch,
00:26:49
◼
►
and I put my phone in airplane mode,
00:26:52
◼
►
and I'm not on any wifi, like I go walk out into a field
00:26:54
◼
►
that has good LTE reception, I can download, you know,
00:26:58
◼
►
I can download podcasts from remote servers
00:27:01
◼
►
at tremendous speeds.
00:27:03
◼
►
Like, I can download an entire podcast in 10 seconds.
00:27:06
◼
►
So, tech, clearly, the hardware and the frameworks
00:27:09
◼
►
are there for us to allow this.
00:27:11
◼
►
It's just a question of opening it up.
00:27:13
◼
►
And so I would hope that at a certain point,
00:27:15
◼
►
they just allow it.
00:27:16
◼
►
And they say, if they take a hit on battery life,
00:27:18
◼
►
but it means that, like, I would far prefer
00:27:21
◼
►
for my watch to be incredibly compelling and useful,
00:27:25
◼
►
and have a more difficulty on battery life,
00:27:29
◼
►
because honestly, battery life has gotten so good
00:27:32
◼
►
that I imagine they have the headroom to do this anyway.
00:27:34
◼
►
But I would love to, yeah, just get rid of Bluetooth
00:27:37
◼
►
unless you absolutely have to,
00:27:38
◼
►
or at least give us the ability to say,
00:27:41
◼
►
this is a high priority or user interactive task.
00:27:44
◼
►
And so, like, for a user interactive task,
00:27:48
◼
►
even if there's some app review that I have to compel,
00:27:52
◼
►
I have to say why I'm user interactive,
00:27:53
◼
►
why I need the permission to skip Bluetooth
00:27:56
◼
►
and go straight to wifi, I don't care.
00:27:59
◼
►
But I would love to have the ability to do that.
00:28:01
◼
►
I think it would make the app so much more compelling
00:28:03
◼
►
and just open up so many more things.
00:28:05
◼
►
- I would also like to see, I think it's time
00:28:08
◼
►
for developers to be able to make custom watch faces.
00:28:11
◼
►
That that should be an app type that we can offer,
00:28:13
◼
►
or an extension type that we can offer.
00:28:15
◼
►
Because the Apple Watch has so much potential
00:28:18
◼
►
for smarts and for intelligence,
00:28:21
◼
►
and for just cool design choices in the watch faces.
00:28:24
◼
►
It's hard to do in a way that's power efficient
00:28:28
◼
►
to offer developers this ability.
00:28:30
◼
►
I know it's hard, but there's a lot of smart people
00:28:32
◼
►
working at Apple, and the watch is now, what,
00:28:34
◼
►
three years old?
00:28:35
◼
►
So, I think they can make it happen if they want to.
00:28:37
◼
►
And it's also pretty clear that Apple is not gonna supply
00:28:40
◼
►
a lot of custom watch faces themselves.
00:28:42
◼
►
They added them very slowly, very, very slowly.
00:28:45
◼
►
I'd like to be able to do that.
00:28:46
◼
►
And so, that's one more little kind of stretch goal
00:28:49
◼
►
wish list item, besides drop all of watch kit.
00:28:54
◼
►
Minor thing here, also let us make custom watch faces.
00:28:56
◼
►
- Yeah, and I think, or at the very least,
00:28:58
◼
►
I would love to see a better mechanism for complications.
00:29:01
◼
►
That I feel like the current complication system
00:29:04
◼
►
is built around the concept of time travel.
00:29:06
◼
►
- Right, which is flop, I think.
00:29:08
◼
►
- A feature that was there in the first early versions
00:29:11
◼
►
of watchOS, and now I think is off by default.
00:29:13
◼
►
Like, no one likes it, but the basic sort of
00:29:16
◼
►
complication system is still built around this concept
00:29:19
◼
►
of having to provide data for the future and the past.
00:29:22
◼
►
And like, I would love to see that kind of overwritten
00:29:24
◼
►
and be made more straightforward and more telling
00:29:28
◼
►
to the current situation.
00:29:30
◼
►
All right, well, here's hoping you get some of our wishes,
00:29:32
◼
►
and here's hoping for a good 2018.
00:29:34
◼
►
Thanks for listening, everybody,
00:29:35
◼
►
and we'll talk to you next week.