Software Development Blogs

iOS App Development for Windows 10

Microsoft has joined the app game and they’re currently developing tools to bring both iOS and Android apps to Windows 10. Further, the company is also working on getting web and old Windows apps on the OS to “bridge” the gap and create (what they’re calling) Universal Windows Apps. Scheduled to be publicly available to developers this fall, it will be interesting to see how Microsoft adapts various apps to their operating system.

What the company is doing essentially is taking advantage of an extensive software ecosystem where developers can easily transfer their apps from one OS to another. That basically means that the code is transferred from one platform to another and then adjustments are made to enable it to function on the new OS (this doesn’t always work). The new platform is a departure for Windows as what they’re trying to do here is build hybrid apps which are Windows apps but still iOS and Android at the core.

What’s the Pitch?

Microsoft is attempting to attract developers by encouraging them to bring their code to a new platform without making too many changes. In turn, the developers will be able to control Windows like Cortana, Holograms, Live Tiles, and Xbox Live. The tech giant is already testing the new tools with some key players like the creators of the Candy Crush Saga (the game on the Windows Phone was converted from iOS code using Microsoft’s tools with minor modifications).

What’s Windows Bridge?

Microsoft is building tools for developers to help carry apps from one platform to another. The company refers to these tools as the Windows Bridge. For the iOS, the bridge in particular is open source (for developers) and comes with its own compiler (clang+cl). It also tries to combine the programming codes of iOS apps (Objective-C) with Windows (C++/CX).

Github already has the source code, instructions, and will support x86 and x64 computer processing architecture. Further, the company announced that it will add ARM support in the coming months (for possibly Windows Phones). Some parts of the functions of the compiler are now up on Github, however the compiler won’t be open sourced.

At the present time, the Windows Bridge is supported by Windows 8.1 and Windows 10. The following components are available on the bridge for Universal Windows apps:

  • Objective-C Compiler
  • Objective-C Runtime
  • iOS API Headers and Libraries
  • Visual Studio IDE Integration

Microsoft has built its own Objective-C compiler (based on Clang and LLVM 3.6) called clang+cl and it was developed to turn Objective-C iOS apps into Universal Windows apps. The complete compiler will be available as part of the Visual Studio update later this year. Further, Objective-C runtime for Windows Universal apps will offer dispatch, delegation, and reference counting functions (among others).

When it comes to the iOS API Headers and Libraries (to make the language support worthwhile), Microsoft is almost complete with the iOS API capabilities on Windows 10. This in turn will Support the most common iOS APIs and will continue to drive Microsoft’s open sourced activities.

Apps developed with iOS Xcode can now be brought into Visual Studio to fuse it with Windows 10 (this is actually the point where the capabilities of both iOS APIs and Windows 10 become intertwined). The main idea behind this move is to gather all the code and run Objective-C, Java, JavaScript, and Win32/.NET instead of just C++ and .NET (which is just like Windows in the early days). As Objective-C does not communicate well with Windows API, Microsoft is hoping to turn Windows APIs into a new programming language.

The Windows version of the UIKit is called XAML and iOS developers have their work cut out for them to adapt to it. To integrate these different UI frameworks, Microsoft is connecting individual capabilities of the UIkit to the corresponding function in XAML.

What’s the Controversy?

After its public release, many developers identified that their work was not credited in the WinObjC, however Microsoft quickly fixed the error. Further, some security issues popped up as the project is swapping the role of the arc4random() function with the less ideal rand() function. As a result, this creates a situation where developers may neglect the details and believe they’re using the arc4random() function when they’re not. The company is working on fixing these issues and claimed to have released the preview early to get help with identifying bugs in the technology.

Do you believe Microsoft will succeed in today's hectic race for mobile user?

IT Storyteller and Copywriter
Andrew's current undertaking is big data analytics and AI as well as digital design and branding. He is a contributor to various publications with the focus on emerging technology and digital marketing.