Developing Perspective

#204: Delightfully Pragmatic.


00:00:00   Hello and welcome to Developing Perspective. Developing Perspective is a podcast discussing

00:00:07   news of note and that was development, Apple, and the like. I'm your host, David Smith.

00:00:12   I'm an independent iOS developer based in Herndon, Virginia. This is show number 204.

00:00:14   Today is Thursday, November 20th. Developing Perspective is never longer than 15 minutes,

00:00:19   so let's get started. So if you have been paying attention this week, it's probably

00:00:23   not much of a surprise to you that this episode will be all about WatchKit, which was announced

00:00:29   which was announced or at least I guess on Tuesday this week,

00:00:32   a couple days ago. So if you have not been following the news, I'll give you a brief overview of what it is,

00:00:39   a few of my reactions to it, and some of the things that I'm kind of excited about.

00:00:43   So WatchKit is the long-promised

00:00:46   set of APIs, SDK, whatever you want to call it, that Apple has put out now,

00:00:52   which will be our first foray into developing apps for the Apple Watch.

00:00:58   So this is something that Apple announced, I think Tim Cook announced at the iPad event,

00:01:03   I think it was, that this was coming sometime in November, came last Tuesday, so on track

00:01:09   with that.

00:01:10   And the expectation, I think, is that the apps and the things that we can do with this

00:01:14   are now allowing developers to get everything ready that they can for an early next year

00:01:20   launch of the actual Apple Watch itself.

00:01:23   as yet to say exactly what that's going to look like and when that's going to be.

00:01:28   I think it's not too much of a surprise in terms of I think they're expecting it to be

00:01:32   sometime in the spring.

00:01:34   Maybe earliest, I'm guessing, is February.

00:01:36   Latest, probably April.

00:01:38   That's kind of what I am in my head.

00:01:40   That's what I'm moving towards anyway.

00:01:42   Like I'm trying to think as I'm doing kind of release planning or thinking about how

00:01:46   much I want to tackle for WatchKit.

00:01:49   in the back of my head, the data I'm kind of working towards is February 1st. Not because

00:01:53   I think February 1st is when these things are going to be submittable, but I don't think

00:01:58   it's going to happen before that. This is just kind of like a hunch. And so if I'm ready

00:02:02   on then, then I'll probably be ready in general. So that's kind of what I'm doing. And so Apple

00:02:07   came out with a watch kit. And you might remember a few weeks ago, I did a little bit of sort

00:02:13   of speculation about what we might get here, which in retrospect was pretty close, but

00:02:18   Not exactly right.

00:02:19   So there is a two-phase rollout for WatchKit, which is something

00:02:22   that I thought we were going to get.

00:02:23   And so to start with, we're not getting the full native

00:02:26   experience.

00:02:27   We're not getting the ability to make really rich, full native

00:02:30   WatchKit apps, or Watch apps.

00:02:32   I'm not sure if it'll just be called WatchKit when it

00:02:35   actually comes out.

00:02:36   But we're not being able to write native applications.

00:02:39   We're not able to write long-lived processes that

00:02:41   run on the phone, that are completely detached--

00:02:43   or sorry, on the watch-- that are completely detached

00:02:46   from an iPhone nearby.

00:02:48   The expectation here is that these

00:02:51   are a much more limited subset of things

00:02:53   that Apple is allowing us to do, mostly just to get

00:02:56   started with what we wanted to do with watch apps.

00:03:00   And so it's a two-phase rollout.

00:03:01   They've said sometime later next year,

00:03:03   we're going to get the full SDK.

00:03:06   I think the running speculation I think is pretty safe,

00:03:09   is that that's probably going to be WWDC next year.

00:03:11   So sometime in June, they will release the first version

00:03:14   of whatever that's going to be.

00:03:16   It seems the most appropriate, obvious, logical time

00:03:19   to roll out a big new API to the Apple developer community,

00:03:22   do a bunch of sessions, have labs,

00:03:24   be able to really let people dig into it.

00:03:26   Developers will have had watch hardware

00:03:29   in hand for several months, and so be fairly familiar with it.

00:03:33   So I think that's probably what we're seeing.

00:03:35   So now, essentially, this is what we have.

00:03:37   What we have watched today is what

00:03:39   we'll have from now, in late November,

00:03:41   till probably next June.

00:03:44   These are the things that we can do to build watch apps.

