PodSearch

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.