Much to the dismay of some viewers watching at home, Microsoft's BUILD developer conference today actually focused on technologies designed to benefit developers. However, some of the new developer technologies shown today may end up having profound impacts on Windows users. While Microsoft has never had any issues with making software available for Windows on the desktop, the same can't be said about Windows in the mobile space. Windows Phones and tablets have suffered from a lack of applications compared to their Android and iOS counterparts, and Microsoft hasn't been able to convince many developers to make Windows a priority for their mobile applications. Given this situation, Microsoft had to find another solution to the problem, and today at BUILD they showed what may very well be it.

The first big announcement was Project Astoria, which enables support for running Android applications programmed in Java or C++ on Windows 10 phones. During the keynote this was described as an "Android Subsystem" within Windows. The end result is that developers can bring their Android applications over to Windows 10 phones with minimal effort. There will still be issues with applications that link into Google Play services for features like Maps and location, but there are now far fewer hurdles for developers than there have been in the past. Microsoft demonstrated this during the keynote by showing the Choice Hotels application for Android running on a Windows 10 smartphone. The demo did run into a few issues, but it was still impressive to see.

What's even more remarkable is Microsoft's work to allow developers to use existing code from iOS applications programmed in Objective C to make Windows 10 applications. This new initiative is called Project Islandwood, and it allows developers can take their existing applications written in Objective C, have Visual Studio convert the Xcode project into a Visual Studio solution, and compile it for Windows 10. The demo shown on stage showed an application written for the iPad being compiled to run on Windows. Not only did it work well, but the application itself was not just a basic app. Apps using UIKit and Core Animation compile fine as Windows 10 applications, and it will be very interesting to see just how far this solution can go in bringing complicated applications over to Windows.

The demonstration during the keynote was a mathematics game which utilized the UIKit framework and Core Animation, and had very complication visual effects and animation. Despite this, the demo worked even more smoothly than the Android application demonstration, and even worked with input using the mouse. Microsoft also revealed that the ability to easily bring applications programmed in Objective C to Windows 10 is not something coming in the distant future, but is a technology that exists now and has already been put to use by game company King in bringing their Candy Crush Saga game to Windows Phone.

One important thing to note is that while Project Islandwood for iOS applications allows developers to create universal Windows apps, Project Astoria is strictly for bringing Android applications to Windows 10 phones.

These two announcements from Microsoft may end up being a game changer for Windows 10 applications on the desktop and more importantly on mobile. Developers still need to be convinced to focus on Windows, but if moving applications over from iOS and Android is as easy as Microsoft has claimed then it shouldn't be very difficult to get developers on board. Only time will tell how this ends up playing out.

Comments Locked


View All Comments

  • johnnycanadian - Wednesday, April 29, 2015 - link

    This'll be absolutely fantastic -- but only if MS starts to actually vet the applications in their App Store. As it stands, the Windows Phone App Store is an absolute cesspool, to the point of being unusable.
  • Romberry - Wednesday, April 29, 2015 - link

    A cesspool? Nah. Ain't great for sure, but it's not a hole full of digesting crap either.
  • mkozakewich - Thursday, April 30, 2015 - link

    All they really need to do (and Android and iOS at the same time) is stop treating all apps the same. Put in some curation, and then vet all the curated apps so that people can be certain they aren't garbage. And then natively incorporate the features of the often-used apps so that they have first-party support.
  • BillBear - Wednesday, April 29, 2015 - link

    Ladies and Gentlemen, I give you OS/10 Warp.

    This represents a capitulation to the competing touch ecosystems and should prove as successful as OS/2 Warp was.
  • lilmoe - Wednesday, April 29, 2015 - link

    Totally not the same thing.

    This doesn't mean that Windows 10 will *run* Android/iOS apps. It means that Universal Apps can be built using Java, C++ and Objective C, just like it can be built using HTML and Javascript.

    It's a game changer.
  • BillBear - Wednesday, April 29, 2015 - link

    How does that make it any less fragile when Google starts making changes just to mess with Microsoft, as we all know they will?
  • Romberry - Wednesday, April 29, 2015 - link

    Google can't make changes that mess with AOSP without breaking all those phones and tablets in the very fragmented Android ecosystem as well.
  • Alexvrb - Wednesday, April 29, 2015 - link

    That is incorrect. This takes existing code written by developers (not Google's code) and allows developers to recompile it for Windows 10 Phones. Google can't do anything about it (at least for current apps) because it's not their code in question. In fact Google could completely change everything and break compatibility so they don't work, and it STILL wouldn't prevent the developer from taking their existing code and porting it.

    Now going forward they can try to make it difficult to port future apps written exclusively to be native apps for some future version of Android. But by that point it might be too late, with too many developers onboard.
  • name99 - Thursday, April 30, 2015 - link

    You're assuming that the issue that matters is "the program runs (for some definition of 'run')".
    That is NOT the issue. What people care about is not just that a program runs, it's that it presents the same look and feel as the rest of the platform. The controls need to look OS appropriate, things need to be done in the usual OS way.

    This has never really worked successfully. It didn't work on OS/2. It didn't work for Java. It hasn't really worked for web apps (users FAR prefer native apps to wrappers around web pages). The only place where it sorta works is Google insisting on being a dick and forcing material design on its iOS apps which therefore feel completely different from every other iOS app. I don't have numbers, but my guess is that the consequence of that is that they have lost market share on iOS. Certainly I only use Google Maps or Chrome on iOS when I absolutely have to, because it's irritating as all fsck to have the browser suddenly refuse to honor the backward swipe gesture that is standard in the rest of the OS; or to try to figure out how to do anything in Maps where everything is ass-backward from iOS.

    Point is. If my choice is run Android, where everything works like I expect, or run Windows, where, sure, I can use the Android apps, but it's a PITA, why wouldn't I just stick with genuine Android? The technologists who get excited about how the fact that they can run these foreign apps never appreciate this point, the value of the entire platform feeling like a coherent UI whole.
  • lilmoe - Thursday, April 30, 2015 - link

    "What people care about is not just that a program runs, it's that it presents the same look and feel as the rest of the platform"...

    That has been said over and over again, yet only tech blogs cared. People never gave crap about "consistency" unless the entire paradigm was completely off. This was anticipated by Microsoft and could very well be the reason why they completely changed the design of previous Metro to the current Universal App paradigm with vertical scrolling, left margins for navigation, and "hamburger menus".


    "It didn't work on OS/2", "The only place where it sorta works is Google insisting on being a dick and forcing material design"

    Again, you're thinking like BillBear, which isn't the point nor how it works. You're NOT running iOS/Android apps on Windows 10, you're ***re-using*** your existing code, partially or completely, to PORT your ALREADY existing app(s), and BUILDING a new NATIVE Windows 10 Universal App that works "as expected" on Windows 10. Worst case scenario would be that the app is completely identical in look and function. The average case is that it might work better if the new strong points of Windows 10', Cortana, XBox and Azure services are leveraged. "Consistency" isn't completely compromised as mentioned above. The very fact you mentioned about how Google Apps on iOS don't adhere to iOS design guidelines, yet are very successful, proves that complete consistency with the underlying OS isn't necessary.


    The success of Java in the enterprise, and its failure in the desktop are completely different subjects, and neither apply here.

Log in

Don't have an account? Sign up now