
Microsoft Makes It Easier to Bring Android and iOS Apps to Windows 10 - amitmittal1993
http://techcrunch.com/2015/04/29/microsoft-makes-it-easier-for-developers-to-bring-their-android-and-ios-apps-to-windows-10/
======
badlogic
It's weird that this isn't the biggest news out of all the announcements
today. Seems like an Electron fork is more interesting.

Having Android APKs work unmodified (minus Google APIs) is pretty neat, but
has been done before (BB, Jola).

The real interesting part is the the Objective-C toolchain. Seems like they
have an emulation layer for UIKit, Foundation and other frameworks. Probably
hard for them to keep up with changes and I expect a lot of growing pains for
early adopters.

Great news overall, I can finally add a proper Windows Phone/10 target for
libGDX. Makes RoboVM more versatile as well :D

~~~
codeulike
A windows universal app target for libgdx would indeed be awesome

~~~
badlogic
This is gonna happen as soon as the tools are publically available :)

------
mkozlows
This is the same strategy Blackberry tried, more or less, and I'm skeptical
that it'll work out any better for Microsoft.

It's nice enough in the short term, maybe -- Windows Phone users can get some
subset of quickly-ported things -- but in the long-term it seems to doom
Windows Phone to second-class status; why would you write a real, native
Windows Phone app when you can just do a quick half-assed port of your
Android/iOS version? And if Windows Phone is just a platform that has a bunch
of outdated, bad versions of some Android/iOS apps, there's not a lot of
reason to buy it.

~~~
cwyers
This isn't the strategy Blackberry tried. This is about making code portable,
not compiled binaries.

~~~
magicalist
Can you explain how that would help?

Also, it appears that it is indeed about allowing compiled binaries to run
unmodified.

> _Specifically, Windows Mobile (and yes, that 's now officially the name for
> Windows on phones and sub-8 inch tablets) will include an Android runtime
> layer that'll let them run existing Android apps (both Java and C++)
> unmodified.... Astoria will in principle work with any old APK, without
> requiring the developer to do anything but publish the app in the store—as
> long as the APK sticks to the APIs that Astoria will provide._

[http://arstechnica.com/information-
technology/2015/04/29/mic...](http://arstechnica.com/information-
technology/2015/04/29/microsoft-brings-android-ios-apps-to-windows-10/)

~~~
cwyers
Apps get full access to Windows APIs. They don't get full access to Google
Play APIs.

~~~
magicalist
Except they are building the Play Services APIs on top of the Windows APIs.

> _When we spoke to Microsoft about Astoria, the company would not tell us
> what proportion of the AOSP and GMS APIs would be supported, but it did
> confirm that it wouldn 't be 100 percent; there will be APIs that Astoria
> does not provide, and accordingly, APKs that use those APIs will not run._

> _On the flip side, Astoria will offer some integration points with Windows
> so that Android devs can, with minor alterations, support features like
> Cortana in their apps._

------
bargl
This is a brilliant move to make Windows 10 much more relevant. I really like
some of my Android apps, but I want a Windows phone. Hopefully this will
encourage apps like Automatic to move to Windows phone.

I also wonder if this will affect Xamarin in a negative way.

~~~
dublinben
>but I want a Windows phone

Why?

~~~
Frondo
I just switched to one. The interface feels polished, in a way that I've never
experienced on a smartphone before. I've used ios and android devices, and I
always found them clumsy and icon-heavy; lots of looking at little pictures,
when it's so much easier for me to read text.

All of the widgets "feel" better to me, too, than Android or ios.

I realize it's largely personal preference, but I hope windows phone sticks
around. I'd hate to have to go back to one of the others some day.

------
on_and_off
That's one very interesting move.

We already have BlackBerry and Amazon AppStore flavors for our apps (without
google login, cast, or anything else from the play services lib). So it should
be trivial to add one more for Windows.

I wonder about the UX of such a port though. Windows apps don't really look
like android ones (or iOS's for that matter). Sure, it should bring more app
but I can't help but worry for the general experience of the platform.

------
sremani
It is inevitable, they are going where the apps are. Android apps will run in
isolated mode on Windows 10 and you can develop Andriod apps using VS. iOS was
a surprise but that would make porting more apps easier. I hope this would
finally give the enough apps for Windows phone.

~~~
BinaryIdiot
> I hope this would finally give the enough apps for Windows phone.

I agree; I bought a cheap-o Windows Phone to test and do development with. I'd
love to use a Windows phone as my primary phone but 90% of the apps I use and
need are nowhere to be found. If this can get them to bring them over, even if
they don't tailer the experience it will hopefully still be good.

~~~
cordite
Especially anything made by or interacting with Google.

------
aeturnum
I'm disappointed to see Microsoft give up the UX control on their platform. I
bought a Windows Phone because I like the WP UX better than Android or iOS.
I'm also skeptical of the returns for Microsoft. How many users want the apps
on Android or iOS but don't want an Android or iOS phone?

I can see how Microsoft wants to make the software play. They want to have all
the apps available on their phone so they turn away as few people as possible.
However, I think phones are still too focused on platform for this to work.
The experience already varies widely across devices on the same OS (low end
v.s. high end), I have difficulty seeing how it would be acceptable cross-
compiled to windows phone.

~~~
mark_l_watson
It is the platform not the device. It is also about having our data securely
hosted in the cloud for use on all of our devices. I think this is a brilliant
strategy.

Off topic: I am volunteering to help with computer classes at the library in
my small town. This morning we talked about training people to view devices as
not being so important, instead keeping their digital lives on one of the two
cloud platforms we will probably support: Google (drive, docs, pictures) and
Microsoft Office 365. I think that we are suggesting the right choice for
people who are just learning to use computers and the Internet.

------
mpweiher
What I read in the article is the following:

"Developers will also be able to recycle their Objective-C apps for iOS using
new _tools_ in Visual Studio."

Notice "... tools in Visual Studio".

To me this sounds more like conversion/porting tools, not so much like support
for compiling ObjC and a runtime. Is there information elsewhere that sheds
more light on this?

------
chenzhekl
Maybe we could add in the title the support for objective-c compilation. It's
really important.

~~~
plorkyeran
I'd guess that obj-c compilation is just done with clang (as they're already
using clang for Android). The fact that they've apparently reimplemented
UIKit/Foundation/etc. is the more surprising part to me.

