X
Business

Microsoft builds a Windows Phone 7 developer platform, but will the coders come?

I've been asking a few of the folks I follow on Twitter, whom I know have been working in the mobile development space, for their thoughts on developing for Windows Phone 7. Here are my questions and their answers.
Written by Mary Jo Foley, Senior Contributing Editor

In the PC world, vendors used to say that the hardware and operating system were far less important than the number and variety of applications available for a given platform. (With Web apps' popularity growing, that adage probably is less true than it used to be.) In the mobile phone world, however, applications still matter. A lot.

The Windows Phone 7 team is fully aware of this and has been spending plenty of time and money, especially since March 2010, to target developers of all stripes. The company has lots of irons in the fire: Contests, roadshows, code camps -- supposedly even coughing up cash to get iPhone and Android developers to create versions of their applications for Windows Phone 7.

For some (possibly many) phone developers, the decision as to whether to create apps for a particular platform is first and foremost about money. If they think they have an idea that will make them overnight (or at least, over a few years) millionaires , why not? Part of that financial calculation also revolves around the kinds of tools available to them as developers and how steep a learning curve they are anticipating, since development time and energy has to be figured into their equations.

I've been asking a few of the folks I follow on Twitter, whom I know have been working in the mobile development space, for their thoughts on developing for Windows Phone 7.  Just to be clear, these aren't developers Microsoft hand-picked for me to contact. I asked them a common set of questions via e-mail regarding their take on Microsoft's platform; what they'd like to see Microsoft do differently; and what they think of Microsoft's development tools.

I figured I couldn't choose a better (or worse?) day to share their answer than iPhone 4 delivery day, which was marked by hordes --reminiscent of the Windows 95 midnight madness lines -- queuing for hours to get Apple's latest smartphone. Here's what my sampling had to say: Kelly Sommers Software Developer Blog: http://kellabyte.com/

Q: Are you developing anything for Win Phone 7 right now? A: No. Q:If you aren't, why aren't you? A: I work mostly on mobile business solutions. This segment takes a bit longer than the consumer segment to adopt a new device platform. I usually get more involved once a new platform starts to gain more momentum and demand to support it rises. New mobile platforms are popping up quickly these days so it is difficult to jump on every one early on. I try to keep a keen eye out on all the new platforms though. Mobility is fast paced, if you stop paying attention for 6 months, you will lose track of where things are going.

Q: Have you developed any apps for iPhone, Android and/or other platforms? A: I have done mobile development on iPhone as well as BlackBerry and Windows Mobile.

Q: Microsoft is claiming there's a low learning curve for WP7 because devs can use "tools they already know." Is this true in your case? If not, how steep a learning curve have you encountered with C#/Silverlight/XNA?

A: I agree the learning curve is relatively low. Each developer will vary depending on their .NET experience. I am not a Silverlight expert however I've been a .NET developer for several years, which means I have many transferable skills as far as the IDE (Visual Studio), the language (C#) and the .NET framework API's. Someone who is a Silverlight developer should feel right at home since their learning curve will be geared towards the differences in Silverlight on the desktop versus mobile where others may be learning Silverlight for the first time.

Many developers jumping into other mobile platforms have a much steeper learning curve. I believe Microsoft makes some of the best development tools available and leverages them for multiple purposes and platforms well.

Q: Do you think Microsoft is going to have trouble attracting devs who have written apps in Objective-C/Xcode/Java to WP7? A: A large majority of iPhone developers were not previously Objective-C developers. They adapted because that is what they had to do to be on the platform if they wanted access to selling to the user base. The learning curve was steep as everything from the IDE (Xcode) the language (Objective-C) was entirely new for these people.

The .NET developer ecosystem is a large one. I'm not sure if trying to attract all the Objective-C or Java developers will make or break the platform. There are plenty of .NET developers to go around. I think there are enough developers to support several mobile platforms, it doesn't have to be the same ones covering them all.Users will expect to see the big ticket apps available though such as TomTom, Facebook and the larger games which are on other platforms. A compelling platform at the end of the day is most important. As users come in mass, the developers aren't far behind.

Q: Is there anything MS could/should do to (in your opinion) to make it more attractive for non-MS-accustomed devs to doapps for WP7?

A: If Visual Studio and Expression Blend were portable to Mac and Linux they would open the door to more  developers writing  Windows Phone 7 applications but this is no small feat considering Visual Studio is now based on WPF (Windows Presentation Foundation). Blend is also a WPF application. They would have to port WPF to other platforms. They could alternatively offer Eclipse tools like they do for Silverlight but this wouldn't have nearly as much success as having proper first rate tools.

Today, Apple's iPhone SDK is Mac only, Google's Android SDK and HP's (formerly Palm) webOS tools are portable, Microsoft can probably get away with running on Microsoft only operating systems but the purist in me would love to see these tools available to all developers.

Q: What do you consider to be Microsoft's biggest hurdle to overcome -- on the dev side -- to making WP7 successful?

A: My main concern software wise come from watching the MIX10 developer sessions from March. The performance of Silverlight on the phones they were showcasing still had a long way to go to catch up in graphical and input responsiveness compared to competitors. Although to be fair, what we saw was early devices and early  software, this could be ironed out by launch date. I hope it is. The Silverlight engine seems a little too fickle  about what is GPU accelerated and what is not. Unlike on the iPhone you need to keep this in mind and remember how to keep as much as possible on the GPU. Hopefully Silverlight makes this transparent to the developer in the very near future so that fewer developers shoot themselves in the foot.

Windows Phone 7 looks as though it will have great hardware to power it. Snapdragon and the other hardware which reach the minimum requirements are very strong but that won't mean anything if Silverlight's input and rendering performance makes it feel like a device half its speed.

I have some concerns with the (Windows Phone) marketplace as well.

The first iteration of the marketplace had all kinds of rules which competitors stores did not, and as developers have complained, they have backed off some of the rules several times now. I think Microsoft needs to keep focus that apps help make the platform compelling. The OS itself won't do this alone. While competitors may have approval process issues, their not restricted in how many paid or free apps they can submit, nor are they restricted in how many updates they can submit. Microsoft has backed off on most of this but they upset several developers in the process. Don't let silly store rules hold the evolution back.

Sasha Kotlyar Senior software engineer at Auri Group Twitter: @Arktronic

Q: Are you developing anything for Win Phone 7 right now?

A: Yes, I am developing two WP7 applications at the moment. One, more as a proof of concept than anything else, is ArkWords, a simple dictionary/thesaurus/translator app.

The other app I don't want to reveal too much info about, but suffice to say, it'll be connected to the "cloud" (I still somewhat dislike that term) and have its data accessible from the phone as well as any browser with Silverlight.

Q: Have you developed any apps for iPhone, Android and/or other platforms?

A: I've not developed anything for iPhone. I played around with the Android SDK, but never made any serious applications. I have, however, developed apps for Windows Mobile 5/6.x.

Q: Microsoft is claiming there's a low learning curve for WP7 because devs can use "tools they already know." Is this true in your case? If not, how steep a learning curve have you encountered with C#/Silverlight/XNA?

A: It is mostly true, however, what they don't mention is that, if you're used to developing regular Windows or old Windows Mobile applications, as I am, there is a significant difference between that and Silverlight/WPF. In most cases, a developer can get away with knowing only the basics of Silverlight, but to create well-written and maintainable apps, the developer needs to invest a not-insignificant amount of time in learning proper patterns (e.g. MVVM) that apply to Silverlight and WPF development. In my case, I decided to forgo using appropriate patterns with ArkWords, but I will develop my other app more "properly".

Q: Do you think Microsoft is going to have trouble attracting devs who have written apps in Objective-C/Xcode/Java to WP7?

A: Personally, I've avoided Objective-C because of its general unpleasantness of form and function, so from my perspective, C# in VS2010 is *tons* better than Obj-C in Xcode. Android development is more pleasant, but in my opinion, still lacks the tools and polish provided by Microsoft. For example, they still don't have a mature drag-and-drop GUI designer.

Attracting developers will, obviously, depend on why those developers chose their platform. If they chose it because they're die-hard Apple fans or open-source fans, then they won't be too willing to switch to a Microsoft product. If they are looking to make money (or a name for themselves), then MS has a good chance of getting their business, because potential WP7 device users on the Internet appear to be rather excited about the OS. If the developers care at all about their development environment, which they should in my opinion, then Microsoft has a lot to offer them.

Q: Is there anything Microsoft could/should do to (in your opinion) to make it more attractive for non-MS-accustomed devs to do apps for WP7?

A: An official, central place for all kinds of documentation and tutorials would help a lot. There are threads on the WP7 MSDN forums that try to aggregate some links to useful resources. There's a Reddit page. There is, of course, the official MSDN documentation site. There are plenty of individual blogs that address specific WP7 development issues. But there is no good, official place to see all of these aggregated in a clear  and structured manner.

Q: What do you consider to be Microsoft's biggest hurdle to overcome -- on the dev side -- to making WP7 successful? A: I don't really see a single giant hurdle. It's a bunch of smaller issues (no copy/paste, no launching of other 3rd party apps, no socket support, no native code, no 3rd party background services, etc.) that compound to form a, shall we say, less than ideal development experience. MS is promising that many, if not all, such issues will be eventually resolved, but until that happens, they are still issues. Todd Spatafore Principal with Spatacoli (his own development company) Blog: http://www.spatacoli.com

Q: Are you developing anything for Win Phone 7 right now? A: I’m currently working on a suite of tools to help digital agencies showcase work in progress to clients. This includes a Windows Phone 7 client very similar to Headquarters for the iPhone as it connects to Basecamp.

Q: Have you developed any apps for iPhone, Android and/or other platforms? A: In my professional work, I’ve built a few iPhone applications and we’ve investigated building Android applications.

Q: Microsoft is claiming there's a low learning curve for WP7 because devs can use "tools they already know." Is this true in your case? If not, how steep a learning curve have you encountered with C#/Silverlight/XNA? A: In my case this is very true. I’ve been a .NET developer since PDC 2000 when they gave us the first alpha bits. I’ve also been an avid WPF developer since Avalon, and Silverlight developer since it was called WPF/E. There was almost no learning curve to start with WP7.

Q: Do you think Microsoft is going to have trouble attracting devs who have written apps in Objective-C/Xcode/Java to WP7? A: I think that developers that have done Java/.NET in the past will be move over without too much convincing. After all, why have one app in one app-store when you can have two and potentially double your income. Objective-C developers that only know Objective-C/Cocoa apps will take convincing. They are on a platform that is proven to make money.

Q: Is there anything Microsoft could/should do to (in your opinion) to make it more attractive for non-MS-accustomed devs to do apps for WP7?

A: I’ve heard rumors that they are paying devs to port the popular apps to WP7. Also, I’m sure those developers that have popular apps in the iTunes store will get preference on getting real phones to test apps. That in itself is incentive enough. Not sure what more they will do, but I’m sure they’ll come up with something.

Q: What do you consider to be MS' biggest hurdle to overcome -- on the dev side -- to making WP7 successful? A: The biggest hurdle will be to convince developers to build another app. Why build an app for a phone system that has less than 1% market share when they can make an app for a phone with 50% market share?

Any other mobile devs or wannabe devs have more points to add here?

Editorial standards