Well my current cellphone is a new HTC smartphone with the Window Phone 7 OS! It’s the HTC Trophy and I have to say the OS and the device are just brilliant.
But to be honest, the fact that you can just code .Net apps for it, made it a winner in my books.
So let me introduce you in the Windows Phone 7 development area.
Here are some of my current findings with it.
The first thing to know is that when you are developing it will be in a WPF/Silverlight environment, so be sure to get the hang of XAML or even better, get your Expression Blend skills up to date.
Secondly, the best way to create good, manageable code, is by using the MVVM pattern. The fact that this pattern is not only restricted to the Windows Phone 7 environment makes it beneficial to learn it for other projects. MVVM is based on viewmodel property binding for your view data.
Now to get a good start with MVVM, you better use a framework that integrates well with the Windows Phone 7. My personal favourite is MVVM Light Toolkit from Laurent Bugnion!
Get the details here: http://www.galasoft.ch/mvvm/getstarted/ and here: http://mvvmlight.codeplex.com/.
The only drawback in my mind, is the fact that currently you are by default limited in possible api uses from the Phone itself. In other words, some of the nice controls or features used on the default up front installed phone apps are not available to the developers. So another good thing to know is what frameworks/libraries are out there to overcome this…
My current list of libraries are
* Silverlight for windows phone toolkit: http://silverlight.codeplex.com/
* Coding4Fun windows phone toolkit: http://coding4fun.codeplex.com/
* WP7 Contrib framework: http://wp7contrib.codeplex.com/ ( this is actually already a superset of other libraries with custom additions )
When you add these to your Windows Phone 7 tool set, you’ll get plenty of controls and helpers that are needed when you start developing.
To show of some of the features of these frameworks I started a CodePlex project, called WP7Cycling! http://wp7cycling.codeplex.com/
The main reason for this project is just for myself to get to know the development environment, but it will also benefit other developers in showing what can be done in combination with the given toolkits!
For now it doesn’t have any downloads, so just grab the source code to get the complete project if you want to see it running in the emulator: http://wp7cycling.codeplex.com/SourceControl/list/changesets
Currently I created a simple MainPage with an integrated Bing Maps control and when you press the Get current location button on the appbar, the map will center itself on the current GPS coordinate location of the phone.
Have fun coding and any tips or tricks are always welcome 🙂