I don't quite see when in the keynote Apple demonstrated the run-anywhere applications that's discussed in this blog entry. These are all different implementations of applications running on their respective platforms, integrated through the cloud. It's nothing new at the most basic level, and nothing new at the application level. What Apple's done is integrate everything in a fairly seamless fashion. Certainly Apple gets kudos for their execution (the proximity stuff was cool), but in the end, integration through the cloud and being able to pick up where you left off is something that has already been demonstrated by Google (along with other companies) with stuff like Chrome syncing and the Google Docs suite of applications.
I could be mistaken, but I don't think the integration is through the cloud. It looks like it's built on the same tech as airdrop, using bluetooth 4.0 to exchange bonjour data then build an ad-hoc wifi network to transfer data (might skip the wifi for tiny transfers like email contents)
Otherwise, the stuff like instant tethering wouldn't work because the devices would never be able to connect - also it seemed too fast in the demo to be making the round trip to the cloud, though that is the nature of demos
Admittedly I can only make guesses as to the actual implementation. It may well be through the cloud, through some Bluetooth/Wi-Fi communication, or maybe even a mixture for all we know. Nevertheless, my point is that the concepts and the high-level integration in and of themselves are not particularly novel.
Again that's not to discount what Apple has achieved here. In typical Apple fashion, their excellent execution of existing concepts is where their value proposition lies, and this is no exception.
The cloud part is that if you handoff between a document in Pages in iOS to a document in Pages in OS X, the document itself can just be opened via iCloud rather than sending it directly. Only the user's current state (scroll and cursor position) needs to be sent directly.
We already have run-anywhere applications. They are called web applications. I don't see how Apple might improve something here. I can start creating email in GMail on iPhone and continue to edit it on PC and many other web apps have similar functionality.
Apple's improvement is in reducing the friction. When the devices are in proximity you literally swipe the icon and are instantly in exactly the same state you left off — on a different device. Web apps don't do it like this, and I think that's an important aspect of the attraction here.
>When the devices are in proximity you literally swipe the icon and are instantly in exactly the same state you left off — on a different device. Web apps don't do it like this, and I think that's an important aspect of the attraction here.
Web applications DO this. Take a look at google docs. Thanks to technologies such as operational transformation, this is possible.
Chrome doesn't even work like that. Web apps can do it, but it's a huge pain in the ass. It looks like apple's going to make the transition a lot easier.
I am not familiar with any web apps (Google docs included) that put an icon on the lock screen of a device within proximity that you can swipe to be instantly at your editing position ready to continue. This is what I refer to when I say "reducing friction".
It's not the problem with web apps, it's a problem with Apple who doesn't provide such an API. Chrome and Safari has notification API and it can be implemented in a way to support this.
It sounds like a neat trick, but I'm having a really hard time thinking of when I'd actually want or need to do this. If I'm already near my desktop or laptop, I'm unlikely to start composing an email on my phone and suddenly decide I want to continue it on another device. So I'm not sure what friction they are reducing.
Most common I can think of is when I want to read a web page on something bigger than my iPhone. Currently I have to email myself a link, and I lose my scroll position.
Just noting that if you use Safari you can use iCloud tabs to load pages from other devices. I believe Chrome is similar in this regard. Handoff just reduces the friction in even this process, so you don't even need to specify which page to pick up reading on.
iCloud tab syncing has a pretty bad lag. Maybe a minute to update on my Mac. Fine most of the time, but annoying if you want to do a Handoff-style scenario. It also doesn't show your current iPhone "tab" highlighted in any way, which is odd.
So, I'm glad Apple saw it as something to improve.
The author makes the leap from "data is live-synced between multiple running applications" to "applications that can run on multiple devices simultaneously" erroneously (or, to make a different point). They're quite distinct technologies that are not mutually dependent on eachother. In fact, this tech could be applied to web applications to also interoperate.
Web applications are run-anywhere, but are not live-synced. Google Docs are, but not web applications as a whole.
Which raises the question: how much of that better-than-web performance of native applications is due to not having to deal with networking which, by the nature of this 'advance', they will now have to deal with?
When performance is needed, you can use asm.js, webGL, HTML5 video/audio APIs, and in the future other APIs. It's very hard for me to imagine consumer applications, which can't be implemented as web.
Seeing this in the context of Microsoft approach to resolve the problem : “Moving their developers to a common platform for running the same code in every device”.
Apple is moving developers to optimize the experience for each device. Microsoft in the other hand is trying to cramp every user scenario to one single device ( surface) and preaching that having access to the app in every device is equal to running the same code. This approach surprises me, because of the excellent cloud solution that Microsoft is promoting , that can be the fabric that connect their app experience across devices.
An app is an experience that can be access from multiple devices/platform each one tailor to the native environment. The challenge is to provide a seamless transition between this devices, and that is what apple is trying to do with handoff.
I'm not sure what the author is trying to say here. They define "run anywhere" as a single implementation able to run on multiple devices, all having access to the same data? Isn't that what databases are for? How does Apple offering a closed-off service only for iOS, Mac, and web apps to sync data the future of anything?
I think the point is that it never has been a technology problem, but rather a usability one. This particular implementation may not be the implementation, however it's a step in the direction of fixing this problem.
Slightly redundant, but application state really should just be considered additional data: Amazon has done the "resume reading on the same page on a different device" for some time unless I'm wrong. The CHOICE to sync the specific screen in the app as well as the contents of that screen might be a unique thing (and definitely makes for a good demo), but at this point we're just picking how far down the rabbit hole we want to go.
Here we go again. Apple announces a pre-existing technology and people start proclaiming how revolutionary that it is. The latest keynote officially once and for all highlights the fact Apple have stopped innovating. Sorry to say it, but the era in which Steve Jobs steered Apple to the top through innovation is well and truly over.
The whole premise of apps sharing data in realtime is something that people have been doing for some time in web applications in particular for sometime now. Throw in Node.js, Socket.io and some HTML and I've created an app that works in real-time on multiple devices and I've recreated what Apple's new functionality does. This isn't new, lets not misguide ourselves into thinking this is a new technological marvel. Native apps have theoretically been able to do this for ages now, Apple have just made it easier for native apps to talk to other apps easier.
"I can see a future where developers build a single version of their app that runs on iPhone, iPad, and Mac OS X (and hopefully Linux, Android, and Windows OSes, although let’s leave that discussion for another time)" The future is already here in that regard. You can achieve this through web applications. Sure, you don't get the same performance as a native app, but it is definitely already possible. There are already solutions out there like Multimedia Fusion and Flash that allow you to build an app in a non-native language, then compile it for iPhone, iPad, Blackberry, Windows Phone, Android and more. I would call this write once, run everywhere.