My Windows Phone little application
My first WP7 app is available on the Marketplace: Morse Code Flash Light.
It converts any text to Morse code and use your phone as a flashlight to 'read' it.
Features supported (v1.0):
- Translate text in Morse code
- Display it by flashing your screen
- Change speed (“official” morse speed is 100ms per dot)
- Repeat function
- “Shake for a random word” function!
- Support both portrait and landscape orientation
- Optimized for dark & light themes.
So this little piece of software was my excuse to try developing for Windows Phone 7 (and deploy it to the Marketplace). As an experienced Silverlight developer I learnt quite a few things specific to the phone, so this was an interesting experience and I can’t wait to build more mobile apps for this platform!
My Experience (and a few tips)
Very good! Windows Phone dev is not surprising at first, you get all the goodness of developing with Visual Studio 2010, C#, .NET, Silverlight… but you need to apply this to a phone, with very specific constraints (screen real estate, performance, touch, …), hopefully you can find plenty of resource to help (read my conclusion below).
Here are a few things that comes out of my mind right now:
- The best way to test your app in the emulator seems to set zoom level to 66%.
- No implicit Style surprised me at first (too used to SL4…) but that’s not a big deal.
- No binding on Dependency Object (same as above)
- Forget about hyperlinks… you need buttons, big buttons in this touch world.
- I can’t find a way to localize the splash screen, as it is not like browser Silverlight in browser, the phone rely on a SplashScreenImage.jpg picture.
- While testing in the emulator, you can toggle virtual/physical keyboard with these shortcuts: page up / page down.
- Cyclic navigation is discouraged. This was the most difficult part to understand at first. Navigate Home Page/Page 2/Page 3/Home Page, then hit Back button… you need to leave the app (and not back to Page 3). Avoid forward navigation, go back if needed, but you don’t have access to the navigation history, so there is no built in solution here, after 2 failures to pass Marketplace certification, it leads me to delete my common app menu bar… I just have 3 pages in my app: Home/Morse/About, but having a menu on each page with all 3 navigation buttons was a big no-no.
My Conclusion (and a few links)
Being a Silverlight developer does not automatically makes you a (good) Windows Phone developer, it helps for sure but you need more. You need to learn the specifics of Silverlight for the mobile platform, and there are a lot! You need to OPTIMIZE your code AND layout, even for small or basic apps, because if not you’ll get poor performance and users won’t like it. So… I think a Windows Phone developer is a good Silverlight developer... what I mean is knowing how to build good apps for the phone (limited screen real estate, limited performance, …) makes you a better Silverlight dev.Also... you have to learn the rules to get your app certified in the Marketplace, or you will fail to certify, promise.
Reading this is not an option:
Windows Phone 7 Application Certification Requirements [PDF]
Incredible WP7 dev tips (good reading):
Another resource you *should* read to design your WP7 apps:
UI Design and Interaction Guide for Windows Phone 7 v2.0 [PDF]
And finally just in case you missed it Jeff Blankenburg did an amazing “31 days of Windows Phone 7” blog post series: