iOS development news and information for the community, by the community

Everything iOS Developers need to know about Windows Phone 7

Unveiled February 15 2010 at the Mobile World Congress in Barcelona, Windows Phone 7 is Microsoft’s flagship mobile operating system built for devices that meet specific hardware requirements, like the capability of a multitouch screen, existence of a built-in accelerometer and even the presence of an FM radio. Microsoft currently holds 5% market share of the global smartphone market, according to Gartner. It should be noted that Windows Phone 7 is a total revamp of Windows Mobile, the two do not go hand in hand (think of it as iOS 3 in comparison to iOS 4 on Apple’s platform). Microsoft announced that users of Windows Mobile 6 will not be able to upgrade to Windows Phone 7. The former will be rebranded to Windows Phone Classic to eliminate the ‘Windows Mobile’ line entirely.

The Platform & Programming Environment
Unlike Apple’s iOS software for iPad, iPhone and iPod Touch, Windows Phone 7 (WP7) is based on two frameworks. The first is Silverlight, Microsoft’s official application development platform. Silverlight “gives developers the ability to leverage the built-in UI controls on the phone. Those controls can be used right out of the box, and will match the look and feel of Windows Phone elements, with no customization on your part” (Microsoft). In essence, Silverlight is the framework of choice for development of applications that use a keyboard, display web pages through Internet Explorer, want to play video or even just have the general feel of WP7. You can think of this as similar to UIKit for iOS, the framework Apple provides, offering users an entire library of inputs and controls for iPhone applications.

In contrast, XNA Game Studio is targeted to those who are more familiar with Update/Render loop for game development. All games update their surroundings – otherwise a game would appear to be an image – and thus have to render those new surroundings. This is where XNA Game Studio comes in, built specifically for gaming. A proper 3D game requires XNA Game Studio, because Silverlight can only “simulate 3D by rendering to 2D sprites ahead of time, and prebaking animations” (Microsoft). The XNA framework, although more advanced, is suited to proper games. XNA uses Visual Studio, an Integrated Development Environment that is the equivalent of Apple’s Xcode.

While iOS is programmed almost solely on variants of the C language, usually Objective-C (through Apple’s developer application Xcode), Windows Phone 7 games that use XNA Game Studio can be written in any .NET-compliant language, though C# remains common. C# is only the available language if coding through XNA Game Studio Express, a basic package for quicker development.

The Developer Network
There are two networks that WP7 developers should be familiar with: MSDN (Microsoft Developer Network) and, more specifically, App Hub. App Hub is a branch of MSDN built specifically for developers building applications for Windows Phone and Xbox 360, where relevant educational materials, Q&As and news are uploaded frequently for users to make use of in their development. You’ll have access to all the resources you need to get started, such as the WP7 Start Guide and Developer Training Kit, that show you how to get started developing. Along with sample tutorial videos for developing both XNA Game Studio and Silverlight applications, Microsoft have created a library that provides links to all the information you’ll need, and recommend reading the Windows Phone Developer Blog for information regarding app building.

Microsoft’s App Hub membership costs $99 per year for developers and is required for app publication. Once applications are approved, Microsoft will automatically place them on the Windows Marketplace for Mobile (more on this in the next section).

App Publication
All approved applications are published on the Windows Marketplace for Mobile store, where end users can purchase apps then and there. Developers receive 70% of the price of the app per sale, and are paid via bank transfer if the total exceeds $200. Payment is made at the end of the month, and if revenue does not exceed $200 then it will be carried over to the next month until that threshold is met.

The aforementioned Application Certification Requirements document includes the relevant “policies for applications offered for distribution” (Microsoft), in other words what’s allowed and what’s not. Sections 2.0 and 3.0 are essential reading for those thinking about developing applications on the Microsoft platform. You can download this document directly below, under the Essential Links heading. There are some points that directly contrast with Apple’s App Store guidelines:

Microsoft Application Policies 2.6 – “If your application includes a trial version, the trial version must reasonably represent the functionality and quality of the full application.” iOS developers are all too aware of Apple’s automatic denial of trial-based applications (section 2.9, App Store guidelines). For those developing applications for WP7, beware of what you don’t include in a trial version of your application in comparison to the full version, otherwise it may not be approved, even though trial versions are allowed.

Microsoft Application Policies 2.9 – “If your application enables chat, instant messaging, or other person-to-person communication and allows the user to setup or create his or her account or ID from the mobile device, the application must include a mechanism to verify that the user creating the account or ID is at least 13 years old.” This is also in contrast with Apple’s App Store guidelines, where section 17.1 reads “apps that require users to share personal information, such as email address and date of birth, in order to function will be rejected.”

Microsoft Application Policies 2.10.7 – “Your application must make a privacy policy available to users that informs them about how location data from the Location Service API is used and disclosed and the controls that users have over the use and sharing of location data.” Apple do not require a privacy policy.

On a final note, I mentioned earlier that Microsoft’s App Hub – the place where you’ll want to be for development guidelines – also houses Xbox 360 guides. The 360 and WP7 use the same framework, and Microsoft announced that WP7 gaming will be merged with Xbox gaming through Xbox Live. With regards to Xbox Live, the approval process is not entirely clear. GameSpy report that for arcade games, submission is completed through a single email. Games should be “pick up and play” and easy to use, and ideally under 50MB. Like regular games, arcade games are tested both technically and functionally, but I’ve yet to find an official guideline approval process like Microsoft released for Windows Phone 7.

Essential Links
Download Microsoft XNA Game Studio 4.0
Download Silverlight for Windows Phone
Windows Phone 7 Application Certification Requirements (direct download, 522kb)
WP7 Sample Code
App Hub: How It Works
App Submission Walkthrough

Recommended Reading
Inside Windows Phone
WP7 Jump Start Guide
Silverlight or XNA Game Studio?
Finding and Buying Apps in the Marketplace

Tagged as: , , ,

Kyle Flanigan
Forex trader, student of Finance at Queen's University and application reviewer. Enjoys karting and starbucks'ing.
Connect with Kyle Flanigan // email // www // twitter

  • Guillermo | Social apps

    Excellent post. It is nice to know how Microsoft operates compared to Apple. My only one observation is that Trial applications are now allowed in the App Store.
    We have created an application that includes a 30 days trial and it was approved. It will be published as soon as iOS 4.2 goes public. The way it works is simple. You register and have full access, if you want to continue with full access, you must buy it within the app. After 30 days the application continue working in a “light” format. The only restriction is that the trial period cannot be less than 30 days.

  • Ala

    Thanks for this article. It helped me understand WP7 development process.