00:03:47   And based on what they gave us, I'm pretty excited about it.

00:03:49   I think it's really kind of fun.

00:03:51   There's some questions, and this is probably

00:03:53   an episode I'll have probably next week or along those lines.

00:03:56   There's still some obvious smoking questions

00:03:58   about the business side of this, about building a business

00:04:01   around WatchKit and what Apple Watch Apps is

00:04:04   going to look like.

00:04:06   It's going to be a little-- there's

00:04:07   some unanswered questions or some kind of tricky things.

00:04:10   But from a technological side, and from a capability side,

00:04:13   And from can I do things that will make my apps awesome

00:04:16   and cool, this is really, really awesome.

00:04:18   There's some really cool stuff that I

00:04:20   think I'm going to be able to do.

00:04:22   And specifically with-- so I should probably take a pause

00:04:25   and unpack a little bit what they gave us.

00:04:28   And so in this first phase, there

00:04:30   are three different rough, conceptual types of apps

00:04:33   that we can build.

00:04:34   The actual technical parts of this are a bit more fuzzy,

00:04:36   but basically we can have three different interaction models,

00:04:39   is probably a fair way to say it.

00:04:41   We can have actionable notifications, which are just basically notifications that you

00:04:47   can interact with, as you'd guess.

00:04:50   So if you have a system where you get a notification about something, you can have a couple of

00:04:55   buttons.

00:04:56   You get something you can say "Ignore," "Like," or whatever.

00:04:59   It's that type of an interaction model.

00:05:01   This is something we have on iOS 8 on the phone.

00:05:05   Same exact thing.

00:05:06   I think it's built and structured very similarly.

00:05:07   There's just some things you can do to enhance

00:05:09   the presentation of it.

00:05:11   There's Glances, which is very vaguely like TodayView widgets.

00:05:15   But they're basically just these very small static snapshots

00:05:19   of your application, whose purpose is just

00:05:22   to give the user a little bit of a tease of what's going on.

00:05:27   So say, for example, this is something

00:05:28   I'm thinking about for Feed Wrangler.

00:05:30   It's a new service.

00:05:31   So maybe you have a Glance that shows you the top five most

00:05:36   recent articles in your system.

00:05:37   So it's just trying to give you a pointer to there.

00:05:41   It's completely read only.

00:05:42   It's completely static.

00:05:43   It's one page.

00:05:44   It doesn't scroll.

00:05:45   It is a very boiled down version of whatever

00:05:47   your application is.

00:05:49   Or as an example, I think Apple gave--

00:05:52   and this is something I'm thinking about for my recipe

00:05:54   book-- you can show if you have something

00:05:58   that's active and ongoing.

00:05:59   So in my recipe book, you can set timers.

00:06:01   Well, maybe I'll show the current status

00:06:03   of that timer inside the glance.

00:06:05   It's things like that that are very, very, very focused.

00:06:11   And in my initial predictions, I thought

00:06:12   that's where Apple would leave it off,

00:06:14   that we would get those two things, these very basic

00:06:16   glances and these very basic notifications.

00:06:19   And instead, we get something even better.

00:06:22   We get a little thing on top.

00:06:23   And that extra thing that we get is these--

00:06:27   I don't even know, but some of them

00:06:28   found a good name for them.

00:06:29   But they're kind of split apps.

00:06:31   They're these apps that are-- maybe you

00:06:33   call them surrogate apps.

00:06:34   I don't know.

00:06:35   Apple has come up with this delightfully pragmatic and genius way of being very conservative

00:06:43   on the watch hardware itself, only doing things that are very, very limited and presumably

00:06:50   battery respectful and those types of constraints.

00:06:54   Apple is being very good on that side.

00:06:56   By doing this thing, we're basically the watch component of this application, which is a

00:07:00   full-on application.

00:07:01   It's something that you can launch from the watch's home screen and it'll come and run.

00:07:05   But all it is is a single static storyboard, basically.

00:07:10   That's all it is.

00:07:11   All of the UI for it is defined in that storyboard.

00:07:14   All of its visual appearance and things is defined in that.

00:07:18   But that app is completely hollow insofar

00:07:24   as all it is is the UI.

00:07:25   That is, in the MVC pattern, it is V, but it has no M or C.

00:07:32   It has no model or controller.

00:07:33   It is all view. And so what it does, though, is it offsets all that heavy lifting, all

