TL;DR: My fact-based opinion: target at least Anniversary Update with existing apps and start targeting Creators Update with new projects.
About 2 years ago, Jerry Nixon shared this message at Microsoft Ignite: “Right now we’re releasing Windows 10, and because Windows 10 is the last version of Windows, we’re all still working on Windows 10.”
While we’re indeed moving to “Windows as a Service” and Windows 10 will most likely the last major version for quite a few years, it doesn’t mean that Windows 10 itself doesn’t get updated anymore. Major features are grouped in more official ‘Updates’ instead of silently patched through Windows Update, and the Windows 10 SDK has the same major releases to enable developers to target new features. So in the end we still have some sort of versions of Windows 10. This is what we’re at right now (September 2017):
Release date | Public version | Build / SDK version | Codename | Public name |
---|---|---|---|---|
July 2015 | 1507 | 10240 | Treshold 1 | Initial Launch |
November 2015 | 1511 | 10586 | Treshold 2 | November Update |
August 2016 | 1607 | 14393 | Redstone 1 | Anniversary Update |
April 2017 | 1703 | 15063 | Redstone 2 | Creators Update |
‘Fall’ 2017 | 1709 | 16299 | Redstone 3 | Fall Creators Update |
‘Early’ 2018 | 1803 | Redstone 4 |
That’s a lot of numbers and sometimes it’s very confusing to know which ‘release’ we’re speaking about as developers typically use the SDK version while support tend to ask people the public version of their system. Putting it all together in a single table helps us with the translation. With that problem solved, let’s visit the initial question: which version should I target as a developer with my apps.
There are 3 options (well, there are 5 already, but in reality it drills down to these):
- Always target the initial release (SDK 10240) so everyone having Windows 10 installed can use your app. Downside: you can’t use the latest and greatest additions.
- Go with the cutting edge targeting the latest release. This means you’re released with the Creators Update SDK and are probably already preparing for the Fall Creators Update. Downside: you are cutting off a group of users from future updates when they are not updating their OS on day 1 of a new release.
- Find the perfect spot in the middle: target the largest possible install base (which isn’t 100%) while trying to keep up to date as much as possible to be able to use some great features added after the initial launch.
But which version is the perfect spot?
According to AdDuplex (the largest cross-promotion network for UWP apps), over 96% of users using an app with AdDuplex integrated are running on Anniversary Update or later as of July 18. If you’re happy with 50% then you can already go with Creators Update. This number will have gone up quite a bit, since Microsoft removed throttling on the update. Now you might be wondering: Why throttling? By sending out the update in different stages, they’re not only splitting up the load on the servers, but it also gives a chance to squash some final bugs in the update process or edge cases on devices that weren’t tested yet in the Insider Previews. Update: I’ve been holding back this post a few weeks to get the latest statistics of August from AdDuplex and the share of Creators Update has gone up from 50% to 65% over the last month.
Conclusion: If you’d be starting an app today and plan to release later this year, my personal opinion is to target Creators Update (SDK 15063). And your apps in the store should be updated to Anniversary Update by now if they can use any of the new features. With the next update, keeping an eye on the market share will be even more important as the Fall Creators Update brings a lot of visual improvements and new controls.
But there is more: you shouldn’t hold back on using newer features while targeting an older version. How so? I’ll have a post coming up on this soon.