BT

iOS App Development Comes to Windows With Some Controversy

| by Jeff Martin Follow 16 Followers on Aug 11, 2015. Estimated reading time: 3 minutes |

Developers using Visual Studio 2015 can now develop iOS apps for use on Windows 10.  The technology has been mentioned before under the Project Islandwood moniker, but is now officially released as the Windows Bridge for iOS.  Published through GitHub, the open source project is available under the MIT license. 

The Code

The Windows Bridge for iOS provides Windows developers with a fully-fledged Objective-C development environment for Windows using Visual Studio.  To make this language support more useful, the Bridge also includes an iOS API layer.

Currently the Windows Bridge supports Windows 8.1 and Windows 10 on the x86 and x64 architectures.  Microsoft’s Kevin Gallo indicates that mobile support (via ARM) is planned for a future release.  Microsoft Program Manager Salmaan Ahmed has provided some details around the 4 major pieces of the Windows Bridge.  These include an Objective-C compiler, an Objective-C runtime, iOS API headers/libs, and integration with the Visual Studio IDE.

Interestingly binaries for the compiler are included in the GitHub repository but the compiler itself will not be open sourced.  Eventually a finished version of the compiler will ship in binary form in an update to VS2015 schedule for release later this year.  This compiler is based on Clang— and according to the contents of the GitHub repo, based on LLVM 3.6.  From what has been announced so far, Microsoft’s customizations allow Objective-C and C++/CX code to coexist in the same project.

Astute readers will not that the 4 components listed above do not include an emulator or iOS runtime.  Ahmed says that Microsoft’s goals for the project are to provide full access to the Windows API, reuse existing iOS code, and to let apps benefit from both API sets (iOS & Windows) without any limiting boundaries.  Running iOS app on Windows without conversion in an emulator (as is possible with Android apps) is not a project goal.

The Controversy

After this was released to the public several developers noticed that their work was included in the WinObjC project without attribution.  These developers include Peter Steinberger and Christopher J.W. Lloyd.  While these omissions have since been corrected, these developers were rightly upset that their code was initially used in this manner.  When asked about this matter, Microsoft responded with the following: 

“We missed a couple of attributions with our initial Islandwood preview release. The community caught the mistakes and we immediately fixed them. We appreciate the feedback and apologize for the oversight.”

Revealing the source to the project also brought up a potential security issue that could be considered risky or dangerous in its own right.  Landon Fuller found that the project is currently replacing the functionality of the arc4random() function with the less optimal rand() function.  The danger is that as currently implemented developers may overlook the details and think they are making use of the arc4random() function when in reality they are not.  When asked about this, Microsoft’s provided the following statement:

“This initial preview is primarily meant to generate community feedback on the core architecture of the project to help ensure we have a solid foundation to build on. Feedback to date suggests that core project components such as compiler integration and Windows interoperability are architecturally sound. We released an early preview knowing that the community would help find gaps in our technology and our processes and we’ve already made fixes to things like code attribution based on community input. We’re very encouraged by the level of interest and constructive feedback that the Islandwood preview is generating and will keep working with the community to improve the project.”

For background, Matt Thompson has written a brief explanation for why arc4random() is considered a better choice (see the section “Why Should I Use arc4random(3) instead of rand(3) or random(3)?”).

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

I am shocked by Mark N

Someone actually cared enough about this to look at it?

Re: I am shocked by Luis Espinal

Obviously you did :)

Re: I am shocked by Mark N

LOL. Not the article. The code. :)

Re: I am shocked by Luis Espinal

Hahaha, my bad :)

Re: I am shocked by Robert Sullivan

You shouldn't be shocked unless I'm missing something:

Couple points:

1. Surely the developers who wrote the code, but did not receive credit, would be interested in seeing this implementation?

2. This is a great example of the idea that security is better in open source apps vs. closed source. Obviously I am thinking of Oracle's recent blog blunder

Regardless, seeing the big picture: Objective-C compiler, based on Clang, and runtime, integrated with Visual Studio? Seems impressive to me.

Re: I am shocked by Mark N

Sigh. It was a comedic shock. It is the old you think i am saying one thing but making you think i am saying another. I suggest you call your doctor right away and have your funny bone examined. It is missing or broken. So yes, Robert, you probably ARE missing something.

FYI - Yes those who wrote the code deserve credit.

" Objective-C compiler, based on Clang, and runtime, integrated with Visual Studio? Seems impressive to me."

Sure. But my point is - at this point, W-really-GAS (google WGAS). VS.NET - only works on Windows. Is not the best IDE available (in terms of flexibility and etc) and has the least mind share (compare Java vs C#/VB.NET jobs in Indeed for example or the TIOBE index or ....)

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

6 Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT