Microsoft has made no secret of the fact that it wants Windows 10 to be not just a universal app platform, but the universal app platform. A year after announcing that Windows 10 Universal Apps (UWA) would run on any Windows 10-enabled device and that Projects Islandwood and Astoria would allow devs to easily port iOS and Android apps (respectively) to Windows 10 Mobile, Microsoft reaffirmed its goal with a handful of announcements aimed at making it even easier to get more apps on its platform.
Mobile By Xamarin
On the mobile side, Microsoft has either cleaned things up or further muddied the water, depending on your point of video.
Project Islandwood (iOS) was renamed “Windows Bridge for iOS,” and the company open sourced it on GitHub last year. Simply put, it allows devs to bring apps using Objective-C into Visual Studio and compile it into a Universal App. Microsoft said it’s been updating it frequently.
Project Astoria (Android) was shelved entirely. Microsoft was a mite cagey as to the reason why, stating in a blog post that, “We received a lot of feedback that having two Bridge technologies to bring code from mobile operating systems to Windows was unnecessary, and the choice between them could be confusing.” This seems an odd reason at best. More likely, the problems with Astoria stemmed from what we learned a year ago, which is that porting Android apps seemed like it would be more problematic than porting iOS apps. Even more likely is that Microsoft obviating Astoria entirely by acquiring Xamarin.
Xamarin seems to provide the IP necessary to solve some of the mobile app porting issues. “Xamarin provides a rich mobile development offering that enables developers to build mobile apps using C# and deliver fully native mobile app experiences to all major devices – including iOS, Android, and Windows,” read a Microsoft blog post. The company said that Xamarin offers .NET and C# as app building tools that will provide a native app experience.
Project Centennial: The Old Is Made New
Microsoft said that there are some 16 million Win32/.NET desktop apps out there, and today the company announced a way for devs to convert those apps into UWA. The converter, dubbed “Project Centennial,” is technically a bridge like the Windows Bridge for iOS.
The tool allows you to convert, deploy and test your app, and then you can add universal Windows platform features from there, including background tasks and app services. Once that’s done, you can fully port your app to Windows 10, where it will ostensibly be able to run on any Windows 10 device.
Microsoft said that “an early iteration” of Centennial is coming soon to a small set of devs, and thereafter it will be expanded to more.
Microsoft built the “Windows Subsystem For Linux” (WSL) that enables native Bash and support for Linux command-line tools. Basically, you can run Bash on Ubuntu on Windows. Canonical was involved in the process as a partner.
“You can now run Bash scripts, Linux command-line tools like sed, awk, grep, and you can even try Linux-first tools like Ruby, Git, Python, etc. directly on Windows. You can also access your Windows filesystem from within Bash allowing you to work on the same set of files using your preferred Windows tools or Linux command-line tools,” read a blog post.
The tool is still in beta, and Microsoft was clear that it’s not designed for building server platforms (it pointed to Azure, Hyper-V and Docker as better options). It also noted that the Bash tool isn’t cross-compatible with Windows tools, meaning, for example, that “you won’t be able to run Notepad from Bash, or run Ruby in Bash from PowerShell.”
The company also noted that it’s worked to improve cmd, PowerShell and other command-line tools.