The Best Reasons to Target Windows 8

As a mobile application developer, you’re probably accustomed to discussions about which platforms you should support. Whether you're discussing which versions of the Android SDK to support or whether to support iOS, these discussions take place every day among mobile developers. With the introduction of Windows 8, there is now another mobile platform to consider. Since writing apps for multiple platforms is not an insignificant effort, you must weigh the cost with the benefits for each platform.

Windows 8, with its new Windows Store, is the new player to the mobile game, but with a twist: Windows is the most popular operating system in the world. Windows 8 is not a brand new operating system from some new startup. The various versions of the Windows OS have been used by hundreds of millions of people around the world.

Like many other Android developers, you may not be sure what to make of Windows 8 and how it should fit in your plans. In this article I will discuss some of the best reasons why you should seriously consider bringing your mobile development expertise to bear on the Windows 8 platform.

The Numbers

Let's face it: the numbers matter. As an Android developer, you know this. Google's CEO, Larry Page, mentioned recently that more than 750 million Android devices have been activated globally. That doesn't, of course, necessarily equate to 750 million active users, which is an extremely large user base. In fact, that may be the reason you develop for Android in the first place.

While Windows 8 is nowhere near those numbers yet, Microsoft recently announced that it has sold more than 100 million licenses for Windows 8 in its first six months, which is on par with its older sibling, Windows 7. Since Windows 8 has only been on the market for six months and is on par with Windows 7 in terms of license sales, it makes sense to use Windows 7's sales numbers for comparison. Microsoft has said that they have sold more than 600 million licenses for Windows 7 over its lifetime. Does that get your attention yet?

App Discoverability

A platform could have every person on the planet using it, but that wouldn't help you one bit if those people don't know about your app. Let’s talk about app discoverability. The primary app delivery mechanism for both Android and Windows 8 are their respective stores. Android has Google Play and Windows 8 has the Windows Store. As an app developer, the larger a store gets, the harder it is for you to differentiate your app or even just get your app noticed. If you started your Android adventure much earlier on in the existence of the Android Market (the precursor to Google Play), as I did, you are probably aware of the stark contrast between then and now in terms of your app's visibility. In the early days of Android, there weren't many apps in the store and it was much easier to get your app noticed and build up a respectable user base with minimal effort. These days, with the number of apps in Google Play rumored to be as high as 675,000 or more, the chances that users will just stumble across your app are much, much lower than they used to be. In fact, you most likely had to increase your marketing budget to gain or maintain a worthwhile level of success. Maybe you haven't even been able to gain a decent foothold yet in Google Play.

The Windows Store of today is much more like the Android Market of old. While the Windows Store boasts more than 60,000 apps, which is a much smaller field to contend with as an app developer. Your app can show up in the New Release section of your category and stay there long enough for people to start to find it. This is also an excellent opportunity for you to establish your app as a category leader. A solid app with a solid user experience tailored for a specific category can get noticed easier in a smaller field and may have an easier time pulling to the lead of a category. Apps that are leaders in their categories are easier for new users to find and tend to have more success overall.

Promotion: Microsoft has provided a number of resources to help Android developers port their applications. You can find out more as well as access these resources from their App Builder Portal.

Windows Store

A discussion about numbers wouldn’t be complete without talking about revenue. As an Android developer, you are undoubtedly aware that Google charges 30 percent for every paid app that is sold through Play. Well, the Windows Store does the same, at least for starters. The Windows Store takes it one step further, however. Once your app starts making some serious revenue — the magic number being $25,000 — the Windows Store fee drops to 20 percent. I can’t think of a single developer who wouldn’t appreciate a 10 percent reduction in fees to sell their apps.

Another key differentiator between Google Play and the Windows Store is that apps in the Windows Store have to pass through a rigorous approval process, while Google Play has no such process. While this process can prove to be frustrating at times, with many of the criteria being subjective, the end result is that the Windows Store can arguably weed out the lower quality apps that plague Google Play.

Development Environment

Until the latest Google I/O conference, Android developers have been expected to develop apps with Eclipse, which is an open source Integrated Development Environment (IDE). While Eclipse is an adequate IDE, it hasn’t changed a lot in its 10-plus year lifespan. For some, myself included, developing with Eclipse is a frustrating ordeal. In fact, when I do Android projects, I don’t even use Eclipse due to my frustration with it. I use IntelliJ IDEA because it is the closest thing I have found to Visual Studio for Android development. Apparently I’m not the only one who prefers IntelliJ IDEA because Google announced Android Studio at this year’s Google I/O conference, which is built on IntelliJ IDEA.