00:07:39   the logic, all the networking, all the persistence, all everything else into an extension that

00:07:45   runs on the iPhone itself. And at first I thought that I was like, whoa, that's kind

00:07:50   of crazy. But as it's kind of sat in a bit more and I've been able to think about it,

00:07:55   it's genius, right? Like what they're doing is they're giving us the ability -- they're

00:08:00   opening up early access to something to development on the watch, to be able to build really useful,

00:08:06   interesting, compelling experiences for our customers, but doing it in a way that is really,

00:08:10   really safe and really conservative. You know, they're not over-committing up front. They're

00:08:15   only doing -- giving us what we really -- you know, a really limited, boiled-down, straightforward

00:08:21   set of experiences that we can develop on this. But we can still do a lot with it. And

00:08:26   And so I'm really glad that Apple didn't just leave it at that.

00:08:30   Sure, I'd love to build these really deep, low-level, rich native applications.

00:08:34   That'd be awesome, I suppose.

00:08:36   As a geek, that sounds great.

00:08:37   But I can totally understand Apple's perspective of saying, you know, this is new hardware

00:08:41   that no one's ever seen outside of our labs.

00:08:43   There's only probably a few dozen people in Cupertino who have their hands on a prototype

00:08:49   hardware.

00:08:50   It is a very crazy thing in some ways to open up the complete low-level APIs for this, just

00:08:56   I'll do it right out the gate.

00:08:58   And so instead, they're being very pragmatic.

00:08:59   And they're saying, here's this thing

00:09:01   that we feel like we can do that--

00:09:03   and for most applications-- or not most,

00:09:05   maybe for many applications-- will actually be enough,

00:09:08   all you ever need.

00:09:09   But it does it in a way that's really, really respectful

00:09:11   of your battery.

00:09:12   Because all the phone has to do is-- well, sorry,

00:09:16   all the watch has to do-- I keep saying that.

00:09:18   All the watch has to do is basically just

00:09:21   show a few pictures and labels and have a couple of buttons

00:09:24   that send data. And the most battery-intensive part of this whole thing is probably just

00:09:31   the networking back and forth between the watch and the iPhone, which I imagine they

00:09:36   can very strongly optimize for, in terms of coalescing things, being very opportunistic

00:09:40   about it. There's lots of things that I'm sure they can do to make that experience as

00:09:44   efficient as possible. And so what we then end up with is this really cool system where

00:09:49   you can build an application that will run natively on the watch. It'll appear to run

00:09:53   It'll appear to be a native application from a customer's perspective.

00:09:58   It just has a very streamlined set of capabilities.

00:10:01   You have no access to anything on the watch itself.

00:10:04   There's no sensors.

00:10:05   There's no data coming out of that.

00:10:06   It's all coming off your phone.

00:10:09   As a result, you can still do anything you want in it.

00:10:12   You can be doing making, pulling stuff out of your shared database and displaying it

00:10:17   to your user or accessing the user's photos or things.

00:10:20   You could do all kinds of things you could kind of imagine because you can use the very

00:10:27   rich ecosystem of iOS SDK and APIs to do those things.

00:10:33   And then you're just kind of pushing that onto the watch.

00:10:37   So I'm really excited about it.

00:10:38   I think it's really cool.

00:10:39   And I think what's really interesting as a developer is I think, you know, in some ways

00:10:42   I kind of view what they've done here as a bit of a challenge for better or worse because

00:10:47   I'm starting to think about ways that I can push the limits of this, right?

00:10:50   Like what are the things that I can do that still are, you know, respectful of battery

00:10:54   and respectful of power, but create new experiences that are kind of pushing the limit beyond

00:10:59   just like, here's a list of unread items.

00:11:03   Like that's sort of interesting or, you know, here's a to-do list.

00:11:06   Like that's sort of interesting.

00:11:07   But I imagine there's a lot of really cool things that I can start to think about and

00:11:10   push the limits of even this very basic system and kind of, you know, establish, you know,

00:11:17   establish new experiences that then next summer, next fall, when whatever watchOS comes out

00:11:21   or something, when that comes out and I can fill those in and make them even richer, it'll

00:11:28   be starting from a really great spot.

00:11:30   And so that's kind of where I am.

00:11:32   And it's really kind of cool.

00:11:33   My list of watch kit apps is just growing each day now of things that I want to think

