#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: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: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: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: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: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: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: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: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.