Wednesday, December 01, 2010

My "presentation" to the Windows Phone User Group

I did this "presentation" using Notepad - it was all a bit last minute....

The theme of it was about how I've just built my first WP7 app - RunSat - and the lessons learned

I think (hope?) the presentation was better when it had a demo attached!

- last November Samsung gave me a Omnia II.
- then I bought an iPhone
- then Samsung gave me a Bada phone
- 12 days ago I wrote my first Silverlight/WPF app
- then last Thursday Paul Foster lent me a WP7 phone

1. Wp7 development is a pleasure compared to:
WP7 dev was a pleasure
- PC dev, 
- WinCE (MFC, then CF2) on Wm6.5, 
- Monotouch, 
- Obj-C xCode, 
- Bada C++
- a teeny bit Eclipse/Android

2. Installation of the tools was super quick 
Zune for PC installation was a bit slow...

3. Device-based dev is super fast, reliable and painless  
- debugging support is great 
- really miss wifi debugging from MonoTouch

4. Emulator-based dev is a bit slower! 
And lack of GPS in emulator is a pain
Some workarounds available - e.g. reactive

5. Silverlight/XAML 
as a non-user 10 days ago, I've found this very easy to pick up 
- but I'm a world away from mastering XAML.
- efficiency doesn't seem to matter ?

- Blend makes blood come out of my ears

6. Tombstoning is actually pretty easy

- unless your data doesn't really fit 

- mine didn't

7. When you Google (Bing?) around for sample code, it's definitely a bit confusing working out what WPF/SL3/SL4 code/xaml will work on WP7

- but there is lots of good blogging available :)

8. Bing maps integration was super quick and super nice :)

- didn't support MVVM perfectly

9. Fighting the Appstore guidelines - I hate the app stores

- app store approval gotchas...
--- pivot control abuse?
--- GPS - request access yourself and supply privacy
--- run idle - request access yourself
--- help and support
--- dark/light theming

10. Cross platform 
- this app came from WM6.5
- it went to Monotouch
- it went from Monotouch to WP7
- next up is MonoDroid (preview 7 already)

Details of cross platform

- GPS integration - just effected one module
- File IO - main IO just worked
- BUT open/close/exists/delete code needed changing for IsolatedStorage
- DateTime (clock) source information
- XML serialisation - XMLDocument not available on WP7 - had to port code across to XDocument - not a biggie - also used JSON.Net
- Web services calls - legacy ASMX didn't work... had to hand craft my XML :( - Would probably have been quicker to change the server api's to newer WCF services.

Cross platform

- big story is how much I haven't rewritten...

- UI - lots of new code to write

---- tables/lists
---- WP7 Pivot/Panorama controls against tables and paged scrollviews
---- notifications

- MVVM pattern made this very manageable (UIDialog on MonoTouch also made my life much simpler) 
- will be much easier again in 2 days time?

- app lifecycle management - still working this out - tombstoning is quite straight forward but requires thought...

- tests... nunit runs on all platforms

No comments:

Post a Comment