~~~
melling
Unfortunately, many developers are going to be writing code in Swift. Xcode
and Swift are baked and there's plenty of Swift information (e.g.
[http://www.h4labs.com/dev/ios/swift.html](http://www.h4labs.com/dev/ios/swift.html))

At this point, it's probably not worth writing in ObjC just to be compatible
with Windows.

~~~
rickyc091
Swift probably still won't be used in production for some time due to the
editor (Xcode) being extremely buggy. Error messages aren't great and with
each new release of Xcode, there are syntax changes.

~~~
melling
People are already using Swift in production. In fact, they suffered through
the slow compiles, etc of the older Xcodes.

[http://making.duolingo.com/real-world-swift](http://making.duolingo.com/real-
world-swift)

I wouldn't write any new code in Objective C. Swift is just a better language
to work with. 12 months from now, you'll be much happier that you wrote 25k
lines of Swift in 2015 instead of Objective C.

~~~
vor_
I use Swift for small applications, but the language is clearly incomplete,
and and its tools are not ready for large, complex projects. You can use it,
but it's painful. Just today, I had to write dozens of lines of
RawOptionSetType code to mimic a C bitmask.

~~~
kenrikm
I've been developing for iOS since 2008, so much this! Swift is just not
ready, I constantly run into "WTF" moments when I find something that's
standard in most languages "has not been implemented yet" in Swift.

~~~
melling
No examples? Swift is already much richer than Objective C.

------
mhomde
I can't wrap my head around how apps with any kind of advanced animation could
work. I mean Windows Phone 8.1 has decent animations, you can do translations,
scales, rotates etc but it has no kind of transition effects or bitmap effects
at all. At least ios seems to rely quite heavily on that kind of stuff...

------
toksaitov
I wonder how do they manage Cocoa Touch, OpenGL ES, etc.

~~~
TheCrownedFox
For OpenGL ES:
[https://code.google.com/p/angleproject/](https://code.google.com/p/angleproject/)

------
TheTaO
However exciting this is, I wonder how the support and future development will
be accounted for. Porting an application is probably easy but the moment
android adds a feature that is not supported by the Microsoft abstraction, you
are either opting to choose the least common feature set or are maintaining
two separate code bases. Both very unfavorable outcomes.

I love windows phone and don't really miss many applications on it but I know
many people do. Hope this fixes it.

~~~
sz4kerto
Usually you can't really use cutting edge features anyway as the devices run
older OS version (at least that's common in the case of Android)

~~~
ercu
Actually, Google Play Services dynamically adds or updates new features on
older OS versions too (Maps etc). So this is not an issue now.

------
BinaryIdiot
This is amazing. I'm very curious how it works under the hood with the Android
and iOS platforms. It wouldn't surprise me if it gets translated into MSIL.
That's how I would do it at least.

Also curious what the limitations are. If this works as advertised the Windows
Mobile store could go from mediocre to pretty awesome as long as they get
tailored for the platform.

~~~
JTon
I know devs for BB10 felt burned when BBRY announced the Amazon app store is
coming preloaded on BB 10.3 OS for "entertainment" apps. Where the native BB
World app store remained for "productivity" apps. Speaking from experience,
the momentum for top tier AAA apps has all but shriveled up and died

------
dobroezlo
So they said that King has already used that to port Candy Crush Saga. That
means that the tool is already available. Where?!

~~~
Blaaguuu
More likely it means Microsoft approached King privately, to have them work on
the port in secret, so that Microsoft would have something to show off.

------
tacos
I like how the graphic has "Web" and ".NET/Win32" in the wrong lanes, sending
you to a sure death in the face of massive oncoming Android and iOS traffic as
you try to cross that bridge to a cross-platform nirvana.

------
Matthias247
I wonder how it works.

As you need to recompile the app instead of directly running it I guess they
have made wrappers that implement the native Android and IOS APIs on top of
the APIs for Universal Windows apps? That would be a massive effort.

The other question is whether they recompile Java/ObjectiveC to something else
(C++ or .NET) or whether they are running these languages natively and
providing interop to their native SDKs.

~~~
pmelendez
For Android they are just using LLVM to generate the binary and deploying it
to their emulator (hyperv based I believe).

When delivering to Windows they use an android subsystem and a container to
run it. It is a quick and dirty approach, you still would need to put some
Windows specific code to access to Windows only SDK such as inking API or
Cortana.

If you are creating an app from scratch it seems like an universal app with
c++ shared code is the way to go

------
mwcampbell
I wonder how UI accessibility for people with disabilities, e.g. blind people,
is going to work for these ported apps. That is, will the UI of an ANdroid app
ported to Windows Phone be as accessible as it was on Android, or as
accessible as a native Windows Phone equivalent would be? Hopefully they
didn't do this half-assed and ignore accessibility altogether.

------
xenadu02
In honor of "Where's the Beef", there is no info about this and you can't try
it. Buried on an MSDN page is a signup form for a "limited number" or beta
slots.

I classify this announcement as: currently vaporware.

------
magsafe
I'm a full-time iOS developer and want to share my perspective on this news.
The developers who create those amazing apps on iOS are not going to fall for
this. I'm one of those developers, who pays very close attention to detail to
make pixel perfect apps that I'm proud to put my signature on. I will not
accept my brand being introduced on Windows or any other platform using a
glorified code generator. If I want to bring an app to Windows, I would learn
the platform, go "all in" and make my app as perfect on Windows as it is on
iOS. This would require me to dig into all the SDK docs, understand the
platform capabilities, learn the native APIs, deal with the challenges of
supporting different form factors, and a lot more. There is simply no shortcut
to a great app, and a developer who is proud of his app would not release
something that a machine generates. A great app is not one that has been
thrown together using abstracted APIs and a code generator. A great app is one
in which the developer has written and/or analyzed every line of code to
maximize the aesthetics and performance on the platform it is running on.
Windows' code conversion isn't going to encourage the really good apps to
migrate, although it might entice some cheap knockoffs or poorly designed apps
to ship an equally poorly designed experience on Windows. So bottomline, I
don't expect apps like Instagram to suddenly appear on Windows because of
this.

Also, developers don't avoid Windows because it lacked a code conversion tool.
If all it involved was learning a new language or porting some code,
developers would do it, just like they learned to go from Objective C to
Swift, or all the evolution of Cocoa Touch through the years.

Developers avoid Windows for far more complex, intangible reasons that go way
beyond a code converter. There are all kinds of perceptions about Windows and
Windows users that simply will not change because of this tool. The iOS
developers I know will shrug off this announcement, and continue shipping
their apps on iOS. I admire Microsoft for overcoming the technical challenges
of creating this tool, but sadly they have not overcome the perception and
mindset challenges of a dieing platform.

~~~
rednukleus
> Developers avoid Windows for far more complex, intangible reasons that go
> way beyond a code converter. There are all kinds of perceptions about
> Windows and Windows users that simply will not change because of this tool.

More developers use Windows than any other platform. Your entire comment
epitomises the cultish bubble that many HN developers seem to live in,
completely oblivious to the rest of the world.

~~~
vor_
They were referring to iOS developers and others who avoid Windows.

------
hobarrera
> Developers will also be able to recycle their Objective-C apps for iOS using
> new tools in Visual Studio.

Why am I suspecting that Apple had an additional agenda with Swift?

~~~
pistle
That was my first big ? as they were rolling on this set of features. But, in
terms of languages, the uptake for MS with another language seems like merely
a bandwidth issue at this point. Build 2016 could feasibly include Swift? What
if they could bring the quality of Visual Studio on OSX to Swift and have the
easy hooks to get those apps running on Windows?

------
higherpurpose
I wonder if Google will realize it's now going to be _forced_ to push "Android
laptops" for "native performance" on the market instead of doing it on top of
Chrome OS (like Microsoft is doing here) which is a battle it's going to lose.

Android laptops = all 1.5 million apps work by default (although might have
some UI issues at first, depending how Google implements them - I think they
should just put them in "windows") - unlike ChromeOS/Windows 10 approach which
will require devs to add every single app to those stores.

~~~
Nullabillity
My guess is that they'll just add Chrome (through ARC) as an install target in
the play store once ARC has been available for a bit longer.

------
bernadus_edwin
As a lumia user, this is a very good news. As a windows phone developer, i
have to find a new job!

------
megablast
If mohammed won't come to the mountain, we will bring the mountain to
mohammed.

------
jjuhl
If this makes more people ignore Windows phone as a platform and just develop
Android apps I'm all for it. Anything that hurts MS and their platforms gets a
plus in my book. This looks like a nice step in the right (non-ms) direction.

~~~
0xFFC
As GNU lover I cannot understand this much of hate toward Microsoft , Why ?
Microsoft is the only not spying on you , Google and NSA and every other big
name does too.So if you want blame someone there is more name's applicable to
blame ( like NSA , Government , Google and etc ) to blame than Microsoft.

~~~
tedunangst
[http://www.hanselman.com/blog/MicrosoftKilledMyPappy.aspx](http://www.hanselman.com/blog/MicrosoftKilledMyPappy.aspx)

~~~
jjuhl
Maybe. But, for me, they did too much wrong for too long to ever be able to
repair that in my lifetime..

