0:00:00Hello and welcome to Developing Perspective. Developing Perspective is a podcast discussing
0:00:07news of note and that was development, Apple, and the like. I'm your host, David Smith.
0:00:12I'm an independent iOS developer based in Herndon, Virginia. This is show number 204.
0:00:14Today is Thursday, November 20th. Developing Perspective is never longer than 15 minutes,
0:00:19so let's get started. So if you have been paying attention this week, it's probably
0:00:23not much of a surprise to you that this episode will be all about WatchKit, which was announced
0:00:29which was announced or at least I guess on Tuesday this week,
0:00:32a couple days ago. So if you have not been following the news, I'll give you a brief overview of what it is,
0:00:39a few of my reactions to it, and some of the things that I'm kind of excited about.
0:00:43So WatchKit is the long-promised
0:00:46set of APIs, SDK, whatever you want to call it, that Apple has put out now,
0:00:52which will be our first foray into developing apps for the Apple Watch.
0:00:58So this is something that Apple announced, I think Tim Cook announced at the iPad event,
0:01:03I think it was, that this was coming sometime in November, came last Tuesday, so on track
0:01:09with that.
0:01:10And the expectation, I think, is that the apps and the things that we can do with this
0:01:14are now allowing developers to get everything ready that they can for an early next year
0:01:20launch of the actual Apple Watch itself.
0:01:23as yet to say exactly what that's going to look like and when that's going to be.
0:01:28I think it's not too much of a surprise in terms of I think they're expecting it to be
0:01:32sometime in the spring.
0:01:34Maybe earliest, I'm guessing, is February.
0:01:36Latest, probably April.
0:01:38That's kind of what I am in my head.
0:01:40That's what I'm moving towards anyway.
0:01:42Like I'm trying to think as I'm doing kind of release planning or thinking about how
0:01:46much I want to tackle for WatchKit.
0:01:49in the back of my head, the data I'm kind of working towards is February 1st. Not because
0:01:53I think February 1st is when these things are going to be submittable, but I don't think
0:01:58it's going to happen before that. This is just kind of like a hunch. And so if I'm ready
0:02:02on then, then I'll probably be ready in general. So that's kind of what I'm doing. And so Apple
0:02:07came out with a watch kit. And you might remember a few weeks ago, I did a little bit of sort
0:02:13of speculation about what we might get here, which in retrospect was pretty close, but
0:02:18Not exactly right.
0:02:19So there is a two-phase rollout for WatchKit, which is something
0:02:22that I thought we were going to get.
0:02:23And so to start with, we're not getting the full native
0:02:26experience.
0:02:27We're not getting the ability to make really rich, full native
0:02:30WatchKit apps, or Watch apps.
0:02:32I'm not sure if it'll just be called WatchKit when it
0:02:35actually comes out.
0:02:36But we're not being able to write native applications.
0:02:39We're not able to write long-lived processes that
0:02:41run on the phone, that are completely detached--
0:02:43or sorry, on the watch-- that are completely detached
0:02:46from an iPhone nearby.
0:02:48The expectation here is that these
0:02:51are a much more limited subset of things
0:02:53that Apple is allowing us to do, mostly just to get
0:02:56started with what we wanted to do with watch apps.
0:03:00And so it's a two-phase rollout.
0:03:01They've said sometime later next year,
0:03:03we're going to get the full SDK.
0:03:06I think the running speculation I think is pretty safe,
0:03:09is that that's probably going to be WWDC next year.
0:03:11So sometime in June, they will release the first version
0:03:14of whatever that's going to be.
0:03:16It seems the most appropriate, obvious, logical time
0:03:19to roll out a big new API to the Apple developer community,
0:03:22do a bunch of sessions, have labs,
0:03:24be able to really let people dig into it.
0:03:26Developers will have had watch hardware
0:03:29in hand for several months, and so be fairly familiar with it.
0:03:33So I think that's probably what we're seeing.
0:03:35So now, essentially, this is what we have.
0:03:37What we have watched today is what
0:03:39we'll have from now, in late November,
0:03:41till probably next June.
0:03:44These are the things that we can do to build watch apps.
0:03:47And based on what they gave us, I'm pretty excited about it.
0:03:49I think it's really kind of fun.
0:03:51There's some questions, and this is probably
0:03:53an episode I'll have probably next week or along those lines.
0:03:56There's still some obvious smoking questions
0:03:58about the business side of this, about building a business
0:04:01around WatchKit and what Apple Watch Apps is
0:04:04going to look like.
0:04:06It's going to be a little-- there's
0:04:07some unanswered questions or some kind of tricky things.
0:04:10But from a technological side, and from a capability side,
0:04:13And from can I do things that will make my apps awesome
0:04:16and cool, this is really, really awesome.
0:04:18There's some really cool stuff that I
0:04:20think I'm going to be able to do.
0:04:22And specifically with-- so I should probably take a pause
0:04:25and unpack a little bit what they gave us.
0:04:28And so in this first phase, there
0:04:30are three different rough, conceptual types of apps
0:04:33that we can build.
0:04:34The actual technical parts of this are a bit more fuzzy,
0:04:36but basically we can have three different interaction models,
0:04:39is probably a fair way to say it.
0:04:41We can have actionable notifications, which are just basically notifications that you
0:04:47can interact with, as you'd guess.
0:04:50So if you have a system where you get a notification about something, you can have a couple of
0:04:55buttons.
0:04:56You get something you can say "Ignore," "Like," or whatever.
0:04:59It's that type of an interaction model.
0:05:01This is something we have on iOS 8 on the phone.
0:05:05Same exact thing.
0:05:06I think it's built and structured very similarly.
0:05:07There's just some things you can do to enhance
0:05:09the presentation of it.
0:05:11There's Glances, which is very vaguely like TodayView widgets.
0:05:15But they're basically just these very small static snapshots
0:05:19of your application, whose purpose is just
0:05:22to give the user a little bit of a tease of what's going on.
0:05:27So say, for example, this is something
0:05:28I'm thinking about for Feed Wrangler.
0:05:30It's a new service.
0:05:31So maybe you have a Glance that shows you the top five most
0:05:36recent articles in your system.
0:05:37So it's just trying to give you a pointer to there.
0:05:41It's completely read only.
0:05:42It's completely static.
0:05:43It's one page.
0:05:44It doesn't scroll.
0:05:45It is a very boiled down version of whatever
0:05:47your application is.
0:05:49Or as an example, I think Apple gave--
0:05:52and this is something I'm thinking about for my recipe
0:05:54book-- you can show if you have something
0:05:58that's active and ongoing.
0:05:59So in my recipe book, you can set timers.
0:06:01Well, maybe I'll show the current status
0:06:03of that timer inside the glance.
0:06:05It's things like that that are very, very, very focused.
0:06:11And in my initial predictions, I thought
0:06:12that's where Apple would leave it off,
0:06:14that we would get those two things, these very basic
0:06:16glances and these very basic notifications.
0:06:19And instead, we get something even better.
0:06:22We get a little thing on top.
0:06:23And that extra thing that we get is these--
0:06:27I don't even know, but some of them
0:06:28found a good name for them.
0:06:29But they're kind of split apps.
0:06:31They're these apps that are-- maybe you
0:06:33call them surrogate apps.
0:06:34I don't know.
0:06:35Apple has come up with this delightfully pragmatic and genius way of being very conservative
0:06:43on the watch hardware itself, only doing things that are very, very limited and presumably
0:06:50battery respectful and those types of constraints.
0:06:54Apple is being very good on that side.
0:06:56By doing this thing, we're basically the watch component of this application, which is a
0:07:00full-on application.
0:07:01It's something that you can launch from the watch's home screen and it'll come and run.
0:07:05But all it is is a single static storyboard, basically.
0:07:10That's all it is.
0:07:11All of the UI for it is defined in that storyboard.
0:07:14All of its visual appearance and things is defined in that.
0:07:18But that app is completely hollow insofar
0:07:24as all it is is the UI.
0:07:25That is, in the MVC pattern, it is V, but it has no M or C.
0:07:32It has no model or controller.
0:07:33It is all view. And so what it does, though, is it offsets all that heavy lifting, all
0:07:39the logic, all the networking, all the persistence, all everything else into an extension that
0:07:45runs on the iPhone itself. And at first I thought that I was like, whoa, that's kind
0:07:50of crazy. But as it's kind of sat in a bit more and I've been able to think about it,
0:07:55it's genius, right? Like what they're doing is they're giving us the ability -- they're
0:08:00opening up early access to something to development on the watch, to be able to build really useful,
0:08:06interesting, compelling experiences for our customers, but doing it in a way that is really,
0:08:10really safe and really conservative. You know, they're not over-committing up front. They're
0:08:15only doing -- giving us what we really -- you know, a really limited, boiled-down, straightforward
0:08:21set of experiences that we can develop on this. But we can still do a lot with it. And
0:08:26And so I'm really glad that Apple didn't just leave it at that.
0:08:30Sure, I'd love to build these really deep, low-level, rich native applications.
0:08:34That'd be awesome, I suppose.
0:08:36As a geek, that sounds great.
0:08:37But I can totally understand Apple's perspective of saying, you know, this is new hardware
0:08:41that no one's ever seen outside of our labs.
0:08:43There's only probably a few dozen people in Cupertino who have their hands on a prototype
0:08:49hardware.
0:08:50It is a very crazy thing in some ways to open up the complete low-level APIs for this, just
0:08:56I'll do it right out the gate.
0:08:58And so instead, they're being very pragmatic.
0:08:59And they're saying, here's this thing
0:09:01that we feel like we can do that--
0:09:03and for most applications-- or not most,
0:09:05maybe for many applications-- will actually be enough,
0:09:08all you ever need.
0:09:09But it does it in a way that's really, really respectful
0:09:11of your battery.
0:09:12Because all the phone has to do is-- well, sorry,
0:09:16all the watch has to do-- I keep saying that.
0:09:18All the watch has to do is basically just
0:09:21show a few pictures and labels and have a couple of buttons
0:09:24that send data. And the most battery-intensive part of this whole thing is probably just
0:09:31the networking back and forth between the watch and the iPhone, which I imagine they
0:09:36can very strongly optimize for, in terms of coalescing things, being very opportunistic
0:09:40about it. There's lots of things that I'm sure they can do to make that experience as
0:09:44efficient as possible. And so what we then end up with is this really cool system where
0:09:49you can build an application that will run natively on the watch. It'll appear to run
0:09:53It'll appear to be a native application from a customer's perspective.
0:09:58It just has a very streamlined set of capabilities.
0:10:01You have no access to anything on the watch itself.
0:10:04There's no sensors.
0:10:05There's no data coming out of that.
0:10:06It's all coming off your phone.
0:10:09As a result, you can still do anything you want in it.
0:10:12You can be doing making, pulling stuff out of your shared database and displaying it
0:10:17to your user or accessing the user's photos or things.
0:10:20You could do all kinds of things you could kind of imagine because you can use the very
0:10:27rich ecosystem of iOS SDK and APIs to do those things.
0:10:33And then you're just kind of pushing that onto the watch.
0:10:37So I'm really excited about it.
0:10:38I think it's really cool.
0:10:39And I think what's really interesting as a developer is I think, you know, in some ways
0:10:42I kind of view what they've done here as a bit of a challenge for better or worse because
0:10:47I'm starting to think about ways that I can push the limits of this, right?
0:10:50Like what are the things that I can do that still are, you know, respectful of battery
0:10:54and respectful of power, but create new experiences that are kind of pushing the limit beyond
0:10:59just like, here's a list of unread items.
0:11:03Like that's sort of interesting or, you know, here's a to-do list.
0:11:06Like that's sort of interesting.
0:11:07But I imagine there's a lot of really cool things that I can start to think about and
0:11:10push the limits of even this very basic system and kind of, you know, establish, you know,
0:11:17establish new experiences that then next summer, next fall, when whatever watchOS comes out
0:11:21or something, when that comes out and I can fill those in and make them even richer, it'll
0:11:28be starting from a really great spot.
0:11:30And so that's kind of where I am.
0:11:32And it's really kind of cool.
0:11:33My list of watch kit apps is just growing each day now of things that I want to think
0:11:39about building or I'm starting to build or have prototyping.
0:11:42Because originally I was starting about with like, what can I do with a glance and a notification?
0:11:47And I had some kind of interesting things
0:11:48that I thought would be pretty cool.
0:11:50Now I can go crazy.
0:11:50And I can build all these other really cool things.
0:11:53And so I'm really enjoying this process.
0:11:54And it's kind of got me excited and engaged in development
0:11:57in a way that I was-- like I said,
0:11:58I was a little bit bored with iOS.
0:12:01It's really exciting to have something to be excited about.
0:12:03And so this is what I've been doing.
0:12:05I've posted an article on my blog.
0:12:08If you want to start there, it's really just
0:12:10kind of how I'm going through and learning,
0:12:11which I probably thought would be
0:12:13worth mentioning on the show.
0:12:15Apple has done a really good job in terms of having a pretty rich set of documentation
0:12:19for this.
0:12:20It's a brand new thing.
0:12:21They're introducing it not at their developer conference where they can kind of have a more
0:12:25richer experience, but instead they've still done some things.
0:12:27They have a video that feels like you're sitting in the Presidio watching Apple.
0:12:32They eventually present to you like, "That's great."
0:12:35The programming guide and human interface guidelines for the watch are solid.
0:12:38I've been reading through them, making sure I'm pretty good.
0:12:40And the toolset themselves actually seem to be really good.
0:12:43A lot of the times these kind of beta ones, in my experience, are really kind of broken.
0:12:47You know, I have a lot of things that are like, "Well, this doesn't actually work."
0:12:51By and large, I've been playing with this pretty much solidly for two days, and it works
0:12:54for the most part.
0:12:55You know, there's a few things.
0:12:56You have to reset the simulator more often than you wish you would, or those kinds of
0:12:59things.
0:13:00But it's really great.
0:13:01And so if you are at all interested in this stuff, I'd recommend diving into it and sort
0:13:04of getting your feet wet.
0:13:07It's good enough to really get going.
0:13:10And one other thing I wanted to mention along those lines in terms of how to get up to speed
0:13:13is the developer forums are probably
0:13:15going to be very vital in this.
0:13:17So I've been spending a lot of time looking there,
0:13:19and it seems like the evangelism team at Apple
0:13:22is very active there.
0:13:23And so if you have questions or problems or things or policy
0:13:26decisions or whatever it is that you're trying to understand,
0:13:28the best place seems to be to go to the dev forums and to look.
0:13:31And probably someone's already answered that question.
0:13:33And if they haven't, you can answer it there.
0:13:34And there's a good chance you're going to ask it there,
0:13:36and you're going to get an answer back.
0:13:38They've been really, really engaged there.
0:13:39And so I'd encourage you to go to the dev forums
0:13:41take a look at that.
0:13:44But yeah, otherwise, it's kind of interesting.
0:13:46It's a really interesting time as a developer.
0:13:48I'm more and more excited about what the watch will do.
0:13:50Like I said, I've had my Microsoft band for about a month
0:13:54now or something.
0:13:55And every day, the more and more I wear it,
0:13:59the more I enjoy having this kind of a device.
0:14:03The things that it enhances and changes in my day-to-day life
0:14:06are really cool.
0:14:07And the more it helps me to understand
0:14:09And what a device like an Apple Watch that is deeply integrated into iOS and with iOS,
0:14:14with apps that are integrated deeply with the apps that I use on iOS, is going to be
0:14:18capable of.
0:14:19And how nice that is going to be on a day-to-day basis.
0:14:23Not just one of these kind of ephemeral technologies that's like, "Oh, it's really cool in theory,"
0:14:26but in practice isn't actually very helpful.
0:14:29This is actually something that I think I will enjoy using and will change a lot the
0:14:33way I interact with technology.
0:14:34All right, that's it for today's show.
0:14:36As always, if you have questions, comments, concerns, or complaints, you can find me on
0:14:39Twitter.
0:14:40I'm _DavidSmith there, or you can email me, david@developingperspective.com.
0:14:44Have fun with that watch kit, have a good weekend, and I'll talk to you next week.