00:11:39   about building or I'm starting to build or have prototyping.

00:11:42   Because originally I was starting about with like, what can I do with a glance and a notification?

00:11:47   And I had some kind of interesting things

00:11:48   that I thought would be pretty cool.

00:11:50   Now I can go crazy.

00:11:50   And I can build all these other really cool things.

00:11:53   And so I'm really enjoying this process.

00:11:54   And it's kind of got me excited and engaged in development

00:11:57   in a way that I was-- like I said,

00:11:58   I was a little bit bored with iOS.

00:12:01   It's really exciting to have something to be excited about.

00:12:03   And so this is what I've been doing.

00:12:05   I've posted an article on my blog.

00:12:08   If you want to start there, it's really just

00:12:10   kind of how I'm going through and learning,

00:12:11   which I probably thought would be

00:12:13   worth mentioning on the show.

00:12:15   Apple has done a really good job in terms of having a pretty rich set of documentation

00:12:19   for this.

00:12:20   It's a brand new thing.

00:12:21   They're introducing it not at their developer conference where they can kind of have a more

00:12:25   richer experience, but instead they've still done some things.

00:12:27   They have a video that feels like you're sitting in the Presidio watching Apple.

00:12:32   They eventually present to you like, "That's great."

00:12:35   The programming guide and human interface guidelines for the watch are solid.

00:12:38   I've been reading through them, making sure I'm pretty good.

00:12:40   And the toolset themselves actually seem to be really good.

00:12:43   A lot of the times these kind of beta ones, in my experience, are really kind of broken.

00:12:47   You know, I have a lot of things that are like, "Well, this doesn't actually work."

00:12:51   By and large, I've been playing with this pretty much solidly for two days, and it works

00:12:54   for the most part.

00:12:55   You know, there's a few things.

00:12:56   You have to reset the simulator more often than you wish you would, or those kinds of

00:12:59   things.

00:13:00   But it's really great.

00:13:01   And so if you are at all interested in this stuff, I'd recommend diving into it and sort

00:13:04   of getting your feet wet.

00:13:07   It's good enough to really get going.

00:13:10   And one other thing I wanted to mention along those lines in terms of how to get up to speed

00:13:13   is the developer forums are probably

00:13:15   going to be very vital in this.

00:13:17   So I've been spending a lot of time looking there,

00:13:19   and it seems like the evangelism team at Apple

00:13:22   is very active there.

00:13:23   And so if you have questions or problems or things or policy

00:13:26   decisions or whatever it is that you're trying to understand,

00:13:28   the best place seems to be to go to the dev forums and to look.

00:13:31   And probably someone's already answered that question.

00:13:33   And if they haven't, you can answer it there.

00:13:34   And there's a good chance you're going to ask it there,

00:13:36   and you're going to get an answer back.

00:13:38   They've been really, really engaged there.

00:13:39   And so I'd encourage you to go to the dev forums

00:13:41   take a look at that.

00:13:44   But yeah, otherwise, it's kind of interesting.

00:13:46   It's a really interesting time as a developer.

00:13:48   I'm more and more excited about what the watch will do.

00:13:50   Like I said, I've had my Microsoft band for about a month

00:13:54   now or something.

00:13:55   And every day, the more and more I wear it,

00:13:59   the more I enjoy having this kind of a device.

00:14:03   The things that it enhances and changes in my day-to-day life

00:14:06   are really cool.

00:14:07   And the more it helps me to understand

00:14:09   And what a device like an Apple Watch that is deeply integrated into iOS and with iOS,

00:14:14   with apps that are integrated deeply with the apps that I use on iOS, is going to be

00:14:18   capable of.

00:14:19   And how nice that is going to be on a day-to-day basis.

00:14:23   Not just one of these kind of ephemeral technologies that's like, "Oh, it's really cool in theory,"

00:14:26   but in practice isn't actually very helpful.

00:14:29   This is actually something that I think I will enjoy using and will change a lot the

00:14:33   way I interact with technology.

00:14:34   All right, that's it for today's show.

00:14:36   As always, if you have questions, comments, concerns, or complaints, you can find me on

00:14:39   Twitter.

00:14:40   I'm _DavidSmith there, or you can email me, david@developingperspective.com.

00:14:44   Have fun with that watch kit, have a good weekend, and I'll talk to you next week.