While IntelliJ IDEA does make Android development more enjoyable, it has nothing on Visual Studio 2012. Visual Studio is a development powerhouse that supports development for all kinds of .NET projects as well as Windows 8 and Windows Phone. It provides many project templates that you can use to create fully functional Windows 8 solutions right out of the box. The added bonus is that Visual Studio 2012 is free for Windows 8 development.

In addition to Visual Studio 2012 for development, Microsoft also provides a Windows 8 Simulator, which you can use for virtually testing and debugging your application. The simulator has mouse or touch modes and allows you to change rotation or screen resolution to see how your app will look on various different systems.

As you have probably learned during your time debugging Android apps, however, there is no substitute for a real, physical device. Visual Studio is a huge help in this area as well. Using Visual Studio, you can debug your app on your dev machine (it will have to run Windows 8, after all) or you can remote debug your app on another device via your wireless connection using the Remote Tools for Visual Studio. Connecting to that external device, then deploying and debugging your app is very easy and works surprisingly well.

Languages

When it comes to actually implementing your app, there are more language options for Windows 8 than are available for Android, thanks to a new concept called language projection. Language projection makes the Windows Runtime API available to several different languages, each in their own native tongue, so to speak. In fact, the Windows Runtime APIs are projected into four different languages: C#, C++, Visual Basic, and JavaScript.

The language option that is most similar to Android’s Java-based language with XML is C# with XAML. Where Android uses Java for logic and XML for presentation, Windows 8 uses C# for logic and XAML for presentation. Java and C# are definitely different languages with different APIs and frameworks available to them. However, they are similar in syntax, which helps smooth the transition a little for developers coming from one to the other. This syntax similarity also helps developers to alternate developing between platforms relatively easily.

Presentation for Android and Windows 8 are similar in concept as well. Android’s XML presentation defines element hierarchies that translate into object instance hierarchies. You can define layout and styling entirely in XML. While Windows 8’s XAML has much more power than XML, primarily with its data binding engine, its core concept is very similar to that of Android’s XML. You can define layout and styling entirely in XAML, much like XML. You can define element hierarchies which translate to object instance hierarchies as well.

Before we leave the topic of XAML for presentation, there’s also the option of Visual Basic with XAML for Windows 8. Realistically, this is the least likely option for Android developers because Visual Basic really looks nothing like Java.

Perhaps you’re more comfortable in the Web world with HTML5 and JavaScript. Windows 8 has you covered there too. JavaScript has access to the Windows Runtime APIs via the WinJS library. The bonus here is that you can use your favorite JavaScript libraries, such as jQuery or Knockout, to create native Windows 8 apps in a language that mobile web developers are more familiar with.

Sometimes taking the leap and learning a new language and platform is too much risk and hiring developers who are already suited for the task is more prudent. Fortunately, there are a lot of developers out there who can develop for Window 8 and may not even know it. The XAML used by Windows 8 is really just an evolution from previous incarnations that were available for Windows Presentation Foundation (WPF) and Silverlight, technologies that have been around for many years and have thriving developer communities. That means it should't be too hard to find qualified candidates to help you achieve your goal.

Conclusion

As a mobile developer, you are constantly faced with the challenge of getting your brand and your apps on as many devices as possible. Android is a great platform to do that with because of its massive user base that continues to grow. Windows 8 is the latest offering in a long line of (mostly) successful Windows operating system versions. With license sales projected to be many hundreds of millions, the Windows 8 user base is expected grow significantly in coming years. This is a real opportunity for developers such as yourself to expand their offering onto a new platform that has potential for huge growth. With the language similarities between Android and Windows 8, the move may not be as difficult as you would expect. This is your chance to get your brand in front of a rapidly growing user base at a time when your arrival to the platform can have the most bang for the buck.

The opportunity is there. The question is: Will you seize it?

About the Author

Brent Edwards is an Associate Principal Consultant for Magenic and a co-founder of the Twin Cities Windows 8 User Group. He is an accomplished software developer, architect, mentor, and speaker with over 9 years of experience developing innovative solutions with Microsoft technologies. Brent has worked on projects with ASP.NET MVC and jQuery, WPF, Silverlight, and Windows 8. In addition to working with Microsoft technologies, Brent is also an accomplished Android developer whose apps have more than two million downloads. Brent lives with his wife and four children in Minneapolis, MN. Check out his blog http://brentedwards.net and Twitter @brentledwards.

Disclosures: This article was written by an independent author for Developer.com. The article was sponsored by Microsoft Corporation. This site does business with Microsoft.