When the iPhone launched, and for the first versions of the iOS SDK, an app was a bundle, a directory with metadata if you will, with the suffix .app. System- and 3rd party apps were all contained in each bundle. No app was in multiple bundles, and no bundle was multiple apps.
Already I'm simplifying, because there was one more thing to the app bundle: optionally, you could add a settings bundle, which would load into Settings.app and allow the user to change the settings from your app, from outside your app.
Since then, things have become more complicated. To start with, you had universal apps: it was still an app, but now it had the complexity of targetting two platforms, the iPhone and the iPad.
Following that, we got extensions, which could (and in my opinion should) be seen as apps in their own right: little plugins, ...
For WatchKit extensions, I've used the parallell of puppeteering: the app makes the extension do things, but the extension itself has close to little logic. Others use the parallell of the browser, and I do like this. Like the browse, the iPhone serves up state in a context upon a remote screen, the app can project state in a context upon a extension (remote view controller).
Continuing on yesterdays post with the idea that hosting extensions (I really prefer the name remote view controllers like we saw in iOS 6) is something that can be opened up, let's take it to the extreme and say it was proposed as an open standard, much like HTTP. All the sudden, this could become the new browser, allowing any app to project their content into it.
That would be absolutely awesome! ...
Back in 2012 I wrote about the private framework around Remote View Controllers, hinting that developers should keep this in front of their mind. Through iOS 8 this became extensions, and with the Apple Watch, this is the main interface for Apple Watch, at least until WWDC 2015.
On the Debug podcast episode 57 Guy & co mentioned that Apple TV is a prime target for extensions, and I agree, but let's think it over. For my case, I have a kid and no time to watch TV. I use the TV mainly to stream music just like I would with an Airport Express (why, oh why, is this not in the Airport Extreme and Time Capsules! And why, oh why, has the Apple TV and Airport Express not merged yet? And neither have they been updated in forever. Sigh....). What is a killer feature ...
Yesterday, WatchKit became available for us developers, and as far I can tell, open for the entire world to see, which is a first for Apple at least since the iPhone introduction. I thought it'd be good to share my first impressions.
I remember the second day the first official iPhone SDK had entered beta. It was new. It was fresh. At the same time it seemed well thought out. It was opinionated. It laid a path of where we would go. And it was a very nice framework on top of BSD. I was thrilled!
WatchKit doesn't quite feel this way. The first thing I noticed that "the way it's done" in iOS is not the same on WatchKit. For instance, there is no autolayout. Autolayout is THE way to do dynamic layout, Apple has been pushing it hard. Yet it's nowhere to be found on WatchKit. It's older brother, springs and struts, is ...
I decided on what to do about the iMac harddrive situation mentioned in Finding a good Thunderbolt disk: I ordered a Seagate GoFlex thunderbolt adapter and caddy, containing a 1TB drive, which I'm going to replace with a 1TB Samsung 840 EVO drive.
That means that I'm not going to get the 550 MB/sec of the Samsung drive, but about 330 MB/sec where the SATA/Thunderbolt adapter caps out. I'm sad about that, and I'm also sad that I couldn't find a SATA/Thunderbolt 2 adapter at any half-decent price (not that anything Thunderbolt is decently priced, but I mean not ridiculously stupidly priced)
It was a toss-up between the Lacie and this one, but believe it or not, the built-in Thunderbolt cable came in as a minus for the Lacie, as I don't know how I'd go further ...