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

78 Comments

View All Comments

  • name99 - Thursday, April 30, 2015 - link

    You make reasonable points, but there are enough downsides that I think no-one knows how this will play out.
    There are obvious legal issues. Presumably they will use Google vs Oracle as precedent, but it seems like the iOS libraries is a rather more substantial body of work than the Java libs. (Of course that may not matter as far as precedent goes.) There may also be Apple patents embedded in what that code does.
    On the other hand Apple may see no point in suing. It's basically an admission by MS that they don't know how to write a compelling API, which is worth advertising to the world, and a more satisfactory outcome might be something like an agreement with Apple which gives Apple access to anything MS has that may be useful (eg their async technology in C#). It also means MS has to support this forever as iOS keeps changing; and it means those devs never have to spend much effort learning new MS APIs and supporting whatever MS thinks will make their platform stand out from Android+Chrome or iOS+OSX.

    I also think you're wrong about "People never gave crap about "consistency" unless the entire paradigm was completely off." I'd venture that a large part of why people are willing to pay 30% for Apple products is precisely because they value consistency and fine attention to detail. Maybe MS has just given up on even attempting to appeal to those customers, and wants to fight with Android for the customers who will change platform tomorrow to save a dollar? That's sad --- I'd much rather see them compete on "we can provide quality every bit as good as Apple" rather than "we can shovel cheap garbage every bit as well as Google".
  • lilmoe - Friday, May 1, 2015 - link

    "There are obvious legal issues"

    Doesn't look that way to me. Syntax and library definitions (naming) aren't patentable, it's the implementation (ie: underlying code) that counts.

    "It's basically an admission by MS that they don't know how to write a compelling API"

    Hehe, that was a cute snark attempt. I like it. Hello? We're talking about Microsoft. They arguably have the most compelling, easiest, and most powerful platform and IDE in the business. The problem isn't the API, it's the timing. When they stepped in, there already were other successful established ecosystem (Android/iOS) with dedicated devs. They're making up for it with support of other APIs/Syntax to make migration that much easier. C# Syntax was originally developed with close resemblance to Java in mind to attract all the former Java developers. It was pretty darn successful. You can think of this attempt as being very similar.

    "It also means MS has to support this forever as iOS keeps changing"

    Nah. A good 2-3 years is enough until attention is drawn to the more powerful platform that Microsoft provides. Devs aren't idiots. Even if Windows 10 wasn't a huge success on phones in the coming years, they still have the tablet/desktop. What kind of idiot would want to ignore the total PC/tablet install base of Windows 10 in the coming year or two?? Major carrier billing is incoming as well. If their apps are successful there (and most probably will be), it'll be much more viable to invest in more dedicated resource for the additional (or primary by then) platform. There are also other technologies that make cross-platform easier (Xamarin comes to mind).

    "I also think you're wrong"

    You're entitled to your opinion. However, keep in mind that Windows isn't Android. You build once for Windows and it works literally everywhere as intended, more so than iOS (or similarly at worst). Android is the least easy of the bunch to code for and support, so attention to detail isn't always viable because too many versions exist. It's not as bad as portrayed, but it's definitely NOT easy.

    "Maybe MS has just given up on even attempting to appeal to those [premium segment] customers"

    Lets not get ahead of ourselves. Apple started off with an empty market, that's how they got their premium-only segment soaring with a relatively great product. This isn't easy now even with arguably better products. Android, for example already has a well established and equally capable ecosystem, but the only real contender in that segment is Samsung as far as sales and profits are concerened (and even Samsung has their bad year(s) too). Quality hardware and "attention to detail" is NOT enough, ask HTC, LG and Sony.

    When you don't even have double digit market share in a mature/saturated market, you do what you have to do to increase that number first with more affordable hardware (Windows is a lot, A LOT, cheaper for OEMs to support than Android). You then appeal to all the devs, make their lives easier, and get your ecosystem and identity up to speed (Microsoft is offering devs the entirety of the Windows platform as a *starting incentive*, phone comes second with little to no modification). THEN you storm the market with consistent, quality, and comprehensive hardware that appeals to the high end. That's what I believe is the best strategy to win an already very competitive market. The *key* is UNIVERSAL APPS, and THAT'S what this keynote is all about.

    That said, we'll have to wait and see. I initially thought this was their strategy with Windows 8, but Microsoft (and those clowns in management) SERIOUSLY messed up by jumping in before having their Universal App model ready. It would have been much easier than it is now, because they had a serious lead on Android in terms of UI performance/smoothness, especially in the mid/low end at the time. However, Nothing is impossible in a market where consumers change their devices every 2 years on average, software is getting less and less dependent on front-end technologies. This isn't the PC market after all.
  • mkozakewich - Thursday, April 30, 2015 - link

    As long as they use things like .NET messageboxes in the places where it asks "Are you sure you want to quit? Yes/No?" instead of those ugly custom things Java used, it'll be fine.
  • althaz - Wednesday, April 29, 2015 - link

    This is NOT directly comparable. IBM gave consumers a way to run software that wasn't for their platform. Microsoft is giving *developers* an easy way to port their apps to the Windows Store and run on them on Windows devices. Customers still have to buy/download Windows apps - it's just that developers don't need to change their toolsets to make Windows apps anymore (if they weren't already using something like the pretty awesome Xamarin).
  • lilmoe - Wednesday, April 29, 2015 - link

    The title is a bit misleading and is adding to the confusion. Windows 10 cannot run native Android/iOS binaries. Universal Apps, however, can be built using/reusing current Android/iOS source code.
  • lilmoe - Wednesday, April 29, 2015 - link

    edit: Universal Apps, however, can be built using/reusing current Android/iOS source code ***with minor modification if necessary***
  • BillBear - Wednesday, April 29, 2015 - link

    That change won't stay minor. Google greatly enjoys messing with Microsoft.
  • Romberry - Wednesday, April 29, 2015 - link

    Again with this Google will mess with MS stuff. Baseless. Do you understand how fragmented the Android OS is? The majority of handsets and tablets do not run the latest and greatest version of Android and never will. If you break the AOSP just to mess with MS. you break it for all those users of Android devices running older versions of the OS as well. Not gonna happen.
  • Gigaplex - Thursday, April 30, 2015 - link

    Google is already pushing to move core APIs out of AOSP and into Google Play Services. This allows Google to maintain a semi-stable set of APIs across a fragmented ecosystem of different Android versions, but it also allows them to make it difficult to provide Google-less Android platforms. This is harmful to both AOSP and Microsofts porting efforts.
  • althaz - Wednesday, April 29, 2015 - link

    Actually, you are incorrect. iOS apps will require a recompile, Android .apks will work on Windows.

Log in

Don't have an account? Sign up now