Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Developing for Windows Phone 7


Published on

Presented on 26th Feb 2011 at Tech-Out event sponsored by Infusion, Techies, Tech.Sessions and Microsoft Middle East.

  • Be the first to comment

  • Be the first to like this

Developing for Windows Phone 7

  1. 1. Developing for Windows Phone 7<br />Zeddy Iskandar<br />
  2. 2. Agenda<br />What’s WP7 like (device demo)<br />Tools to Get you Started<br />WP7 UI Features<br />Some codes<br />How Publishing Works<br />
  3. 3. Device Demo<br />
  4. 4. Tools of Trade<br />Windows Phone Developer Tools (WPDT)<br /><br />WPDT Jan 2011 Update (Copy-Paste)<br /><br />Training Kits (3)<br /><br />Charles Petzold Free e-Book<br /><br />Code Samples<br /><br />
  5. 5. Which Device to Buy?<br />SIM-Free Windows Phones (not carrier-locked):<br />Samsung Focus SGH-i917 ($574.99)<br />HTCSurround T8788 ($574.99)<br />LGQuantum C900 (QWERTY keyboard) ($544.99)<br />HTCTrophy ($604.99)<br />SamsungOmnia 7 ($614.99)<br />HTCHD7 ($579.99)<br />Dell Venue Pro (Vertical keyboard) ($659.99)<br />HTC 7 Pro (QWERTY keyboard) ($694.99)<br />
  6. 6. Device Specs<br />All must meet Microsoft’s minimum requirements:<br />Qualcomm Snap Dragon (QSD8250) 1.0 GHz<br />Capacitive 4-point multi-touch screen<br />WVGA (480x800) resolution<br />DirectX9 rendering-capable GPU<br />256MB RAM<br />8GB Flash Memory<br />5MP Camera with LED Flash<br />FM Radio Tuner<br />Accelerometer with Compass<br />Ambient Light Sensor<br />Proximity Sensor<br />Assisted GPS<br />
  7. 7. SideLoading apps<br />You need:<br />AppHub Account (<br />Zune Software (<br />Run Zune, Connect Device, Run Windows Phone Developer Registration app from WPDT Start Menu<br />
  8. 8. XAML Primer<br />Stuff you need to know before coding<br />
  9. 9. 3 Containers<br />Grid<br />StackPanel<br />Canvas<br />
  10. 10. Grid<br /><Grid ShowGridLines="True" Margin="12,0,12,0"><br /><Grid.RowDefinitions><br /><RowDefinition Height="auto" /><br /><RowDefinition /><br /><RowDefinition Height="auto" /><br /></Grid.RowDefinitions><br /><Grid.ColumnDefinitions><br /><ColumnDefinition Width="*" /><br /><ColumnDefinition Width="*" /><br /></Grid.ColumnDefinitions><br /><TextBox Text="1st row 1st column"TextWrapping="Wrap"Grid.Column="0"Grid.Row="0" /><br /><TextBox Text="3rd row 1st column"TextWrapping="Wrap"Grid.Column="0"Grid.Row="2" /><br /><Button Content="1st row 3rd column"FontSize="17"Grid.Column="1"Grid.Row="0" /><br /><Button Content="3rd row 2nd column"FontSize="17"Grid.Column="1"Grid.Row="2" /><br /></Grid><br />
  11. 11. StackPanel<br /><StackPanel Margin="20"><br /><Rectangle Fill="Red" Width="50" Height="50"<br /> Margin="5" /><br /><Rectangle Fill="Blue" Width="50" Height="50“<br /> Margin="5" /><br /><Rectangle Fill="Green" Width="50" Height="50“<br /> Margin="5" /><br /><Rectangle Fill="Purple" Width="50" Height="50“<br /> Margin="5" /><br /></StackPanel><br />
  12. 12. Canvas<br /><Canvas Background="Transparent"><br /><Rectangle Canvas.Left="30" Canvas.Top="200"<br />Fill="red" Width="200" Height="200" /><br /></Canvas><br />*Recommended if you don’t need the auto-adjust features of Grid & StackPanel  better performance<br />
  13. 13. Most Used UI Elements<br />TextBlock<br />Image<br />Button<br />ListBox<br />
  14. 14. TextBlock<br /><TextBlock Text="Hello, world!" /><br />
  15. 15. Image<br /><Image Source="licorice.JPG" /><br />
  16. 16. Button<br /><Button Content="Locate Me" Height="80"<br /> HorizontalAlignment="Left" Margin="0,6,0,0"<br />Name="btnLocateMe" VerticalAlignment="Top“<br /> Width="204" Click="btnLocateMe_Click" /><br />
  17. 17. ListBox<br /><ListBox Name=“lbCities" ItemsSource="..."/><br />
  18. 18. WP7 UI Features<br />Stuff you need to be aware of as devs<br />
  19. 19. Application Bar<br /><phone:PhoneApplicationPage.ApplicationBar><br /><shell:ApplicationBar IsVisible="True" IsMenuEnabled="True"><br /><shell:ApplicationBarIconButton IconUri="/Icons/" Text="Save" Click="SaveClicked"/><br /><shell:ApplicationBarIconButton IconUri="/Icons/" Text="Cancel" Click="CancelClicked"/><br />
  20. 20. Application Bar Menu<br /><phone:PhoneApplicationPage.ApplicationBar><br /><shell:ApplicationBar IsVisible="True" IsMenuEnabled="True"><br /><shell:ApplicationBar.MenuItems><br /><shell:ApplicationBarMenuItem Text="Save" Click="SaveClicked"/><br /><shell:ApplicationBarMenuItem Text="Cancel" Click="CancelClicked"/><br /></shell:ApplicationBar.MenuItems><br /></shell:ApplicationBar><br /></phone:PhoneApplicationPage.ApplicationBar><br />
  21. 21. UI Gestures<br />Single Touch<br />Tap<br />Double Tap<br />Pan<br />Flick<br />Touch & Hold<br />Multi Touch<br />Pinch & Stretch<br />
  22. 22. Panorama<br />Only use if your app has features similar to XBox Live and Zune Marketplace. <br />
  23. 23. Pivot<br />Only use if your app wants to filter contents<br />
  24. 24. Application Framework<br />No you can’t intercept that Phone call and auto-reject calls<br />
  25. 25. Software Architecture<br />Applications<br />Your App UI and logic<br />Frameworks<br />Silverlight<br />XNA<br />HTML/JavaScript<br />CLR<br />App Model<br />UI Model<br />Cloud Integration<br />Xbox LIVE<br />Bing<br />Location<br />Push notifications<br />Windows Live ID<br />App management<br />Licensing<br />Chamber isolation<br />Software updates<br />Shell frame <br />Session manager<br />Direct3D<br />Compositor<br />Kernel<br />Hardware BSP<br />Security<br />Networking<br />Storage<br />A-GPS Accelerometer Compass Light Proximity<br />Media Wi-Fi Radio Graphics<br />Hardware Foundation<br />
  26. 26. Windows Phone 7 Series Frameworks Details<br />Windows Phone Frameworks<br />Camera<br />Device Integration<br />Launchers & Choosers<br />Windows Phone Controls<br />PhoneApplicationPage<br />PushNotification<br />WebBrowserControl<br />Sensors<br />PhoneApplicationFrame<br />Silverlight Presentation and Media<br />XNA Frameworks for Games<br />Controls<br />Drawing<br />IsolatedStorage<br />Drawing<br />GamerServices<br />Navigation<br />Shapes<br />Markup<br />Media<br />Audio<br />Media<br />Graphics<br />Content<br />Input<br />Application Object<br />Common Base Class Library<br />Diagnostics<br />Reflection<br />IO<br />Runtime<br />Resources<br />Globalization<br />Text<br />Location<br />Net<br />Collections<br />ComponentModel<br />Configuration<br />Security<br />Threading<br />ServiceModel<br />Linq<br />
  27. 27. Some Codes<br />Real-world coding samples<br />
  28. 28. Publishing<br />Show Me the Money!<br />
  29. 29. Publishing Flow<br />
  30. 30. 5 Step Process<br />Upload .XAP Package<br />Write App Description<br />Upload the required ArtWork<br />Set App Price & Distribution Market<br />Submit App for Certification<br />There’s a complete walkthrough here<br />
  31. 31. Terima Kasih!<br /><br />Windows Phone Developer Blog<br /><br />