
WatchKit - uptown
https://developer.apple.com/watchkit/
======
orand
There are actually 4 different types of Apple Watch apps:

1\. Glances

2\. Actionable notifications

3\. Extension WatchKit apps (extension runs on iPhone, view runs on watch)

4\. Fully native apps

It appears 1, 2, and 3 will be available for the initial launch, while #4 will
be available later next year, probably starting with a beta released at WWDC.

~~~
JoseVigil
hey orand, thanks for the summary.

You mentioned #4 will be available later next year, probably starting with a
beta released at WWDC.

Is Apple actually saying this? If so, can you please share the source? I mean
from Apple not macrumors.

~~~
orand
They actually said this in their September 9th press release, although most
people missed it:

[http://www.apple.com/pr/library/2014/09/09Apple-Unveils-
Appl...](http://www.apple.com/pr/library/2014/09/09Apple-Unveils-Apple-Watch-
Apples-Most-Personal-Device-Ever.html)

"With Apple Watch, developers can create WatchKit apps with actionable
notifications and Glances that provide timely information. Starting later next
year, developers will be able to create fully native apps for Apple Watch."

Someone from Apple also essentially reconfirmed this earlier today on the
WatchKit developer forum.

Edit: here's the source that first tipped me off to this detail hidden away in
the press release:

