It seems reasonable to assume that it will not be possible to install watchOS 2 without also installing iOS 9. Based on that assumption I'm thinking about how I'm going to update my iOS and Watch apps. This dicsussion rambles a bit, sorry! It's difficult to concisely express my thoughts.
Xcode 7 offers to convert your watchOS 1 app into a watchOS 2 app. But if we do that, we're going to prevent our Watch apps working on watch OS 1 devices in our new version of the app.
There are lots of different combinations and I'm not sure what will happen in all cases. For example,
- An existing user of your app running iOS 8.x downloads a new build of your app that only has watchOS 2. Would their watchOS 1 app be deleted?
- An iOS 9 user still running watchOS 1 downloads your app.
- An iOS 8.x user without a Watch wants to download your app.
- The easy case - an iOS 9 and watchOS 2 user.
Perhaps it would not be possible for a user with iOS 8.x to download the latest version of an app that only contained a watch OS 2 app. But that seems an aggressive solution and would prevent the latest version of your app being downloaded by people without Watches.
Maybe there are two approaches that would work best:
- Go all in. Change your app to require iOS 9 and only include a watchOS 2 app. This prevents bug fix releases for iOS 8 users without Watches.
- Be conservative. Add a watchOS 2 app and keep the watch OS 1 app.
Is there a middle ground that would work? Remember, a small (unknown) fraction of iOS users have Watches, so we need to be careful not to optimise for the uncommon case.
I'm cautious about option 1, but maybe I shouldn't really worry about customers who don't upgrade their devices. All devices that support iOS 8 can also support iOS 9 so there's no technical reason for them not to upgrade. Users with older devices are probably the least likely to upgrade (although iOS 9 may actually be better than 8 for them!) But do we care so much about users with old devices that we let it dictate our approach? They are an increasingly smaller part of our target audience. If you're Facebook you want to reach as many users as possible. If you want to earn money, you need to focus on people who are willing to pay. People clinging on to their 4-year-old iPhone 4S probably don't spend much money on apps.
Option 2 is arguably the safest and most customer-friendly but this complicates your Xcode project, perhaps considerably. It might be possible to include your Watch storyboards in both watchOS 1 and 2 targets. If not, or if you want to change the appearance you'll need to make copies. Depending on how much iOS to Watch data sharing/communication your app does, a lot of code changes will be required for watchOS 2. Supporting both watchOS 1 and 2 in the same iOS app might increase the complexity considerably. Is it worth it?
I'm interested in hearing your thoughts and what you are planning to do.