Windows Phone 7 2010 - Microsoft's counter-attack to smartphones market Family of Windows Mobile OS Windows Mobile Classic devices Windows CE (Compact Edtion) designed specifically for handheld devices, based on Win32 API PDA (personal digital assistant), palmtop computer, PocketPC were original intended platform for the Windows Mobile OS For devices without mobile phone capabilities, and those that included mobile phone capabilities Ref: http://en.wikipedia.org/wiki/Windows_Mobile Family of Windows Mobile OS Windows Mobile Classic devices 1996 – Windows CE 1.0 1997 – Windows CE 2.0 (ATM, games consoles, Handheld PC's, kitchen utensils) 2000 - Windows CE 3.0 - Pocket PC 2000 (became the os of choice on many Pocket PCs, looked and worked like Windows 98, no phone feature) http://www.hpcfactor.com/support/windowsce/ PocketPC 2000 Family of Windows Mobile OS Windows Mobile Classic devices 2001 - CE 3.0 Smartphone 2002– used for Pocket PC phones and Smartphones, UI reflect the new Windows XP PocketPC 2002 Family of Windows Mobile OS Windows Mobile Professional devices 2003 – Windws Mobile 2003 (Windows CE 4.2) - first release PocketPC WM 2003 under the Windows Mobile banner name changed form PocketPC to Windows Mobile 2005 - WM5 (CE5.0) - new standard API created for a simplified programming of 3D apps and games with Direct3Dmobile. It use .Net Compact Framework environment Windows Moblie 5 http://notebooks.com/2010/04/12/a-brief-history-of-windows-mobile/ http://en.wikipedia.org/wiki/Smartphone Family of Windows Mobile OS Windows Mobile Professional devices 2007 – WM6 (CE 5.2) – (also year of WM 6 introducing iPhone) similar in design to the Vista, works much like WM5, but with much better stability 2008 – WM 6.1 – (year of releasing Android) 2009 – WM6.5, vertically scrollable labels, Windows Marketplace announced Feb 2010 – WM6.5.3, was officially announced as first Windows Phone 6.5.3 smartphone WM 6.5 Windows Phone 7 Launched in autumn 2010 Starts new series of Windows Phones CE 6.0 kernel WM 6.x are not upgradeable to WP 7 No backward compatibility yet Metro UI based on tiles, can be managed with drag'n'drop Integration with Xbox Live and Zune Find My Phone feature in Windows Live WP7 devices 10 devices operating Windows Phone 7, made by HTC, Dell, Samsung, and LG More devices to be launched in 2011 Based on Qualcomm chips QSD8250 and QSD8650 with features: Embedded Seventh-generation gpsOne GPS module, gpsOneXTRA Assistance, Adreno 200, OpenGL ES 2.0, OpenGL ES 1.1, OpenVG 1.1, EGL 1.3, Direct3D Mobile, DirectDraw, Recommanded Maximum Clock Frequency: 1000 MHz HTC HTC 7 Pro HTC HTC 7 Surround HTC HTC 7 Trophy HTC HTC 7 Mozart HTC HD7 LG Optimus 7 LG Quantum Samsung Focus Samsung Omnia 7 Dell Venue Pro WP7 Minimum device requirements Capacitive, 4-point multi-touch screen with WVGA (800x480) resolution 1 GHz ARM v7 DirectX9 rendering-capable GPU 256 MB of RAM with at least 8 GB of Flash memory Accelerometer, compass, ambient light sensor, proximity sensor and GPS 5-megapixel camera with an LED flash FM radio tuner 6 dedicated hardware buttons - back, Start, search, camera, power/sleep and Volume Up and Down. WP 7 gaming 1GHz CPU witch ARM architecture Adreno 200 Graphics core (22 million triangles per/sec and133 M Pixels/sec) on February 8th, 2011, only apps made in XNA 4.0 will be accepted; OpenGL ES 2.0, Direct3D Mobile, With XNA 4.0, 3D graphic support: - multitexturing (max 2 textures) - Vertex Buffer Object - Shadow mapping - Skinned 3D model - Stencil Buffer - GPU instancing - Alpha test - Up to 3 per vertex lights - Per pixel light - Environment mapping - Fog - Blending - No custom shaders support Marketshare 2008 2009 Source: Gartner Research Marketshare 2009 2010 http://www.gartner.com/it/page.jsp?id=1466313 Marketshare forecast Samsung to Discard Windows Phone Samsung Electronics, the world’s No. 5 smartphone manufacturer, plans to discard the WP7 OS to increase phones on the Android platform and with its own smartphone operating system http://www.telecomskorea.com/market-8281.html WP 7 growing popularity In the first 6 weeks phone manufacturers sold 1.5 million Windows Phone 7 devices to mobile operators and retailers 4th quarter of 2010 it had sold more than 2 million „Windows Phone 7 handsets are selling better than expected” T-Mobile USA said of WP7: "The customers are very satisfied with the experience. We’ve done well with the devices that we sold” Many positive reviews Developing Windows Phone Developer Tools from Microsoft site for free http://create.msdn.com/en-us/home/getting_started Two WP dev frameworks „The two frameworks, along Common Base Class Library provide a substantial number of components for developers to construct applications on” „Applications written for Silverlight or the XNA Framework today will run on Windows Phone with only a minor number of adjustments, such as for screen size or for device specific features” Silverlight and XNA framework for creating Rich Internet Application style UI with emphasis on multimedia, animations, graphics, with features and purposes similar to those of Adobe Flash Hardware accelerated by DX Started on mobile with WP7 and Symbian (series 60) FOR: XAML based, event driven application framework rapid creation of a Rich Internet Application-style user interface use Windows Phone controls embed video inside your application use an HTML web browser control Framework is focused on enabling game developers to be successful developing on Microsoft gaming platforms provides a complete set of managed APIs for game development platforms WP, Xbox 360, Zune HD, Windows OS FOR: high performance game rapid creation of multi-screen 2D and 3D games manage art assets such as models, meshes, sprites, textures, effects, terrains, or animations in the XNA Content Pipeline Developing .NET XNA 4.0, Silverlight Microsoft Visual Studio 2010 Developing Microsoft Expression Blend, UI desing tool (vector-based 2D widgets, and 3D widgets with hardware acceleration via DirectX), XAML-based Developing – location GPS, Wi-Fi, cellular radio are hardware in WP as providers of location data with varying levels of accuracy and power consumption On top of the hardware sits the native code layer which communicates directly with the available sources of location data and decides which sources to use to determine the location of the device based on the availability of data and on the performance requirements specified by the application. layer also communicates over the Internet with a Microsoft-hosted web service to look up location-related information from a database User can choose between high accuracy or the default, power-optimized setting „MovementTresholdProperty” to set desired minimum change in position „StatusChange” (disable, ready, noData, initializing) and „PositionChange” Event Even when the Location Service is able to obtain location data, initializing and obtaining the first reading typically takes 15 seconds, but can take up to 120 seconds Developing – location - psudocode using System.Device.Location // class import … GeoCoordinateWatcher watcher // variable declaration object … // Start the acquisition of data from the Location Service: // eg. Click the event handler for the “Start Location” button private void startLocationButton_Click(object sender, RoutedEventArgs e) { // using high accuracy watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High) // use MovementThreshold to ignore noise in the signal watcher.MovementThreshold = 20; // Addind event handlers for the StatusChanged and PositionChanged events watcher.StatusChanged += new EventHandler<GeoPositionStatusChangedEventArgs>(watcher_StatusCha nged) watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_ PositionChanged) //start the Location Service watcher.Start(); } Based on Mirosoft's code samples http://msdn.microsoft.com/en-us/library/ff431782%28v=vs.92%29.aspx Developing – location Event handler for PositionChanged void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<..> e) { if (e.Status == GeoPositionStatus.Ready) { // get the current location GeoCoordinate co = watcher.Position.Location; // optionaly Stop the Location Service to conserve battery power. watcher.Stop(); } } Based on Mirosoft's code samples http://msdn.microsoft.com/en-us/library/ff431782%28v=vs.92%29.aspx Developing – location Event handler for StatusChanged void watcher_StatusChanged(object sender, GeoPositionStatusChangedEventArgs e) { switch (e.Status) { case GeoPositionStatus.Disabled: // The Location Service is disabled or unsupported. // Check to see if the user has disabled the Location Service. case GeoPositionStatus.Initializing: // The Location Service is initializing. // Disable the Start Location button. case GeoPositionStatus.NoData // The Location Service is working, but it cannot get location data. // Alert the user and enable the Stop Location button. case GeoPositionStatus.Ready: // The Location Service is working and is receiving location data. // Show the current position and enable the Stop Location button. } } Based on Mirosoft's code samples http://msdn.microsoft.com/en-us/library/ff431782%28v=vs.92%29.aspx Developing - Accelerometer „Accelerometer is a sensor that measures acceleration forces such as gravity or the forces caused by moving the sensor. All Windows Phones have at least one accelerometer sensor that, when accessed by the managed Accelerometer AP Ican be used to provide input to applications” „It is built on top of a more general sensor framework so other sensors that may be supported by Windows Phones in the future will be accessed in a similar way” Imports: using Microsoft.Devices.Sensors Declaration: Accelerometer accelerometer = new Accelerometer() Ad event: accelerometer.ReadingChanged += new EventHandler<AccelerometerReadingEventArgs>(acc_ReadingChanged) Implemet event: acc_ReadingChanged(..) { Disp.Invoke => AccChanged(e) } Event is raised when accelerometer has new data. Event handler is called from different thread than the one in which page is running, then Dispatcher class has to be used to invoke method in page’s thread: AccChanged(AccelerometerReadingEventArgs e) { get acc data } Run: accelerometer.Start() Based on: http://msdn.microsoft.com/en-us/library/ff431810%28v=VS.92%29.aspx Marketplace Apps, games, and music as an available category 99$ for registration as developer or up to five free applications yearly; each additional free application can be listed for a $19.99 USD fee 99$ for app subbmisom 5 free points for app subbmision 70% of each application sale will be paid to developers App must meet specified requirememts Windows Phone 7 Application Certification Requirements application must be fully functional when acquired from the Windows Phone Marketplace application must run on any Windows Phone 7 device, regardless of model, screen size, keyboard hardware, and manufacturer The application must not terminate unexpectedly The application must render the first screen within 5 seconds after launch Application must not exceed 90 MB of RAM usage Location aware applications must not hang or terminate unexpectedly when the Location Service is turned off on the phone Sound effects through the SoundEffect class will be mixed with the MediaPlayer. The SoundEffect class should not be used to play background music. Support Forum Examples and code samples Books, free ebook with samples msdn.microsoft.com ... *Free „Bluescreen” application at Marketplace references http://technologie.gazeta.pl/internet/1,104665,8160800,Windows_Phone_7_zbiera_niespodziew anie_dobre_recenzje.html http://notebooks.com/2010/04/12/a-brief-history-of-windows-mobile/ http://www.operating-system.org/betriebssystem/_english/bs-wince.htm http://en.wikipedia.org/wiki/List_of_Windows_Phone_devices http://nyagurak.blogspot.com/ http://pdadb.net http://en.wikipedia.org/wiki/.NET_Compact_Framework http://www.hpcfactor.com/support/windowsce/wce6.asp http://www.idc.com/about/viewpressrelease.jsp?containerId=prUS22486010&sectionId=null&ele mentId=null&pageType=SYNOPSIS http://www.brighthub.com/computing/windows-platform/articles/1295.aspx http://en.wikipedia.org/wiki/Windows_Marketplace_for_Mobile http://en.wikipedia.org/wiki/Windows_Mobil