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: />
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)
/>
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
/> />
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
/>
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
/>
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
/>
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
PositionChanged)
//start the Location Service
watcher.Start();
}
Based on Mirosoft's code samples />
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 />
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 />
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: />