These postings are provided "AS IS" with no warranties, and confers no rights. You assume all risk for your use.
Paul LabergeDeveloper Evangelist
Frédéric HarperDeveloper Evangelist
Everyone knows how competitive the mobile space is. There are a wide range of platforms available for you as a developer to adopt and build your mobile app masterpiece, each with their pros and cons. So Microsoft introduces a new mobile platform (Windows Phone 7 and now the upcoming Mango update) which basically is a reset of the Microsoft mobile strategy and therefore started from scratch. In the many conversations I’ve had with mobile developers about why they should care about Windows Phone now and in the future, the most common questions I would answer revolved around the fact that Windows Phone was essentially net-new and therefore at a disadvantage from its competitor platforms.
Those types of questions are certainly fair and I’m sure many of you reading this post are even asking yourself the same questions. Hopefully by the end of this post, you’ll have a better understanding of Microsoft’s mobile strategy, why we are taking a long term vision approach to our platform’s success, how you as a mobile developer can take advantage of the fact that Windows Phone is for all intents and purposes “new” again and finally provide you with some resources to help you porting your apps from other platforms onto the Windows Phone platform.
Microsoft’s Mobile Strategy
Believe it or not, Microsoft has been in the mobile game for around 10 years. We started off with the Windows CE operating system and grew it from there. It was primarily seen as a business platform (strengths being email and calendaring) and Microsoft continued to evolve the platform along those lines. As smartphones became more consumer focused in the past 4 years, the popularity of the Windows Mobile (the old branding for Microsoft’s smartphone platform) waned. This decline created an opportunity for Microsoft to virtually set a completely new course and build a whole new mobile experience that focused on user experience. The result is what you see today: Windows Phone 7.
One of the key decisions that was made around this clean slate approach was how we work with partners in the new Windows Phone world. It’s a little known fact that Microsoft makes very little money from customers in direct channels; virtually all of the revenue Microsoft makes is through our partners. Clearly our partners, from OEM manufacturers to mobile carriers to app/game developers, were going to be front and center in our strategy. We have also learned very valuable lessons from our previous mobile platforms, specifically around what works and what doesn’t. At a very high level, this is what the Windows Phone team decided about going to market with partners:
What about Nokia? Nokia is a very strategic partner with Microsoft. You’ve probably seen the media coverage and official press releases from Nokia and Microsoft stating that Nokia will be ceasing to install their Symbian OS on their smartphones going forward, instead adopting Microsoft’s Windows Phone OS for their smart devices from now on. This is a key relationship for both Microsoft and Nokia and is significant in a number of ways:
Making it easy for developers building apps on Windows Phone
As I had stated above, one of the main goals and a key factor to the success of Windows Phone is to make it as easy as possible to allow you as a developer to build apps and games for the platform and to monetize them. This means making the tools easily accessible (read: free) and getting up to speed quickly. It also means making it easy to publish your apps and games on our Marketplace yet making sure that quality is maintained on the apps. Finally, it means making sure that you have the tools and opportunity to both understand how your app is trending in popularity and making it fair so that the best apps get featured.
Making the tools easily accessible and getting up to speed quickly
This is simple. Literally, everything you need to start building apps is on our App Hub. This includes the tools download page, tutorials, partner resources, and community support.
If you register as a developer (roughly $99), you get more than just the ability to publish apps and games to the Marketplace. You also have the ability to publish XBOX Live Indie games on the XBOX Live Marketplace (a great opportunity to cross-pollinate your game if you’re so inclined). We also provide you with a large number of tools to help you analyze the performance of your apps and games in the marketplace. We also provide extra tooling for you for free to help protect your code assets from reverse engineering and the like as well.
Finally, even though the tooling is free and everything you need to build apps and games is included in that tooling, you may be interested in our paid tools as well (namely Visual Studio Professional and above, and Expression Studio Ultimate). These paid tools provide a great deal of extra value to you if you are interested in native source code control right out of Visual Studio, enhanced testing tools (including load testing and the like), SketchFlow (rapid wireframing and prototyping) and many other features that may make your job a whole lot easier.
Make it easy to publish apps and games
As long as you are a registered developer on the App Hub, you can publish Windows Phone apps and games. To make it as easy as possible to get you from an app/game idea to published in Marketplace, there’s more than just great tooling that you need to make it happen. First off, all of our certification guidelines are publicly available (all apps in the Windows Phone Marketplace are certified by Microsoft before they are published). If you follow those certification guidelines, you are golden. However, if you do fail certification for whatever reason, we provide you with a detailed report outlining what failed and what certification guideline was violated in the process. The report will also give you a failure consistency statistic (for example “Failed 8/10 times” or “Failed 10/10 times”) so you know how reproducible the error is. (By the way, in case you’re wondering, app and game testing goes through both automated/machine testing and human testing.)
Determining how successful your masterpiece is in the Marketplace
Once you’re published (congrats!), you’ll be able to keep tabs on how well your app/game is performing in the Marketplace. We provide reporting analytics for you to determine downloads, usage statistics and even app failure reports among other things. That way you can take action based on the information and make informed decisions on how to promote your app next.
Speaking of promotion, we try to be as fair as possible with the featured spots on our Marketplace. If you have an app or game that is great and popular, we do give consideration to your app/game in one of the featured spots. While nothing is guaranteed, I know this is a question that gets asked a lot and the answer is if you build something awesome that lots of users like (by downloading and actually using the app), there is a better chance of getting some Marketplace recognition for your work.
But I don’t build apps for Windows Phone today – in fact I have apps on competitor’s platforms. How do I start?
I’m glad you asked. We recognize that our competitors make great mobile platforms that allow developers to make awesome apps and games. We also believe that your apps and games on those platforms would look even more awesome on our Windows Phone platform! To that end we published some content and guidance on how you can port your masterpieces from iOS and Android onto our platform – again, all for free! While there is no one single bullet (or tool in this case) that will automatically translate iOS and Android code to .NET code for Windows Phone, the resources below provide some great guidance on how to get from A to Windows Phone more quickly.
Calling all iOS Developers!
If you build apps for the iPhone/iPod, we have some great information for you on how to port your app to Windows Phone. Below is a list of these resources:
Calling all Android Developers!
If you build apps for Android, we also have some great information for you on how to port your app to Windows Phone. Below is a list of these resources:
There you have it. Windows Phone represents another channel for you to increase your app’s or game’s popularity across multiple platforms. You don’t need to abandon one platform in order to adopt another – this has been proven time and time again in technology. Clearly, co-existence can be a winner. So if you’re thinking of trying out Windows Phone as your next platform to adopt, hopefully the resources in this post can get you more than started.
Finally, if you are porting your app from another platform onto Windows Phone, let me know – give me a shout on Twitter!
If you find you aren’t busy on Tuesday, August 23 and Wednesday, August 24, you may be interested in attending free an online training event that will bring you to speed on how to build Mango apps. If you’re new to building apps on the Windows Phone 7 platform or a veteran looking to understand the new and exciting features of Mango you can add to your app, this training event will be worth your while.
The event, Building Applications for Windows Phone Mango Jump Start, is literally a premier deep dive training event that is yours for the taking. It’s being run by two of the most renowned Windows Phone 7 developers in the world, Rob Miles and Andy Wigley. You may know them from the previous course they ran, the 19-Part Windows Phone 7 Jumpstart Training course which is available here on-demand for free. This new course, however, is more than just a rehash and update of the content found in that first jumpstart. This event will provide you with net-new material that will teach you how to build start of the art Windows Phone applications and games using the new features found in Windows Phone 7 Codename Mango. Sounds interesting? Well, here are the details:
Day One — August 23, 2011 | 8am-4pm PDT | Live online training
Day Two — August 24, 2011 | 8am-4pm PDT | Live online training
Despite this new training being free, you do need to register to attend, so be aware and register here. Also, if you aren’t able to attend the live broadcast, don’t worry because it will be recorded and available on-demand after the fact. I will create a follow up post when the on-demand content is available.
So why should I attend this online training (or watch the event on-demand)?
Well, one of the things that I and my colleagues have heard over and over again is that Windows Phone is the easiest platform to build for. I can attest from my conversations with the Windows Phone product teams and engineers that that this is not by accident – making the easiest platform to build amazing mobile experience on was a significant goal for the team. What this means is that you can get up to speed really quickly on building awesome apps and games on the Windows Phone platform and training courses like this one will allow you to leverage the unique features of the platform that you may not have even known existed and implement them in your app or game very quickly.
Enjoy the training!
Being a mobile developer over the past 4 years has been an interesting experience. With the advent of modern smartphones with differentiate experiences, we found out that not only is there a viable market for great apps, but that market is booming and very competitive. We have seen mobile apps that have literally changed the way we interact, live our lives and found ways to fill the lulls in our day with experiences that are both fun and addictive. And along the way, we all seemed to figure out that finding a center of gravity for all the apps within a mobile platform was an effective way to make an app popular by consumers and monetize the efforts of the developer as a result.
During that time, the web has evolved a great deal as well. The debates over which plug-ins were best were fought and then along came HTML5 (or rather the promise of HTML5) that many believe will fundamentally change the way we see the web and how we interact with content on the internet. Even though HTML5 is in its infancy (it’s not even a ratified set of standards from the W3C yet and likely won’t be for a while yet!), already we are seeing some very interesting examples of what HTML5 can bring. Frankly, this is game changing stuff.
As HTML5 standardization marches on, becoming more popular for web developers/designers and as more and more people start building native mobile apps, it seems that a line in the sand is forming between the pro-HTML5 and pro-App groups. There is a polarity that is appearing between the two and we are starting to see a sentiment that the two camps are becoming mutually exclusive (adopt one or the other, but not both).
There is a decent argument being made by both camps. HTML5 enthusiasts are advocating that mobile experiences should turn into HTML5 websites that can be made to look and feel exactly like mobile apps native to the smartphone platform in question. They also advocate it as a way to centralize administration and maintenance of the experience (change once on the server and the new experience is delivered to anyone and everyone without the need to download an update). The fact that HTML5 is being created as a set of standards is very compelling as it allows developers and designers the ability to design their web-based experience without having to deal with the vagaries found in each browser. Given that most modern mobile platforms have a good HTML5 story around their browsers (either today or in future direction of their browsers), it’s a strong argument. The other side of the coin is that the set of standards that are commonly referred to as HTML5 won’t be ratified until 2014 at the earliest. There is also no guarantee that each of the major browsers will interpret the standard the same way which could negate the benefits of the “write once, display on any browser” vision of HTML5.
The pro-native app enthusiasts, on the other hand are make a great point in that the development platforms for their apps are rich, well-documented, support rapid dev cycles and a centralized store where smartphone users can easily find, install and socialize the apps they like. Apps that are native to the platform can take full advantage of the features that the platform vendor has exposed, leading to incredible innovation. Finally, apps found in a marketplace have the advantage of marketing support that comes out of the box. Data shows that being featured in a marketplace creates a huge spike in downloads and revenue that has the opportunity to be sustained over long periods of time. The negatives for native apps include the need to share revenue with the marketplace the app resides in as well as the app being subject to the terms and conditions of that marketplace with the risk of being pulled with only short notice.
So who is right? Well, you could say both are. They both have valid arguments and the positives for each are tangible while the negatives are equally relevant. I would also say that combining the two (a native smartphone app leveraging HTML5) is equally right and should receive more consideration than it currently is getting.
To make my case, let’s consider the Windows Phone 7 Codename Mango platform (I use Mango instead of the original WP7 platform as Mango introduces IE9, an HTML5-ready browser, while the original WP7 platform used a browser that was a hybrid of IE7 and IE8 which are not HTML5-ready). For example, using the Qantas demo that was seen in Joe Belfiore’s keynote at MIX11, re-imagine the implementation of the app Qantas built as a native Mango app that utilizes a browser control within the app to deliver a rich, web-hosted experience via an HTML5 canvas.
The power of HTML5 allows you to create a truly immersive experience that is hosted purely within the browser. If you are a registered WP7 developer on the App Hub and you have downloaded the Mango beta build you can check out its capabilities for HTML5 on a WP7 device (or you could just bring up the emulator that came with the Mango beta dev tools). With Mango, you can leverage the power of IE9 and HTML5 to create amazing apps that can be skinned to fit the look and feel of the Mango platform (i.e.: the metro design language). You can then use this same experience, if you wanted to, on normal desktop browsers or even in other mobile browsers.
Likewise, if you hosted that web experience within a browser control, you could still leverage the amazing features of the Mango platform to create a truly immersive experience that you simply couldn’t by only using an HTML5 app in the mobile browser. By using a native app to host the browser control, you could still leverage new features in Mango such as Agents and Alerts, double-sided tiles, fast app switch and even deep app linking.
Even if you were looking to avoid revenue sharing for your paid app within the Marketplace (paid apps are split as a 70/30 with you retaining the 70% portion), you could make your app free in the Marketplace and implement your own in-app purchase mechanism within the HTML5 part of your app (assuming, of course, your app isn’t a Mango game, as the Marketplace certification guidelines prohibit any in-app purchase within WP7 games as of the publish date of this post).
So I’ve made my case for hybrid native/HTML5 apps. I suspect some of you may have different ideas around this, so please let me know what you think!
This post was originally created by Atley Hunter here and is re-posted with his permission.
More on Atley: Atley Hunter has been a developer for more than 15 years and a mobile developer since way before it was cool. With over 30 apps under his belt and numerous talks, blog postings and HackFests, Atley is continually working to expand his development knowledge and share it to anyone who wants to know. Active on LinkedIn (http://www.linkedin.com/in/AtleyHunter), Twitter (http://twitter.com/AtleyHunter) and on his blog (www.atleyhunter.com), Atley is never far from reach and always happy to help.
Microsoft has provided a great site for testing the mobile browser. You can find it at http://ie.microsoft.com/testdrive/mobile/. I ran the same link on a Samsung Focus with Windows Phone 7.1 (Mango) on it, a BlackBerry Bold with the latest OS and an iPhone 4.3.3 just to see for myself. I didn’t have an Android phone for these tests, although if someone wants to provide a device, I would be happy to do the tests and include it in the compare. I had all three phones connected to the same Wi-Fi connection so I knew that they all had the same speed connection so that should not be an issue.
I tried all of the performance demos on the site on all of the phones and without exception the only phone that could actually run all of the tests was the Windows Phone with IE 9 on it. In most cases there were screen size issues with the BlackBerry and there were definite compatibility issues with the iPhone that kept it from functioning properly (buttons would not press, screens would not load at all, etc.).
Out of all the tests I could try, the only one that gave me definite results was the Speed Reading Test and even that could only use the first scree because the i could not click the button on the iPhone.
On the main page, there is a link called Speed Reading, clicking on that page brings up a grid of squares that start to change into letters like a old digital clock to eventually spell out the phrase “Can Your Browser Speed Read”. This takes no time at all on Windows Phone (8.25 seconds), but takes a little longer on the Blackberry (51.03 seconds). My real surprise was that the iPhone came in dead last at over 2 minutes. This is all well and good, considering that this is a Microsoft site, one could argue that it was optimized to use the features of their browser, but I also tried all of the other Phone OS’s sites as well with pretty much the same results.
So, what I am left with is that, from my own experience, IE 9 on Windows Phone gives me the best viewing experience that I have ever had on a mobile device to date.
Last week, we announced that Windows Phone 7 Codenamed “Mango” RTM’ed (RTM = Release to Manufacturing). This is great news for a number of reasons because Mango represents a very enticing update to Windows Phone 7 that in essence puts it at least on par with our competitors from a phone capability and experience perspective and even exceeds our competitors in a number of areas.
Some of you may have put Mango on your phone already (if you weren’t aware you could do this, check this link out as it provides some details around this process – just be aware that you need to be registered as a developer on the App Hub before you get an invite to the Beta program).
Below is a refresher of some of the great end user features that Mango introduces to Windows Phone 7:
There’s a whole lot more that users will love and that you as a developer can leverage, but you get the idea.
So what exactly does the Mango RTM mean?
Basically, the build for Mango has gone gold and has been sent to OEM manufacturers to test and prepare their phones with the build for general availability to the consumer. We have also sent this build to our carrier partners around the world so they can certify the build and prepare their infrastructure for Mango so that their Windows Phone 7 customers can download the update when the carrier is ready. We are working very hard with both our OEM and carrier partners to make sure that Mango is available to consumers quickly and so far everything is very much on schedule so I’m pretty confident that anyone that wants Mango on their phone will be able to get it in a very reasonable timeframe.
For those of you wondering when Mango will officially launch, there is no one answer as we will be launching Mango via the carriers and each carrier will have its own timeline (and before you ask, I don’t have any info as to when that will be for Rogers, Telus and Bell ). The general target we are all looking at globally, however, is later in the 2011 calendar year.
By the way, any phone that has Windows Phone 7 on it today will be upgradeable to the Mango update. And the update is free.
As a developer what can I do?
If you have apps in our Marketplace today, you may want to take advantage of the new features that Mango introduces to make your apps more attractive to your users. Mango will be delivered to phones around the world soon, so if you want to take advantage of the new Mango features in your app by the time Mango is available to the average consumer, implementing some new functionality in your apps today would be a good idea.
If you don’t have an app/game in the Marketplace today or you intend to build another app that takes advantage of Mango in time for launch, then I would suggest start coding your app/game soon!
If you are completely new to Windows Phone 7 and want to start from scratch, there are some Windows Phone 7 Developer tutorials listed in a post by my Microsoft colleague in Lebanon that teaches you how to build apps and games on the non-Mango platform. Please note that these tutorials are still relevant in the Mango world (they just don’t take advantage of the features new to Mango) and are a great place to start!
If you’re a seasoned veteran in creating Windows Phone 7 apps, then the you may want to take a look at the amazing list of resources that Larry Lieberman, a Senior Product Manager on the Windows Phone teamdocumented to get you started on Mango. You can check out his post but I’ve also reproduced it here in case you don’t want to leave this site:
Finally, if you’re building a Mango app or game right now – I’d love to talk to you! Give me a shout via the comments area of this post, use our contact page, or send me a note on Twitter!