The Developer’s Dilemma: How Do You Reach a New Audience without Spending Hours Recoding?

MSOpenTech_whiteboard_v3PERSP

One of the greatest challenges of today’s developer is to develop lasting code that works across multiple platforms and devices. Because ultimately as creators, don’t we all want everyone (and anyone) to be able to access and appreciate our hard work? Writers want their books read. Singers want their songs heard. Developers want….well, you get the idea.

Open source technologies are one of the solutions enabling developers to extend their reach reusing their skills and code as communities contribute adding support for new platforms all the time. Windows has always been a great playground for developer communities and many open source technologies already support Windows devices.

clip_image002The Enyo team is a great example of how communities are considering all modern platforms to allow developers to concentrate on innovation and broaden their reach to many devices leveraging their existing skills and code. From the get go, they have considered and rapidly supported all the major mobile platforms including Windows Store apps and Windows Phone apps. The Confero app demonstrates how a dev can reach more customers with the same app on iOS, Android, Windows Phone, Blackberry and the Web.

To further help developers have their code work seamlessly across platforms, Microsoft Open Technologies (MS Open Tech) has been working with many open source communities to add to the list of frameworks and tools developers can use to build Windows Store and Windows Phone apps.

Whether you are a web developer coding with jQuery or other JavaScript frameworks and tools, or a C++ developer using Cinder, OpenCV, Cocos2DX, Ogre3D, Bullet, Box2D you can now use these frameworks and libraries, and reuse your code to port your existing applications or create new apps for Windows devices.

Below we’ve broken down by developer the tools and resources MS Open Tech contributed to bring to Windows devices to help you introduce your applications to whole new audiences!

clip_image004

For C++ and Gaming Developers

Do you use C++ for game and graphics development, favoring its native access to hardware acceleration? MS Open Tech has worked closely with various open source communities to contribute code to popular C++ frameworks optimizing them for Windows devices.

  • Cinder, a growing programming library for creative coding in C++ and used for design engineering has just been brought to Windows Store apps by MS Open Tech
  • Cocos2DXandOgre3Dwhich already supported Windows Phone 8, now fully support Windows Store apps. Porting a Cocos2D or Ogre3D game to Windows devices is now as simple as a copy paste of your code into a Visual Studio project for Windows Store or for Windows Phone.
  • Box2D and Bullet are other great gaming libraries joining the Windows Store apps party!
  • OpenCV, popular computer vision and machine learning framework, can now be used in Windows Store applications as well.

For Web Developers

Since Web technologies started to be used to build apps for devices, MS Open Tech has engaged with open source communities such as PhoneGap or jQuery Mobile to make Web developers life easier in their new ventures. From cross platform development tools, to HTML5/JavaScript frameworks, and development tools, we contributed to enable lots of open source technologies on Windows devices that let Web developers build apps for Windows 8 and Windows Phone 8 without wasting hours learning a new platform.

jQuery now fully supports WinRT (the Windows Runtime, powering Windows Store apps), allowing web developers to build Windows 8 apps reusing their existing code and skills. As a direct result from this work, web developers can also use other frameworks that are based on jQuery, such as Backbone.js, Knockout, CanvasJS, RequireJS to build Windows Store apps. You can learn more about what it took to make jQuery support WinRT on this Nettuts tutorial.

Developers who use HTML5 to build cross platforms apps for iOS and Android with tools such as Apache Cordova (aka PhoneGap) can easily port their apps to Windows Store and Windows Phone Store as Apache Cordova fully supports both platforms. If you want to learn more about the MS Open Tech’s partnership with Apache Cordova, join us at PhoneGap day in Portland at the end of the week.!

Many HTML5/JS mobile frameworks come with themes for Windows Phone 8 that were created with MS Open Tech’s technical support. jQuery Mobile, Sencha Touch, Dojo, Enyofully support Internet Explorer 10 and the WebBrowser control used to encapsulate web code in native apps on Windows Phone, in the exact same way as Android or iOS.

And don’t forget weinreon Internet Explorer 10 for remote debugging of HTML5 pages and SQLite for data storage – both work seamlessly with Windows Phone 8 and Windows 8.

Cloud-Based Services for Mobile Developers

Lucky for us, the Windows Azure team is only a few minutes away by bus or car, and we have worked closely with this team to make robust and flexible mobile services available for developers to build apps that scale on all major platforms so you can focus on innovation, instead of constantly reinventing the wheel.

Specifically, we built the Android SDK for Windows Azure Mobile Services to complement the support for Windows Store apps, Windows Phone, iOS and HTML5. Giving Android developers access to a range of advanced cloud-based services for storage authentication and notifications.

We also contributed the Android SDK for the Windows Azure Notifications Hub which lets you broadcast push notifications to millions of devices across platforms from almost any backend hosted in Windows Azure. Last but not least, MS Open Tech created a Backbone adapter for Windows Azure Mobile Data Service, letting you seamlessly sync your data with the cloud using your usual favorite Backbone APIs.

What’s next?

All of these projects are ongoing, and we at MS Open Tech are always adding new ones to extend the list of technologies open source communities are bringing to Windows devices. Also, if your favorite open source framework doesn’t work on Windows Store apps or Windows Phone apps, let us know emailing us.

You will also find that Windows and Visual Studio offer plenty of tools and programs to help you libraries and frameworks support Windows. Jason Olson, Program Manager in the Windows team presented a great session at the last //build/ event about technologies like NuGet, Visual Studio Extensions, and programs such as http://services.windowsstore.com. Check out the webcast on channel 9.

You can find more detailed resources on developing apps for Windows devices as an open source developer visiting the MS Open Tech’s website. You will learn things such as how to get started with Windows apps development, how to develop for Windows 8 or Windows Phone 8 on a Mac or what were our contributions to these frameworks to make them work seamlessly on Windows devices.

Now go get your Cocos2D based game or other open source based app run on Windows 8 and/or Windows Phone 8, and let us know how it works!