[http://david-smith.org/blog/2014/11/06/expectations-for-
watc...](http://david-smith.org/blog/2014/11/06/expectations-for-watchkit/)

~~~
JoseVigil
Appreciate orand.

I wonder what fully app for watch means though. I am intrigued on the touch
event support. There is something new called Force Touch.

~~~
billyhoffman
Apple mentioned Force Touch during the unveiling demo, and there is a blurb in
their documentation as well:

 _" Force Touch. A small screen can only accommodate so many controls. That’s
why Apple Watch introduces an entirely new interaction model: Force Touch. As
well as sensing touch, the Retina display also senses force. Force Touch
interactions display the context menu (if any) associated with the current
screen. Apps use this menu to display actions relevant to the current
content."_ [1]

I've heard people compare this to a long press, but its subtlety different.
Force touch can bring up a context menu faster, because you don't have to wait
to determine if a touch is "long" or not

[1]-
[https://developer.apple.com/library/prerelease/ios/documenta...](https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/WatchHumanInterfaceGuidelines/WatchOSAppAnatomy.html)

~~~
JoseVigil
Thanks for the info Billy.

I think there has to be more touch events available than Force Touch. Seems a
fairly trivial interaction.

Given the features page I assume the API should support more events. Digital
Touch "implies" touch down-move-up:

[http://www.apple.com/watch/features/](http://www.apple.com/watch/features/)

* Section 6-left, a heart drawn on the watch with the name Jamie.

"You don’t even have to use words. The Digital Touch features on Apple Watch
give you fun, spontaneous ways to connect with other Apple Watch wearers,
wrist to wrist."

* Below, a flower drawn on the watch with the name Eliza.

"Sketch. Use your finger to draw something quickly. Your friend on the other
end can watch your drawing animate, then respond with a custom creation for
you."

Hopefully is already there or else we might have to wait and see the touch API
public for WWDC. Eager to play with it, if anybody has more information please
share. Thanks!

------
apike
Particularly interesting are the Human Interface Guidelines for Apple Watch:
[https://developer.apple.com/library/prerelease/ios/documenta...](https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/WatchHumanInterfaceGuidelines/index.html)

They feature various previously unknown details about the watch, for example
that the two sizes have different display resolutions, 340px and 390px
respectively.

~~~
thomasfl
It's particularly interesting to see which UI elements has made it to the
small screen of the apple watch. Not much else than switches, buttons and
sliders are featured in the guidelines. Looking forward to see what developers
eventually will come up with for these devices.

------
wiremine
Am I groking this right? The Watchkit app actually runs on the iPhone as an
extension, and just the UI component runs on the watch hardware?

Edit: better direct link:
[https://developer.apple.com/library/prerelease/ios/documenta...](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/DesigningaWatchKitApp.html#//apple_ref/doc/uid/TP40014969-CH3-SW1)

"The Watch app resides on the user’s Apple Watch and contains only storyboard
and resource files; it does not contain any code. The WatchKit extension
resides on the user’s iPhone (inside your containing iOS app) and contains the
code and resource files for managing your Watch app’s interface."

~~~
sschueller
So if the phone is dead the watch won't even show the time?

Does this setup significant improve battery performance?

~~~
wiremine
It looks like there are native Apple apps on the watch: they noted in the
intro video that clicking on an image of a map opens up the Apple Watch's
"Maps App"

~~~
dep_b
You can add a map to your own app as well

~~~
1234naskjnaf
You can add a non-interactive snapshot of a map.

------
jmduke
An interesting tidbit from the HIG
([https://developer.apple.com/library/prerelease/ios/documenta...](https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/WatchHumanInterfaceGuidelines/Animation.html#//apple_ref/doc/uid/TP40014992-CH7-SW1)):

 _Create prerendered animations using a sequence of static images. Store
canned animations in your Watch app bundle so that they can be presented
quickly to the user. Canned animations also let you deliver high frame rates
and smoother animations. Creating animations dynamically from your WatchKit
extension and transferring them to Apple Watch adds a delay before playback
can begin._

This is not a good sign as to the power of the watch, unless I'm drastically
misinterpreting things.

~~~
fla
The main problem is the battery life. All this seems to indicate that the
device is deisgned to maximize it. A matter of trade-offs, really.

~~~
c1sc0
I also found this interesting: "(Dates & Timers) ... Does not need to be
updated by your WatchKit extension". Makes me think of timer coalescing in
OSX. Now they're just sidestepping the whole issue altogether.

~~~
potatolicious
Not necessarily timer coalescing and probably more of a radio optimization.
All 3rd party code will run on the phone and not the watch, so any updates to
the UI made via code will have to necessarily travel over Bluetooth.

Apple wants to limit the frequency of these updates, so the most frequently
updated UI bits (clocks, timers) will be done on the device itself without the
persistent BT use.

------
arihant
I would buy this watch, but I'm completely convinced that Android Wear is more
spot-on for the watch UX with their card based user interface. It does have
all these features, the glaces, the actionable notification, extension apps,
but from UI standpoint it is just a card. Also, the UI on Android Wear is
prettier. I'm not sure why Apple is using black ugly buttons that remind me on
very first Nokia multimedia color phones.

~~~
return0
I don't get the watch-craze at all, as it adds 0 things you couldn't do
before. However, i m looking forward to Android Auto, something that i wanted
for a long time.

~~~
Kiro
> as it adds 0 things you couldn't do before

That's your opinion. For me it has been life-changing.

~~~
looklookatme
Would you mind elaborating on this? I'm in the same boat as return0 -- I just
can't imagine what utility I'd get out of a touchscreen on my wrist.

~~~
alexweber
Personally, I really enjoy the automatic sleep/activity tracking that my
Pebble provides (via Misfit app)

Besides that, I mainly use it for "watch" stuff.

That said, it is really nice to be able to get notifications without taking my
phone out in certain contexts—bicycling, walking, in a pool, phone charging in
other room, etc.

------
gdubs
There's a lot of groaning about the constraints of the platform (battery life,
available interface components, etc), but I for one am excited by these
constraints. It can be a really fun and interesting challenge to design within
constraints, and in this respect the watch reminds me of the early days of
mobile computing. Those tiny little battery-limited devices forced one to
think differently about what a UI is, compared to the gargantuan desktop
computers and their nearly cinematic display resolution.

~~~
hrabago
> It can be a really fun and interesting challenge to design within
> constraints

It'll be fun as a technical exercise and to satisfy one's intellectual
curiosity, but not as much fun once you've identified the workarounds for all
the constraints and you're just trying to ship.

------
pavlov
Based on the typography guidelines, the DIN-like font used on the Apple Watch
is named "San Francisco":
[https://developer.apple.com/library/prerelease/ios/documenta...](https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/WatchHumanInterfaceGuidelines/ColorandTypography.html#//apple_ref/doc/uid/TP40014992-CH9-SW1)

Here's hoping it will replace Helvetica on iDevices and Macs as well...

~~~
Someone
San Francisco? That font is over 30 years old
([http://en.m.wikipedia.org/wiki/San_Francisco_(typeface)](http://en.m.wikipedia.org/wiki/San_Francisco_\(typeface\)))

~~~
FreakyT
If only they had gone with the "classic" San Francisco font you linked -- the
Watch's whimsical level would be off the charts!

~~~
mturmon
It's a graphical illustration of the San Francisco of Armistead Maupin vs.
that of Jony Ive.

------
drewying
A quick scan makes it look like you don't have direct access to create your
own UI elements, you are stuck to the prebuilt stuff.

This definitely is designed to maximize battery life

~~~
wiremine
Yeah, and you can't create UX elements on the fly, they have to be contained
in the bundle pushed to the phone. So, less to install/push/change over the
phone/watch network connection.

------
Hopka
Following that link consistently makes my Firefox crash. Anybody else
experiencing this?

~~~
baby
Crashing firefox here too. I had it crashing multiple times until I realized
it was this tab that was causing it.

------
RamaCat
I think they've gone about this the wrong way, architecturally. I would have
streamed draw commands to the watch and received touch events back, with the
watch hardware essentially being a display client with no compute power of
it's own. That would cut silicon real estate, remove the need for local wifi,
etc - and placed the development focus on a super low latency wireless command
stream. That way, the watch, as a product, would last much longer between
upgrades, and your UI complexity would be bound by the host phone, not the
little SoC.

~~~
acqq
See wiremine's post here:

"The Watch app resides on the user’s Apple Watch and contains only storyboard
and resource files; it does not contain any code. "

~~~
RamaCat
With regards to the WatchKit apps - I'm sure I read they were static resources
- essentially a GUI library that can run on the watch. That's subtly different
to being able to render any command in a draw stream, say, from CoreAnimation.
The former gives a storyboarded GUI from a resource set (sliders, buttons,
etc), with static animated images (!), the latter is more flexible and I think
would be less resource intensive watch-side (render display commands vs local
GUI library)

If you wanted to go super-minimal, you could even probably stream a compressed
bitmap to a screen that resolution over a wireless protocol, moving all
rendering phone-side.

There's also still the issue of the native watch apps coming in 2015.

------
k-mcgrady
Yay! This will keep me busy next weekend I'm sure. Quickly glanced through the
catalog of objects available and it doesn't seem to be borrowing UI from
iPhone the way iPad did. Some similar UI elements but judging by the names
they are different implementations and not just differently scaled/laid out.

------
iamandybarnard
Do you think we will be able to build custom watch faces at some point?

~~~
ferpect
Doesn't look like there is any support for drawing on the fly. You could
create the watch face as static image, but I don't see a way of drawing the
hands and keeping them moving once a minute. Maybe create a series of static
images with the hands, and stream them once a minute from the phone? Anybody
have any thoughts?

~~~
alexweber
Seems like this is the type of thing that might be possible once the "fully
native watch app" sdk is released.

------
sunnynagra
Anyone have a link to available APIs?

~~~
ryanburk
you can start here, but you might need to be a registered dev to get to the
content:

[https://developer.apple.com/library/prerelease/ios/documenta...](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/index.html)

~~~
sunnynagra
Thanks! I am a dev, but was mainly curious if they were opening up the heart
rate sensor to apps directly or if we would have to go through HealthKit.

~~~
scald
It looks like mostly interface related things, for now.
[https://developer.apple.com/library/prerelease/ios/documenta...](https://developer.apple.com/library/prerelease/ios/documentation/WatchKit/Reference/WatchKit_framework/index.html)

------
rmcpherson
Are they allowing access to the sensor data from the watch? I'm particularly
interested in heart rate.

A brief scan of the documentation didn't show anything obvious.

~~~
c1sc0
Nope. Check the dev forums @ Apple.

------
seivan
You can cache images on the watch using WKInterfaceDevice.currentDevice() but
there is no way to check if an image has been cached, lol.

Can store up to 20 mb.

------
dang
Also
[https://news.ycombinator.com/item?id=8625526](https://news.ycombinator.com/item?id=8625526).

------
gajeam
Looked like there were a lot of motion detectors on the Apple Watch. Any
guesses on whether they'll expose that in the SDK soon?

------
Taek
I'm happy to see new products and a competitive landscape but frustrated to
see Apple (and others) using different development processes. It's already
painful to write apps that work on all 3 major mobile OSes, but now watch app
developers have a huge set of watches they need to develop for too.

Frustratating to see products each trying to compete using their own closed
ecosystem, because it hurts developers and it hurts innovation.

~~~
jlian
I understand your frustration, but I don't think products trying to compete
with closed ecosystems hurts innovation. The smartphone race ushered a new era
for software development. The new development process made it mandatory (in
order to stay competitive) to reconsider your software for the specific
hardware, which promoted some very good redesigns and innovation that would
not have happened otherwise.

