Much has been said recently about the state of Microsoft's Windows Phone 7 re the lack of quality apps. In my mind, there are some pretty big reasons why these quality apps don't exist:
1) The Silverlight framework, used to build all current third-party WP7 apps, is incredibly slow. Because it's running in an environment far from the native code layer, you just can't pull off the same kind of experience you can on an iOS device. I regularly have performance issues in animation and layout code on WP7 that I haven't seen since the original iPhone, but you needn't take my word for it; check any number of apps on the store (Twitter apps, for example) and you will find that scrolling performance is ghastly, or that cells vanish as you scroll (reminiscent of webOS). There is a way to fix this - native code. All rumors point to Microsoft offering native code access to external developers at some point in the future, which should be a massive performance win. Perhaps WinRT is it, and WP8 apps will be code compatible with Windows 8, too. Of course, unless they have a powerful enough native framework to make great UI apps (like UIKit and co are on iOS), it won't make a difference. As an example, compare and contrast Path on iOS vs Path on Android. Good effort, but the Android version is a hollow shell of the iOS app, and that isn't by choice. On WP7, right now all you're going to get are hollow shells of iOS apps - that's all that's possible with Silverlight.
2) This may be a contentious point, but all the good developers and designers are on Mac OS X. This is why the Mac (at least on OS X) has always had the better apps of the two main OSes. This has always been the case, and remains one of the key differentiators on OS X.
These are also the developers and designers making top iOS apps; they likely will not even have a Windows license, a Windows machine, or any access to Visual Studio to develop and test a WP7 app. In short, asking them to use Windows to develop apps is abhorrent to many of them.
These are the people you need to create the great apps. This is also why there are no great apps on Android, either; they don't like Android or its design enough to invest effort in it (some notable exceptions, like DoubleTwist - whose head of design has worked for Apple, and Instagram). The almost universal response from these designers and developers, tho, is that they really like WP7. If I were Microsoft, I would really be paying attention to this: you're not going to get these people by offering money, you're going to get them by making it super easy for them to build apps. If that means you have to build or buy an IDE for OS X, then so be it. Having to reboot out of our native environment into Windows is enough of a deterrent; remember, these people don't need you, you need them. They won't flock to WP7 work to pay their bills, they'll flock to iOS.
These users are key; if you don't convince them to make apps, and provide a framework capable of making the apps they come up with, then your platform will never be good enough. It says a lot that the entire WP7 design team at Microsoft were iPhone users back when I first met them at MIX 2010. Don't squander that opportunity.
I have doubt about an WP7 SDK for a non-Windows Platform. Even if Silverlight is not native code, it is tightly tied to Windows.
ReplyDeleteA non-Windows SDK would take some time to mature. Almost the same for a non-OSX iOS SDK.
And I'm still not sure that the scrolling problem is the lack of native code. The builtin WP7 apps are real smooth, and I think they are made on Silverlight.
I still have to work with lists as large and rich as the one on twitter apps, but by now couldn't reproduce that slowness.