I'm thinking about trying my hand at a Windows Phone 7 app, and I'd like to put it up on the market place. I know I don't need a phone to create the app (I've toyed around with the emulator already), but would it be folly to release an app without having an actual unit to test it on? Or is the emulator sufficient?
No, it's not necessary to have a phone. In fact none have been released, so unless you were in the lucky group to get a developer phone from Microsoft, you have to develop without one. The emulator that ships with the tools is how most developers are creating and testing applications today.
Also, unless you've got a multi-touch monitor, you won't be able to do things like pinch gestures. In any case, you'll probably want to get a hold of an actual device to test out how your application "feels" on an actual device.
No, but you would be a mad to try to sell an app that you had not tested on a real phone!
So you can get started without a physical phone, but once you have proved you can create an useful app (and the phones are shipping) you should get yourself a physical phone.
I've worked with both the emulator and a developer device. The emulator does exactly what it should, which to simulate the phone so you can get started with application developement.
Here are some of the differences I've noticed.
If you are targeting hardware api's like the accelerometer you cannot get useful input from the emulator. There are some in the community addressing these problems. Check out AccelKit (http://accelkit.codeplex.com/)
Multi-touch is hard to test with the emulator. You need to have a multi-touch monitor to even come close to simulating the real device.
Performance testing is inaccurate on the emulator. In some cases the emulator is faster. This is due to the lack of throttling on the host computer. In other cases, the developer device is faster. Even if you are lucky to get a test device it may not reflect the real devices shipping later this year. While I can't tell you the specs of my loaner device I can tell you that because it is a 'pre-release' phone it does not meet the published minimum hardware spec.
Microsoft is hosting a number of 'test on the device' meetings over the next couple months. The local evangelists will have devices which you can experiment with. During these events you are allowed to install you applcations on the device and test it out.
I cannot see how anyone can realistically plan on releasing any non trivial application to the Marketplace without testing on hardware. It's not much longer before you can buy your own WP7 phone. In the meantime, use the emulator to get started writing.
Just to be clear in case you think I am dissing the emulator. The emulator is well suited for writing applications. I've been using it for months. It's invaluable for writing, testing and debugging your app. Just be sensible when considering what your application does and whether it needs to spend test time on the hardware.
Be sure and sign up for a developer account at [developer.windowphone.com][2]
and you will be notified when the Marketplace is open.
My development team did not have access to a physical phone, and we developed and submitted our app to the marketplace using the emulator only.
Our application passed the certification and got accepted in the marketplace, so the emulator is good enough to pass the certification and get your app in the marketplace.