Arguably the biggest news out of Microsoft’s Build 2015 conference is that developers will be able to bring Web apps, Windows desktop apps (Win32), as well as Android and iOS mobile apps to the Windows Store. Yet each of these work differently, and there are a lot of nuances to consider; we talked to Todd Brix, general manager of Windows apps and store, to get some more detail.
First and foremost, upon Windows 10’s launch, developers will only be able to bring Web apps to the Windows Store. The Win32, Android, and iOS app toolkits will not be ready in time. That said, with Microsoft’s Windows as a service strategy, they will arrive as part of later updates.
Next, there seems to be a lot of confusion as to what devices these apps will be able to run on. Brix explained the options like this:
|Web||Uses web code as a native app||Any Windows 10 device|
|.NET & Win32||Sequences and repackages Win32 code as Appx||Desktop only|
|Android: Java/C++||Runs on top of the Android subsystem||ARM based mobile devices: phones and small tablets|
|iOS: Objective C||Maps Objective C to C++||Technically runs on any Windows 10 device — however, it does not leverage the universal UI and universal controls so the app will not automatically scale/adapt to different screen sizes.|
In short, Android and iOS apps can be ported to more than just Windows 10 for phones, but there are some details to consider. With that out of the way, it’s worth diving into Android and iOS specifically, as that’s where app development is currently focused.
To bring your Android apps to Windows 10 you’ll need the Universal Windows Platform Bridge for the Android Runtime, also known as Project Astoria. Those interested in trying it out before it’s available for all can sign up here for the limited developer preview.
The Project Astoria toolkit lets developers build Windows 10 apps by reusing their Android projects, hopefully with few code changes. Testing and debugging apps can even be done using your preferred IDE; developers do not have to use Visual Studio.
While in its documentation Microsoft describes that Project Astoria is meant for building apps for Windows 10 phones, as shown in the table above, your app can technically work on ARM-based Windows 10 phones and small tablets. Windows 10 on these devices includes an Android subsystem, which naturally doesn’t work on non-ARM Windows 10 devices. That also means x86 Windows 10 tablets or phones, for example, won’t be able to run these apps.
If developers want, they can just stop there. They can, however, take things further and use a Microsoft interoperability library to integrate Microsoft services into their app “with very little effort.”
In this way, Android app developers can generate revenue from both Google Play and Windows Store, using a shared codebase.
To bring your iOS apps to Windows 10 you’ll need the Universal Windows Platform Bridge for iOS, also known as Project Islandwood. Those interested in trying it out before it’s available for all can sign up here for the limited developer preview.
Unlike Project Astoria, the Project Islandwood toolkit lets developers build Windows 10 apps using iOS’ programming language, Objective-C, hopefully with minimal changes. Building, testing, and debugging apps has to be done using Visual Studio (Islandwood lets you import your Xcode project).
In its documentation, Microsoft describes that Project Islandwood is meant for building Windows apps. As described in the table above, while this is technically true, you will have better luck porting iPhone apps to Windows 10 for phones and iPad apps to Windows 10 for tablets of the same size.
If developers want, they can just stop there. They can, however, take things further and take advantage of Windows services as well as extend their app to take advantage of the Universal Windows Platform.
Microsoft’s strategy here is very complex, but it boils down to this: The company wants to bring developers in love with other platforms to Windows 10. It’s very possible the details here will change, especially given that these toolkits are in preview; we will update you if and when that happens.