PodSearch

Under the Radar

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:38 ◼   ► >> Yes.

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:57 ◼   ► >>

00:02:58 ◼   ► Exactly.

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:14 ◼   ► on iOS.

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:30 ◼   ► well.

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:46 ◼   ► day one.

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:20 ◼   ► be avoided.

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:15 ◼   ► team.

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:50 ◼   ► ever since.

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:20 ◼   ► screen.

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:43 ◼   ► at all.

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:07 ◼   ► won't use?

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:44 ◼   ► it.

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:00 ◼   ► storage.

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:13 ◼   ► direction.

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:38 ◼   ► watch apps.

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:24 ◼   ► - Exactly.

00:28:25 ◼   ► I hope so.

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:05 ◼   ► - Yeah.

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.

00:29:15 ◼   ► - Bye.