Will apps built for watchOS 1.0 (i.e. watch extension running on iPhone) work with watchOS 2.0?
Backwards compatibility
As far as I can tell yes and no.
It looks like even though the app was compliled for watchOS 1.0 that the extention is still getting transfered to the watch if watchOS 2.0 and iOS 9 are isnstalled. So any framework implentations that are not avalible on watchOS 2.0 (namely NSURLConnection and NSUserDefaults shared groups) will stop working.
So as long as the watch app doesn't use iOS only frameworks in their 1.0 app it should work in 2.0 otherwise some features mgiht be broken.
Based on history, it would be highly unusually for Apple to drop backwards support like that.
Unfortunately, Apple's documentation seems to indicate that apps that rely on shared groups between the main app and the Watchkit extension will have to be reworked for 2.0, so that's at least one instance where 2.0 won't be backward compatible.
Good point .
I can see where certain features can get dropped, but again, I'd be surprised if entire apps already in the store were suddenly outright obsolete - we may also need to consider the original iphone/watch/extension apps vs. when native apps arrive. I'd wonder if 2.0 will become a demarcation line...
◅▻
Shared groups will need to be reworked but I think how shared groups worked originally shows a great deal about the extention lifecycle for new and old apps will work on watchOS 2.0
Shared groups relied on the process running in the same contianer to share data. Since the WatchKit Extention is moving to the watch and running in its own process the shared groups functionality is broken. Apple is explicitly saying apps that used shared groups will need to be reworked but understanding the underlying reason why makes me confident that any watch app that was using an iOS only framework or library will have that funtionality break in watchOS 2.0 if the watch app has not been reworked.
However, I am confident that developers will be given plenty of time to submit watchOS 2.0 apps before its offical launch.
I've got a watchOS 1 app that relies on App Groups and shared NSUserDefaults. This app seems to be working perfectly fine in the watchOS 2 simulator, suggesting that watchOS 2 has some sort of compatibility mode for watchOS 1 apps.
I also asked Jake Behrens (watchOS frameworks evangelist/engineer) whether or not watchOS 1 apps would work unmodified on watchOS 2. He said yes (though didn't really provide any details). https://twitter.com/behrens/status/611265719553142784
Apps built for watchOS 1 are compatable with a watchOS 2 device. The WatchKit extension will continue to run on the paried iPhone for these apps, and there should be no changes required by the developer. If you are experiencing bugs running your existing apps on watchOS 2, please file a bug report at bugreport.apple.com.
Only apps built specifically for watchOS 2 will move the WatchKit extension to the Apple Watch.
Thank you for this response.
To summarize, and so I understand correctly, even if my current 1.0 app depends on App Groups and openParentApplication/handleWatchKitExtensionRequest for bi-directional communication it will still run okay and un-modified on devices running watchOS 2.0?
I'll migrate to 2.0 eventually, but I'm okay with 1.0 for this upcoming version of my app-- and I'll likely be submitting my watchOS 1.0 compatible app to the App Store just around the same time of the release of 2.0. That's not a problem for me (or my users) unless A) users running watchOS 2.0 won't be able to download and run my watchOS 1.0 app; and B) I 'll no longer be able to continue development targeting 1.0 -- i.e. developers will have no choice but to submit 2.0 compatible apps only following the release of watchOS 2.0?
To summarize, and so I understand correctly, even if my current 1.0 app depends on App Groups and openParentApplication/handleWatchKitExtensionRequest for bi-directional communication it will still run okay and un-modified on devices running watchOS 2.0?
Correct — watchOS 1 apps will continue to function as they currently do, regardless of what OS verion the user has on their watch.
Thank you for the info and the response.