40: Rethinking Apple Watch Apps
00:00:00
◼
►
Welcome to Under the Radar, a show about independent iOS app development.
00:00:03
◼
►
I'm Marco Arment.
00:00:04
◼
►
>> And I'm David Smith.
00:00:06
◼
►
Under the Radar is never longer than 30 minutes, so let's get started.
00:00:10
◼
►
>> So David, after a very long time of procrastination, including running an entire MP3 encoder, I
00:00:15
◼
►
have finally run out of other things to do, and now I have to finally write my watchOS
00:00:20
◼
►
3 app for Overcast.
00:00:22
◼
►
>> I have enjoyed watching you try and find things to do just to avoid working on this.
00:00:27
◼
►
It has been quite a feat of creativity and energy spent to avoid spending whatever the
00:00:33
◼
►
relatively small amount of effort it probably will take for you to ultimately write your
00:00:36
◼
►
watchOS 3 app.
00:00:39
◼
►
I have to say, so far, I've written a good portion of it so far.
00:00:44
◼
►
It's not done, but it's probably maybe a third to halfway done.
00:00:50
◼
►
And even just having done that little bit, I'm like, "Man, that little bit only took
00:00:55
◼
►
me a couple of days."
00:00:56
◼
►
And I'm like, "You know, I probably should have done this earlier in the summertime."
00:01:02
◼
►
But I didn't.
00:01:04
◼
►
Here we are.
00:01:05
◼
►
So I thought maybe for this week, it might be a good idea to talk about the lead-up to
00:01:10
◼
►
watchOS 3 development and kind of what I've chosen to do for it and why and kind of the
00:01:16
◼
►
lessons I've learned so far in watch development and to some degree the challenges facing watch
00:01:21
◼
►
development today that still remain.
00:01:24
◼
►
And having you here is kind of a golden resource here because you know more about watch development
00:01:29
◼
►
and the watch market than probably anybody outside of Apple and probably many people
00:01:33
◼
►
inside of Apple even.
00:01:37
◼
►
So I thought I'd kind of go through the history of the Overcast watch app briefly and then
00:01:42
◼
►
kind of what I learned and what I've chosen to do now.
00:01:45
◼
►
>> Yeah, I think it makes sense.
00:01:47
◼
►
It's definitely a good time, I think, to be getting back into watch development.
00:01:52
◼
►
And so I think it's a good thing to kind of unpack so we can imagine there's a lot of
00:01:56
◼
►
people in the same situation that you find yourself in who maybe jumped into watch development
00:02:02
◼
►
when it was new and at the time the watch, I think there was a tremendously hyped both
00:02:09
◼
►
internally, from Apple as well, it's just generally it's like, you know, this was their
00:02:14
◼
►
big new next device after the iPad.
00:02:18
◼
►
And so I think there's a lot of excitement about it.
00:02:21
◼
►
It didn't quite go as wildly successfully as some people may have expected or hoped
00:02:25
◼
►
it could be, and watchOS or watch, back then it was watch kit one, was a little bit rough.
00:02:33
◼
►
And so I imagine there's now a lot of people kind of in the situation that you find yourself
00:02:36
◼
►
in of like, maybe it's time to get back in.
00:02:39
◼
►
WatchOS 3 is overall quite a lot better than the last two, and I think it's widely expected
00:02:44
◼
►
that in probably just a few weeks there's going to be the announcement of a next generation
00:02:50
◼
►
device which might make a lot of things that we're doing even easier from a performance
00:02:56
◼
►
perspective.
00:02:59
◼
►
So basically, you basically covered it, so the brief history of watchOS, which is funny
00:03:04
◼
►
because it's kind of funny that we're already on version 3 of the OS even though we're still
00:03:07
◼
►
on version 1 of the hardware, and it's only like a year and a half old, but basically
00:03:13
◼
►
watchOS 1, you know, it came out and as most of our listeners are probably aware, the environment
00:03:20
◼
►
for third party apps was this kind of like split environment where the interface was
00:03:25
◼
►
kind of running on the watch, but all of the code was basically running on the phone as
00:03:30
◼
►
a local extension on the phone, and it was kind of just directing the watch as to what
00:03:34
◼
►
to show on the interface.
00:03:36
◼
►
And this created lots of problems and challenges.
00:03:40
◼
►
It was nice because it was relatively easy to get something going from scratch.
00:03:44
◼
►
One of the great luxuries of that was that your watch extension, because it was running
00:03:50
◼
►
on the phone really, it could read from the local data storage on the phone so that your
00:03:56
◼
►
watch extension and your main iPhone app could share a data store.
00:04:00
◼
►
So there were no issues with syncing or anything like that.
00:04:03
◼
►
It was literally just like read from your database.
00:04:06
◼
►
You might have to do the one time work of creating a container and moving your database
00:04:10
◼
►
into that container, although you have to do that with pretty much any useful extension
00:04:16
◼
►
Once you have that in place, you basically got like free sync.
00:04:19
◼
►
There was no sync to really be had here.
00:04:21
◼
►
You could just show the data from the iOS app right on the watch.
00:04:26
◼
►
The downside of it was that it was very slow and very limited and fairly unreliable as
00:04:32
◼
►
And as you mentioned though, most of us, we thought the watch would be this massive thing,
00:04:36
◼
►
this massive hit, the next big thing, and so many of us, both of us included, developed
00:04:41
◼
►
watch apps before the watch was even out because Apple let us do that and have them there for
00:04:47
◼
►
So we developed these apps before it was even out and we really had very different expectations
00:04:51
◼
►
for how the watch would be used than what happened in reality.
00:04:56
◼
►
And I think even Apple had very different expectations of how apps would work, how good
00:05:01
◼
►
apps could be and would be, how many apps people would actually end up using and what
00:05:04
◼
►
they would end up doing with it.
00:05:06
◼
►
So we all basically made these complex deluxe apps on the watch that were basically like
00:05:11
◼
►
small iPhone apps.
00:05:13
◼
►
And then the real world happened and we realized, oh, this is not that great and it's very cumbersome
00:05:18
◼
►
and they're very slow and they're very unreliable.
00:05:21
◼
►
And so my first version of my app, like many people's, was basically just a shrunken down
00:05:27
◼
►
version of the iPhone navigation stack, my three level navigation of like, hey, if your
00:05:32
◼
►
list of podcasts and playlists on the root screen, then you can go into that and get
00:05:35
◼
►
the list of episodes in each of those podcasts or playlists and then you could go one level
00:05:40
◼
►
deep from that and go to the now playing screen.
00:05:43
◼
►
And I replicated that in my first version of my watch app.
00:05:46
◼
►
It was way too complicated for a watch app in practice and it was far too slow.
00:05:52
◼
►
And most of those features were kind of not needed on the watch.
00:05:55
◼
►
You know, I think we all kind of went through this learning process of realizing, you know,
00:05:59
◼
►
we actually don't want to spend more than like a couple of seconds using a watch app
00:06:03
◼
►
because if you're spending more than a couple of seconds, it's probably faster to just take
00:06:07
◼
►
out your phone where it's way better, way more capable, way faster and way more reliable.
00:06:12
◼
►
So very shortly after I released that first version, once I was able to actually get a
00:06:17
◼
►
watch myself, once the watches came out, I got my own, I lived with it for a little while,
00:06:21
◼
►
I almost immediately rewrote the interface.
00:06:25
◼
►
I kind of made like a version two of the app that was rethought and redesigned for what
00:06:30
◼
►
I learned actually living with the watch.
00:06:33
◼
►
And it was basically a deluxe now playing screen.
00:06:38
◼
►
And this is the version that's still, for our listeners, this is the version that you
00:06:40
◼
►
still see today if you use overcast on the Apple Watch, although there aren't very many
00:06:44
◼
►
of you, which I'll get to.
00:06:46
◼
►
But for the four of you who use overcast on the Apple Watch, this is the version that
00:06:51
◼
►
is still there today where, you know, shortly after getting the watch, I, you know, based
00:06:55
◼
►
on real world usage, I learned what was needed and I made this version two that was a now
00:07:01
◼
►
playing screen with a few extra features to do things like reorder what's playing next
00:07:06
◼
►
or skip to what's playing next or, you know, change the playback effects or the speed you're
00:07:11
◼
►
in like that.
00:07:12
◼
►
This had a number of problems too.
00:07:14
◼
►
One of them was that it was based on fairly non-obvious UI, like to reorder what's next,
00:07:20
◼
►
you would just tap on the album art for what was showing next and it would bring up a menu.
00:07:25
◼
►
But it didn't look like a button and there was kind of no good way to make it look like
00:07:28
◼
►
a button because it was just album art which is already button shaped but everyone thinks
00:07:32
◼
►
it's an image, not a button.
00:07:33
◼
►
So a lot of people just never use that feature and also I was, you know, in trying to keep
00:07:39
◼
►
it to this like one simple screen for watch kit speed basically, I had to bury a lot of
00:07:44
◼
►
features in the force touch menu.
00:07:46
◼
►
And I think we've seen Apple and everybody kind of moving away from the force touch menu
00:07:51
◼
►
having important features because basically nobody ever saw them, nobody ever found them.
00:07:54
◼
►
Have you found that to be the case?
00:07:55
◼
►
Yeah, and I think the clearest proof of this is that in using watchOS 3 heavily since WWDC,
00:08:05
◼
►
in almost every one of Apple's apps, force touch has been either removed in some certain
00:08:12
◼
►
cases or you can now do it in another way.
00:08:17
◼
►
I can't think of honestly actually one example where you have to use force touch anymore.
00:08:24
◼
►
There's usually now, they tend to do the swiped, like the paged interface, you'll swipe to
00:08:31
◼
►
the side for extra controls rather than doing it that way or even you can now customize
00:08:37
◼
►
complications and watch faces in the companion app rather than having to do it on the device
00:08:42
◼
►
with the force touch push.
00:08:44
◼
►
I think in general that paradigm has sort of been determined to be too undiscoverable
00:08:51
◼
►
that people just don't know it's there and if you don't know it's there and you're putting
00:08:55
◼
►
important things behind it, it can get a little bit awkward.
00:08:59
◼
►
Yeah, and I would say we've learned a lot.
00:09:02
◼
►
Even like what I learned with the first version of my app, the whole navigation paradigm where
00:09:07
◼
►
you have this level, then you dive into this level, then you dive into the next level,
00:09:09
◼
►
then you go back, back, back.
00:09:11
◼
►
That works so well on the phone.
00:09:13
◼
►
It's been so standard on the phone for so long, but on the watch I think we've learned
00:09:16
◼
►
that even a navigation stack really doesn't work very well on the watch and should probably
00:09:22
◼
►
Anyway, so watchOS 2 came out last summer and watchOS 2 introduced a pretty big upgrade
00:09:30
◼
►
to what watch apps could do and more importantly how they ran.
00:09:35
◼
►
Basically it moved the watch extension from running on the phone and just kind of remotely
00:09:39
◼
►
directing the interface on the watch to the extension itself running on the watch.
00:09:44
◼
►
You're basically running finally a native app on the watch and this was much faster
00:09:48
◼
►
and much more reliable than watch kit one, but it was still not fast and reliable.
00:09:55
◼
►
It was an improvement, but it was still very slow, still a little bit unreliable.
00:10:02
◼
►
It brought a major challenge to a lot of apps because all of a sudden you couldn't, because
00:10:07
◼
►
the extension was now running on the watch instead of on the phone, you could no longer
00:10:12
◼
►
read from the same data container as the phone app.
00:10:15
◼
►
So you had to, and you did this, we talked about this, you basically had to build in
00:10:19
◼
►
either make the watch app have its own local storage and then have some kind of complicated
00:10:24
◼
►
sync system to sync with the parent app when it was connected and then of course deal with
00:10:29
◼
►
well what if the watch is not connected to the parent app, what if the phone is not nearby
00:10:33
◼
►
or the connection drops?
00:10:34
◼
►
Then you got to like queue up stuff and then sync it back to the parent app when you get
00:10:37
◼
►
the connection back and that's very complicated.
00:10:40
◼
►
Or you could basically just have it basically be like a remote display layer for the phone
00:10:46
◼
►
app where the watch stores nothing and it's just reading stuff off the phone, which is
00:10:49
◼
►
basically re-implementing watch kit one.
00:10:52
◼
►
So it was not, and then of course the app wouldn't work when the phone was away from
00:10:57
◼
►
the watch and so both approaches had downsides, like making the watch be its own local storage
00:11:04
◼
►
has tons of complexity as you learned, right, with pedometer?
00:11:07
◼
►
>> Oh yeah, I mean the thing that you get that, in some ways the hardest part with watch
00:11:12
◼
►
sync is that you don't, in a normal syncing environment where you have a client and a
00:11:19
◼
►
server the connectivity between the two is usually fairly reliable.
00:11:27
◼
►
That you either, you know, like if I'm trying to make a call to my web server, it'll either
00:11:33
◼
►
work or it won't and it will typically return fairly quickly if it is going to return.
00:11:41
◼
►
And obviously there's a lot of issues you can get into with weak cellular connections
00:11:44
◼
►
and things, but I think by and large in my experience that is the experience you have.
00:11:49
◼
►
Whereas with watch connectivity, the thing that will drive you mad is that it's very
00:11:55
◼
►
unpredictable.
00:11:57
◼
►
Because your devices are communicating over Bluetooth, over Wi-Fi, potentially switching
00:12:03
◼
►
between those two modes, and if they're on Bluetooth, say like you're out somewhere away
00:12:08
◼
►
from a Wi-Fi network, then you have the interesting things of as they get farther away, the reliability
00:12:14
◼
►
of that connection drops off fairly precipitously it seems, and so you have to build in a lot
00:12:19
◼
►
more checks and a lot more like, you can't just rely on TCP to be the thing that's making
00:12:28
◼
►
your connection reliable, you have to go a bit farther and do a lot of work to just do
00:12:33
◼
►
fairly basic moving.
00:12:35
◼
►
Like in pedometer, all I'm doing is moving around step counts.
00:12:38
◼
►
You know, I'm just taking integers and throwing them around, but reliably and dependably doing
00:12:44
◼
►
that has taken a lot of work to get to the point that it is now, right?
00:12:50
◼
►
It generally works, it's generally reliable, people don't miss data very often, but it's
00:12:56
◼
►
definitely a tricky problem to deal with because it's sort of like you're always, it's like
00:13:01
◼
►
if your iPhone app had to always work, or the only situation it was ever really going
00:13:07
◼
►
to work was on like an edge network in the cellular networking days, you're kind of building
00:13:12
◼
►
an app that can only do that, and even back then, I mean I wrote apps that did communication
00:13:17
◼
►
over edge networking and really slow 2G networks, and it was rough, and watch connectivity as
00:13:24
◼
►
a reminder of those bad old days.
00:13:27
◼
►
- Yeah, exactly.
00:13:28
◼
►
Yeah, and so basically the combination of like this, the complexity of having to deal
00:13:33
◼
►
with this data layer being separate, and the connectivity issues, and then, you know, watch
00:13:38
◼
►
OS 2, if you did all of this, your app still wasn't really that much faster or that much
00:13:44
◼
►
more reliable than watch kit one, so it was basically a lot of work for not that much
00:13:49
◼
►
gain, and I think we've seen in the marketplace for watch apps so far, I think we've seen that
00:13:55
◼
►
a lot of people, myself included, decided, you know what, it's not worth it, so basically
00:13:59
◼
►
I never upgraded to watch OS 2 with my app because it was just going to be way too much
00:14:03
◼
►
work for way little gain.
00:14:05
◼
►
And then I stopped wearing the Apple Watch, like last winter.
00:14:11
◼
►
I kind of fell really hard into the rabbit hole of other watches, like mechanical watches,
00:14:17
◼
►
and I just stopped wearing the Apple Watch, so this problem kind of went away for me for
00:14:21
◼
►
a while, until I added analytics to the entire app, which I'll get to in a minute, but first
00:14:27
◼
►
our sponsor.
00:14:28
◼
►
We are sponsored this week by Linode.
00:14:31
◼
►
Go to linode.com/radar to learn more and sign up.
00:14:35
◼
►
Linode is a combination of high performance SSD Linux servers spread across eight data
00:14:40
◼
►
centers around the world, and it's a fantastic solution for your server infrastructure.
00:14:45
◼
►
You can get a server up and running in under a minute with plans starting at just $10 a
00:14:49
◼
►
month, and that now gets you two gigs of RAM for just $10 a month.
00:14:52
◼
►
You'll be able to choose your resource level, your Linux distro, and your nodes location
00:14:57
◼
►
right from the awesome manager tool, and believe me, I've used so many web host control panels,
00:15:01
◼
►
Linode is by far my favorite one by a long shot.
00:15:05
◼
►
And of course, once you're up and running, you can easily deploy, boot, and resize your
00:15:08
◼
►
virtual server with just a few clicks.
00:15:10
◼
►
Now Linode has over 400,000 customers who are all serviced by their friendly 24/7 support
00:15:16
◼
►
They're even open over holidays.
00:15:18
◼
►
If you need something you need help with, they are there for you.
00:15:20
◼
►
And they're also very committed to improving their infrastructure.
00:15:23
◼
►
For example, a little while back they made a switch from Zen to KVM as the hypervisor,
00:15:28
◼
►
and their latest Unix benchmark showed a 300% performance increase.
00:15:32
◼
►
Linode is the full package for your server infrastructure needs.
00:15:35
◼
►
The power you require as well as the infrastructure and assistance you want.
00:15:39
◼
►
And Underscore and I, we both use Linode.
00:15:42
◼
►
So I've used it since 2011.
00:15:43
◼
►
How long have you used it?
00:15:44
◼
►
- I was recently checking this.
00:15:46
◼
►
My first time I signed up for an account with them was in 2008, and I've been using them
00:15:51
◼
►
- That's fantastic.
00:15:52
◼
►
Yeah, I went there 2011 and have not left since.
00:15:55
◼
►
And I've slowly moved everything off of all other hosts I was on and moved it onto Linode
00:15:59
◼
►
because it was great back then and it's just gotten even greater since then.
00:16:04
◼
►
So we're big fans.
00:16:05
◼
►
As a listener of this show, if you sign up at linode.com/radar, you will not only be
00:16:09
◼
►
supporting us, but you'll also get $20 towards any Linode plan.
00:16:12
◼
►
And with a seven day money back guarantee, there's nothing to lose.
00:16:15
◼
►
So go to linode.com/radar.
00:16:18
◼
►
To learn more, sign up and take advantage of that $20 credit or use promo code RADAR20
00:16:22
◼
►
at checkout.
00:16:23
◼
►
Thank you so much to Linode for sponsoring this show.
00:16:25
◼
►
- All right, so I added analytics to Overcast recently, a few months back, to kind of get
00:16:32
◼
►
an idea of what people actually used in practice, what I should be working on, what kind of
00:16:35
◼
►
platforms were people actually using, et cetera.
00:16:38
◼
►
And I checked the stats today for my watch app.
00:16:42
◼
►
And now keep in mind, this is still a watch kit one app, so it is slow and it sucks.
00:16:47
◼
►
However, the numbers are still pretty low.
00:16:50
◼
►
The glance is seemingly installed by about 6% of active users.
00:16:56
◼
►
This is not total users, this is active users, so it's already reduced from total users.
00:16:59
◼
►
So about 6% have the glance installed.
00:17:03
◼
►
The actual app, the full app, is installed by about 1% of active users.
00:17:09
◼
►
This is pretty bad.
00:17:11
◼
►
Now among that 1%, bringing it down further, 80% of that 1% only ever look at the now playing
00:17:21
◼
►
So they don't actually hit any buttons or reorder the episodes, which is like the headlining
00:17:25
◼
►
feature of this update or anything like that.
00:17:28
◼
►
So the vast majority of this already small group, 14% of that 1% have gone as far as
00:17:35
◼
►
using the seek buttons, skip back, skip forward.
00:17:37
◼
►
5% use the play/pause button.
00:17:40
◼
►
Only 1% of 1% actually picked a new episode to play from the menu.
00:17:50
◼
►
0.5% of 1% changed any speed or effect settings.
00:17:56
◼
►
And finally, the key feature of the app, of the redone app, the key feature of being able
00:18:03
◼
►
to reorder the episodes that are going to play next, 0.1% of the 1% of active users
00:18:11
◼
►
use the app.
00:18:14
◼
►
And this ends up being single digit numbers or double digit numbers of total users.
00:18:19
◼
►
It's a very, very small number of people.
00:18:24
◼
►
0.1% of the 1% actually have reordered episodes to play next.
00:18:30
◼
►
So this teaches me a few lessons about watch development here that I think are very useful,
00:18:34
◼
►
especially at least to me, but I think this applies to many watch apps.
00:18:40
◼
►
Basically I learned that almost none of my active users actually have the watch app installed
00:18:45
◼
►
Of the people who use it, the vast majority of use is basically read only use.
00:18:51
◼
►
They're glancing at it.
00:18:53
◼
►
They're looking at the status of what's playing.
00:18:57
◼
►
And among the other uses, the little slice, the 20% of the people who have the watch installed
00:19:05
◼
►
who actually hit any buttons in the app, besides just looking at it, the vast majority of those
00:19:11
◼
►
are the very basic play, pause, and seek controls.
00:19:14
◼
►
So basically it's an app playing screen.
00:19:16
◼
►
They're using it as an app playing screen, and that's it.
00:19:19
◼
►
Every other feature beyond the now playing screen is being used by almost nobody.
00:19:23
◼
►
And so even though I went, like for my version one app that was all the complex iPhone navigation
00:19:28
◼
►
replicated on the watch, and I stripped that down to my version two app, which was like
00:19:32
◼
►
a now playing screen with these deluxe additional features, even that wasn't simple enough.
00:19:38
◼
►
Even that was like way more than what people actually use.
00:19:42
◼
►
So it came time this summer for me to really consider the version three app.
00:19:48
◼
►
And I thought, first of all, I skipped watch OS two, and basically nothing bad happened.
00:19:54
◼
►
So why make a version three app at all?
00:19:58
◼
►
And one of the problems is, as I mentioned earlier, I stopped wearing the Apple Watch
00:20:01
◼
►
myself, so there's a challenge here of do I even want to make something that I probably
00:20:10
◼
►
I had some crazy idea where maybe I'll stick the Apple Watch in my car and have it be like
00:20:14
◼
►
a remote control in the car for the overcast playback, 'cause that's better than Tesla's
00:20:20
◼
►
thing, so maybe that.
00:20:22
◼
►
So that might be a place I could use it, but even that I'll probably never actually do.
00:20:26
◼
►
So I probably will never actually use this app.
00:20:29
◼
►
And if I look at my data, very few of my customers even use the current watch.
00:20:33
◼
►
Again, it's like the current watch app is used by between one and six percent of active
00:20:37
◼
►
users, depending on how you measure, how you define usage.
00:20:40
◼
►
So it's below 10% of my users here actually have the watch app and are seemingly using
00:20:45
◼
►
Although, caveat there is I don't know, is that because it's slow, 'cause it's Watch
00:20:51
◼
►
Kit 1, would more people use it if it didn't suck?
00:20:55
◼
►
So I don't know, and that's kind of something I gotta find out, I guess.
00:20:58
◼
►
- It's also probably worth pointing out, so in the app that I have the best data for,
00:21:04
◼
►
in Perimeter++, only about 12% of my users have an Apple Watch paired to their iPhone,
00:21:13
◼
►
and so that's certainly a baseline too in terms of, and that's for, it's an app that
00:21:18
◼
►
measures fitness, and so people measuring fitness are perhaps slightly more apt to have
00:21:23
◼
►
something that's strongly marketed as a fitness tracker, but it's still only about 12%.
00:21:28
◼
►
And so even of people who may want to use your app, it's still gonna always be a relatively
00:21:37
◼
►
small percentage of your overall user base of people who are just using it on the phone.
00:21:41
◼
►
- Yeah, that's true.
00:21:43
◼
►
But at the same time, the podcast player market that I'm in is very competitive, that's problem
00:21:49
◼
►
number one, it's very competitive, so if everyone else has a Watch app and I don't, that's a
00:21:53
◼
►
big reason for Watch users to go pick a different app than mine.
00:21:57
◼
►
And so if I just let this thing languish, or don't have one at all, that is a cost I
00:22:02
◼
►
will bear there.
00:22:04
◼
►
And the other thing is Watch Kit 1 was terrible, Watch OS 2 was only a little bit less terrible,
00:22:12
◼
►
but Watch OS 3 is fairly decent as these things go.
00:22:15
◼
►
Like, the Watch OS 3 apps, people are going to expect much more from them because they
00:22:22
◼
►
can, finally they can be actually a lot better than Watch Kit 1.
00:22:26
◼
►
So it was easy for me to get away with skipping Watch Kit 2 because the difference wasn't
00:22:30
◼
►
that big, but if I also skip Watch Kit, or Watch OS 3, then my app, first of all, will
00:22:37
◼
►
work a lot worse than any competing apps, but also my own app will then start to look
00:22:41
◼
►
abandoned or unmaintained.
00:22:44
◼
►
And that's not really healthy for my app and its chances in the market.
00:22:48
◼
►
And it's also kind of embarrassing, I don't want my app to look unmaintained and abandoned.
00:22:53
◼
►
You know, I want it to look like a well-maintained app because, in my opinion, it is.
00:22:59
◼
►
So I decided I gotta make a Watch OS 3 app, so one option a lot of people ask for is,
00:23:06
◼
►
I need a watch app with local storage of podcasts so they could leave their phone behind and
00:23:11
◼
►
take just the watch and play podcasts from just the watch, either through headphones
00:23:16
◼
►
or through the little built-in speaker.
00:23:18
◼
►
And this is something, I mean, people ask for this with Watch OS 2 also.
00:23:21
◼
►
The demand for this is very, very low, and the amount of work it would take is very,
00:23:26
◼
►
very high, and the resulting product, because of the still existing limitations in Watch
00:23:31
◼
►
OS, even with OS 3, the resulting product would still not be very good.
00:23:36
◼
►
There's a reason why people aren't transferring a bunch of music to their watches and taking
00:23:39
◼
►
headphones and running with them, because the process of large data transfers to it
00:23:44
◼
►
and the reality of using it to play audio, it just kind of sucks still, and with Watch
00:23:49
◼
►
OS 3, it still sucks.
00:23:50
◼
►
So this would be a ton of work for not that much reward, and it would result in something
00:23:55
◼
►
not very good.
00:23:56
◼
►
So I'm not gonna do a whole client that can work offline from the phone and have local
00:24:01
◼
►
So instead, I decided to do a much simpler design that, looking back at my analytics,
00:24:07
◼
►
my analytics tell a very clear story, very, very clear.
00:24:10
◼
►
What they keep telling me is most people basically want a Now playing screen, not even most like
00:24:16
◼
►
60%, most like 99%.
00:24:19
◼
►
The vast majority of people who actually use my watch app just want it to be very simple,
00:24:23
◼
►
a Now playing screen, maybe a few additional buttons here and there, but for the most part,
00:24:27
◼
►
a Now playing screen, and just make it work really well and make it really fast.
00:24:32
◼
►
So that's what I'm making.
00:24:33
◼
►
My Watch OS 3 app is just a Now playing screen with a couple additional things, a few minor
00:24:37
◼
►
additions, but very minor, because the idea here is to keep it simple and to keep it very,
00:24:42
◼
►
very fast with Watch OS 3.
00:24:45
◼
►
And that way, if I keep it simple, that then gives me the ability to keep it updated without
00:24:52
◼
►
devoting a ton of time to it, without it being this big burden I have to think about.
00:24:56
◼
►
When Watch OS 4 comes out next year, presumably, it's going to be hard for me to justify porting
00:25:01
◼
►
over a big, complicated app and keeping a big, complicated app updated, but if it's
00:25:06
◼
►
a very simple thing, since that fits what everyone wants anyway, then I can actually
00:25:10
◼
►
justify keeping it updated, keeping it in good working order, and having it be something
00:25:16
◼
►
I can be proud of, even if I'm not actually using it myself a lot.
00:25:19
◼
►
Does that make sense?
00:25:20
◼
►
Yeah, and I think it speaks to a lot of what we've found that all watch apps in many ways
00:25:27
◼
►
should be, is that keeping them simpler is actually better, rather than the easy answer
00:25:36
◼
►
or whatever.
00:25:37
◼
►
It's not just like saying, "Oh, I'll make it simpler because that's easier."
00:25:41
◼
►
It's, "I'm making it easier because that's better."
00:25:45
◼
►
And using the watch, that I think is the...
00:25:49
◼
►
If you're even just thinking back to all the videos from WWDC this year about Watch OS
00:25:52
◼
►
development, that's the theme, running through them all, is that the entire usefulness of
00:25:59
◼
►
the application had to be felt by the user in two or three seconds, which is a very small
00:26:07
◼
►
amount of time.
00:26:08
◼
►
If your app is doing anything that is beyond that, then it's probably going in the wrong
00:26:14
◼
►
I think, as you say, it's a really helpful way to think about it, and it's something
00:26:18
◼
►
that I've had to work through as I've been updating all my watch apps and thinking of
00:26:21
◼
►
some new ones, is I think the watch is a great platform for streamlining things as much as
00:26:27
◼
►
you can, and you're going to overall do a lot better, especially because of the performance
00:26:33
◼
►
and related issues that I've recently been trying to do more complicated things in my
00:26:39
◼
►
I was experimenting using SceneKit, which is now on the watch, kind of bizarrely, so
00:26:44
◼
►
you can do 3D stuff, and I was doing some kind of interesting 3D animations of graphs,
00:26:51
◼
►
and I was like, "That looks kind of cool."
00:26:53
◼
►
And it looks kind of cool, and it runs great on the simulator.
00:26:56
◼
►
I put it on the watch, and it doesn't have the impact that I would want for it to have,
00:27:03
◼
►
or at least that impact is offset by everything being slower, because at least in this first-generation
00:27:09
◼
►
watch, we just don't have the performance for it.
00:27:11
◼
►
And so at this point, I think watchOS 3, especially until we see what the new hardware looks like
00:27:18
◼
►
this fall, just keeping it as simple and basic as can be, and then who knows?
00:27:23
◼
►
I've kept around my fancy kind of intense code, just in case, just not activated.
00:27:31
◼
►
There may come a time when you're like, "Hey, if you're running on watch 2, all of these
00:27:35
◼
►
things suddenly become possible," that you can do more intensive.
00:27:39
◼
►
Now, you probably want to make the apps more complicated, but visually and in terms of
00:27:44
◼
►
what you could do from a processing perspective, it may become possible to do.
00:27:52
◼
►
But until then, what you're doing now makes a lot of sense.
00:27:54
◼
►
Just have something there, have it be simple, have it work really, really well, have it
00:27:58
◼
►
launch really quickly.
00:28:01
◼
►
And I think that's what most people are looking for on the watch, is they just want something
00:28:05
◼
►
that they can tap a complication that says Overcast on it, and then pick a podcast and
00:28:10
◼
►
hit, and that's it.
00:28:11
◼
►
Or if they want to pause or skip, same thing.
00:28:14
◼
►
They're just two taps and they're there, and it's quicker than pulling out their phone
00:28:20
◼
►
and accessing it in Control Center.
00:28:22
◼
►
So I think that makes a lot of sense.
00:28:26
◼
►
And I guess we'll find out.
00:28:27
◼
►
I'm gonna do it, and then I guess I can report back in a few months after it's out, to see
00:28:31
◼
►
like, "All right, well, did usage actually go up or not?"
00:28:34
◼
►
And it might not, but that's okay.
00:28:36
◼
►
Even if usage doesn't go up, I think having it be just up to date but simpler is still
00:28:41
◼
►
the better approach.
00:28:42
◼
►
- Yeah, 'cause I think otherwise the problem too is you would have to either, if you don't
00:28:46
◼
►
update it, you probably would want to in some ways pull it from the app.
00:28:50
◼
►
Like running a WatchKit 1 app, having that be bundled in what is supposed to be like
00:28:55
◼
►
this top of the line application otherwise, starts to feel really awkward.
00:29:00
◼
►
And so it's just sort of like this thing that you have to keep, you either have to keep
00:29:02
◼
►
it up or you just have to get rid of it, I think.
00:29:06
◼
►
And to the four people who actually reordered episodes in my WatchKit 2 app, I'm sorry.
00:29:10
◼
►
Anyway, thanks a lot for listening, everybody.
00:29:12
◼
►
We're out of time this week, and we will talk to you next week.