INTRODUCTION TO WINDOWS PHONE 8

35
Jan Pahkala INTRODUCTION TO WINDOWS PHONE 8

Transcript of INTRODUCTION TO WINDOWS PHONE 8

Page 1: INTRODUCTION TO WINDOWS PHONE 8

Jan Pahkala

INTRODUCTION TO WINDOWS PHONE 8

Page 2: INTRODUCTION TO WINDOWS PHONE 8

INTRODUCTION TO WINDOWS PHONE 8

Jan Pahkala

Bachelor’s thesis

Autumn 2012

Degree Programme in Information Technology

Oulu University of Applied Sciences

Page 3: INTRODUCTION TO WINDOWS PHONE 8

3

ABSTRACT

Oulu University of Applied Sciences

Degree Programme in Information Technology, Software development

Author: Jan Pahkala Title of Bachelor’s thesis: Introduction to Windows Phone Supervisor: Markku Rahikainen Term and year of completion: Autumn 2012 Number of pages: 35

The objective for this Bachelor’s thesis is to study Windows Phone 8 –platform and to produce

introduction material for the target company. This work will introduce the development of the

platform, the most important features and tools designed for application development, quality

assurance and testing. In addition the requirements that Microsoft has set for the application

distribution will be examined. Finally application examples will be developed for various types of

uses introducing them in an illustrative form.

Keywords: Windows Phone 8, architecture, features, development, distribution

Page 4: INTRODUCTION TO WINDOWS PHONE 8

4

TIIVISTELMÄ

Oulun seudun ammattikorkeakoulu Tietotekniikka, ohjelmistojen kehitys

Tekijä: Jan Pahkala Opinnäytetyön nimi: Introduction to Windows Phone 8 Työn ohjaaja: Markku Rahikainen Työn valmistumislukukausi ja -vuosi: Syksy 2012 Sivumäärä: 35

Tämän opinnäytetyön tarkoitus oli tutustua Windows Phone 8 –alustaan ja luoda

perehdytysmateriaalia kohdeyritykselle. Työssä esitellään alustan taustoja, tärkeimpiä

ominaisuuksia sekä kehitysympäristön tarjoamia työkaluja sovelluskehitykseen, testaamiseen ja

laadunvarmistukseen. Lisäksi kartoitetaan sovelluksen julkaisulle asetettuja vaatimuksia. Lopuksi

toteutetaan sovellusesimerkkejä eri osa-alueilta esitellen ne mahdollisimman havainnollisessa

muodossa.

Keywords: Windows Phone 8, architecture, features, development, distribution

Page 5: INTRODUCTION TO WINDOWS PHONE 8

5

PREFACE

I want to thank my dear wife, Anne, for giving me the support and motivation to pass over

troubled times. Thanks to my siblings, parents and friends for their support and encouragement.

I also want to thank Site Manager Lasse Määttä from Codemate Ltd for the support and finding

me time slots from work.

Thanks to Markku Rahikainen, Pia Eriksson and the staff at OAMK for assistance.

Oulu 26 November 2012

Jan Pahkala

Page 6: INTRODUCTION TO WINDOWS PHONE 8

6

SYMBOLS AND ABBREVATIONS

SDK Software Developer Kit

UI User Interface

IDE Integrated development environment

CIL Common Intermediate Language

RAM Random-access memory

VoIP Voice over Internet Protocol

API Application programming interface

XAML Extensible Application Markup Language

Page 7: INTRODUCTION TO WINDOWS PHONE 8

7

CONTENTS

1 INTRODUCTION 9

2 WINDOWS PHONE PLATFORM 10

2.1 Platform architecture 11

2.1.1 Shared code 12

2.1.2 CoreCLR engine and garbage collector 12

2.1.3 Async programming model 12

2.1.4 Native code support 12

2.2 Platform features 13

2.2.1 Resolutions and scaling 13

2.2.2 Multitasking 13

2.2.3 Scheduled Tasks and background agents 14

2.2.4 Live Tiles and Live Apps 15

2.2.5 Lock screen 16

2.2.6 Camera 16

2.2.7 Bluetooth 16

2.2.8 NFC 16

2.2.9 Removable micro-SD storage card support 17

2.3.1 Maps 17

3 DEVELOPEMENT 18

3.1 C# 18

3.2 XAML 18

3.3 Visual Studio Express 2012 edition for Windows Phone 19

3.4 Blend for Visual Studio 2012 19

3.8 Connect phone development environment 19

3.5 Windows Phone Application Analysis tool 20

3.6 Simulation Dashboard for Windows Phone 21

3.7 Windows Phone Store Test Kit 21

4 DISTRIBUTION 22

4.1 Private beta testing 22

4.2 Targeted app distribution 23

4.3 Approval process 23

Page 8: INTRODUCTION TO WINDOWS PHONE 8

8

5 IMPLEMENTATION 24

5.1 Camera example 24

5.3 Location example 26

6 CONCLUSION 30

7 REFERENCES 32

Page 9: INTRODUCTION TO WINDOWS PHONE 8

9

1 INTRODUCTION

Mobile device and platform markets are maybe the fastest evolving industry in

the world. Every contender has to introduce something special and interesting

in every quarter of a year. Unlike in the past, the front-runner might not have the

best product technology-wise. Today it is all about “user experience”, “look-and-

feel” of the product and the “ecosystem” around it. One technology could die

and another could become the king of the hill overnight. One could argue that

this fits the profile of our national treasure: Nokia, which has been on the free

fall for some time. Nokia made a decision to jump from a burning oil platform

into the cold sea, as their CEO, ex-Microsoft employee, Stephen Elop described

the situation (1). “Out of the blue” Nokia got rescued by a ship called Microsoft

and it sealed the deal for Nokia taking Windows Phone as their sole platform for

their future smart phones.

This decision hit our home town, Oulu, hard. Hundreds of people lost their jobs.

Software developers mastering only the deceased technologies might not have

found a lifeboat for themselves. This reminds us why it is crucial for mobile

software developers to keep their expertise up to date and to master some

other technologies aside.

For adopting new technologies, introduction materials are the first steps on the

path. In tough times companies are not able to provide paid training for their

employees. Instead training could be organized internally by a developer who

has the know-how for the target technology. This leads to the key objective of

this thesis. The primary objective is to introduce Windows Phone –platform from

the different angles described earlier. Possibly, this thesis could be used as an

internal introduction material in the target company.

Page 10: INTRODUCTION TO WINDOWS PHONE 8

10

2 WINDOWS PHONE PLATFORM

Windows Phone is a family of mobile operating systems developed by

Microsoft. It is the successor of the Windows Mobile platform. The Windows

Phone platform development started in 2008 when Microsoft reorganized the

Windows Mobile division and started to work on a new mobile operating system

that would offer better user experience and usability for new consumer

demands such as using touch screen and social media. (2.)

They decided to replace the old icon-based interface with something drastically

different. This new user interface is based on a new design language, which is

internally codenamed as ”Metro”. A key design principle of Metro is relying more

on typography and less on graphics. The design language favors flat colored

tiles and text as the primary form of navigation. Microsoft described Metro as

follows: ”Metro is our design language. We call it Metro because it’s modern

and clean. It’s fast and in motion. It’s about content and typography. And it’s

entirely authentic.” (3.)

Windows Phone 7 is the first generation of the Windows Phone mobile

operating system released on October 2012. (2.)

Microsoft introduced minimum device requirements for manufactures. This was

done to ensure that every Windows Phone has a consistent set of features that

customers and developers can rely on. (4.)

Standard Hardware

A common set of hardware controls and buttons that include “Start”,

“Search”, and “Back” buttons.

A large WVGA (800 x 480) format display capable of rendering most web

content in full-page width and displaying movies in widescreen.

Capacitive 4-point multi-touch screens for quick, simple control of the

phone and its features.

Page 11: INTRODUCTION TO WINDOWS PHONE 8

11

Support for data connectivity using cellular networks and Wi-Fi.

256 MB (or more) of RAM and 8 GB (or more) of flash storage.

A-GPS.

Accelerometer. (4.)

Optional Hardware

Compass.

Gyro.

Primary Camera.

Front-facing Camera. (4.)

The first major update to Windows Phone 7, called “Mango”, was released in

May 2011. Although the operating system internally identifies itself as version

7.1, it is marketed as version 7.5 in all published materials. Mango update

introduced background agents along with multi-tasking of third-party apps. (2.)

Windows Phone 8 is the second generation of the Windows Phone mobile

operating system released on October 29, 2012. It introduced major changes in

architecture, new features and improved many existing ones. Windows Phone 8

is designed to run existing Windows Phone apps unchanged. Unfortunately,

current Windows Phone 7 platform devices are not updatable to Windows

Phone 8. (2.)

2.1 Platform architecture

In this chapter the following questions will be discussed: how architecture has

changed since previous generation and what new opportunities it opens up for a

developer.

Page 12: INTRODUCTION TO WINDOWS PHONE 8

12

2.1.1 Shared code

In Windows Phone 8 Windows CE-based architecture is replaced with Windows

NT kernel (2). Moving to a common Windows core meant that every major

underlying subsystem had to change. Windows Phone 8 now shares the same

file system (NTFS), networking stack, security elements, graphics engine

(DirectX), device driver framework and hardware abstraction layer (HAL) as

Windows 8. The shared basis of the two platforms means that an application

can be ported between these two platforms with much less effort. This change

also brings support for multi-core processors.

2.1.2 CoreCLR engine and garbage collector

Windows Phone 8 includes the CoreCLR engine previously maintained by .NET

Compact Framework. The CoreCLR includes many of the same features and

optimizations as the CLR in the .NET Framework 4.5. The CoreCLR includes an

auto-tuning garbage collector. These changes result in reduced startup time

and higher responsiveness in apps. (6.)

2.1.3 Async programming model

Windows Phone 8 introduces the new task-based async programming model

across the CoreCLR and the .NET Framework libraries enabling asynchronous

code without much effort. Using the new async and await language keywords, it

is now much easier to provide a highly responsive UI experience. (6.)

2.1.4 Native code support

Windows Phone 8 has full C and C++ support, making it easier to write apps for

multiple platforms more quickly. It means support for gaming middleware such

as Havok Vision Engine as well as native DirectX-based game development.

(8.)

Page 13: INTRODUCTION TO WINDOWS PHONE 8

13

2.2 Platform features

In this chapter I will discuss the most important features of Windows Phone

platform from the developer’s point of view. I will also call attention to the

features that have been either added or improved along with Windows Phone 8.

2.2.1 Resolutions and scaling

Windows Phone 8 will support three different screen resolutions WVGA (800 x

480), WXVGA (1280 x 768), and 720p (1280 x 720). (7.)

One problem faced by mobile developers is the multitude of different screen

resolutions that are available. Therefore, applications must be customized for

each resolution. The Windows Phone screen hardware is able to scale the

screen of an application to fit whatever screen size the device supports. This

makes it possible to create games that will work on any screen size, including

ones that have not been made yet. Existing Windows Phone 7 based

applications run without changes and scale automatically with crisper text and

vector art on the higher-resolution displays. But in order to truly get the best of

this feature, developers should use high resolution graphics. (9.)

The phone contains an accelerometer that detects how the phone is being held.

The Windows Phone operating system can then adjust the display to match the

orientation. A Developer may design an application to work in both landscape

and portrait mode or just either one of them.

2.2.2 Multitasking

Multitasking is a controversial and debatable topic. Applications running in the

background often consume resources and drain the battery. Balancing

resources and multitasking has been a difficult issue for any mobile operating

system. In situations where the application is deactivated, the application is put

into a dormant state. The application’s state is completely preserved, but the

main thread is paused. However, if the operating system determines that it is

Page 14: INTRODUCTION TO WINDOWS PHONE 8

14

running low on RAM, it may take some dormant applications in dormant state

and tombstone them. (11.)

Tombstoning is similar to the hibernate-state on a desktop environment, but it

applies for every background-app. When a user changes to other applications,

the current app status will save the necessary data to the memory and the

application is “put into a grave”. The app will not be running and it will not

consume any resources. When the user comes back, it will be loaded from

scratch. But it also uses the previous data and the application “returns from the

grave”. Developers must handle tombstoning in the code. (5.)(11.)

2.2.3 Scheduled Tasks and background agents

Scheduled Tasks and background agents allow an application to execute code

in a separated thread even if the application is paused. The application must

first register the agent on the ScheduledActionService. Background agents can

only be scheduled to run in two ways:

PeriodicTasks: Periodic agents can run for a very short period of time

and perform lightweight tasks on a regular recurring interval. Typical

scenarios for this type of a task include uploading the device’s location

and performing small amounts of data synchronization.

ResourceIntensiveTask: Resource-intensive agents can run for a

relatively long period of time when the phone meets a set of

requirements. A typical scenario for this type of a task is synchronizing

large amounts of data to the phone while it is not being actively used by

the user. (12.)

Windows Phone 8 introduces two new background agents, giving both VOIP

and location-based applications the option of working with background services.

The VOIP agent handles incoming voice, video and chat sessions, while the

background location agent works with location data. (7.)

Page 15: INTRODUCTION TO WINDOWS PHONE 8

15

Microsoft recommends using a mutex for synchronizing access to resources

that are shared between the foreground application and the background agent,

such as files in isolated storage. A file in isolated storage can be used for one-

directional communication, where the foreground app writes and the agent only

reads. (24.)

2.2.4 Live Tiles and Live Apps

Windows Phone uses Live Tiles to display interactive content on the start

screen. The user does not need to navigate in and out of apps manually to find

out what’s going on. The user can choose which tiles to see and arrange them

to any order. Windows Phone 8 adds support for small tile size, previously

supporting only medium and large tile size. Live Tiles can now be resized by the

user (Image 1). (8.)(9.)

IMAGE2. Interactive Live Apps

IMAGE1. Resizing a tile

Windows Phone 8 brings new feature called Live Apps. It includes Live Apps for

many built-in apps such as email, messaging and calendar. Live Apps are

basically just versions of Live Tiles for apps to display interactive content

(Image 2). They can integrate with the lock screen. Third-party developers are

able to create Live Apps. (8.)(9.)

Page 16: INTRODUCTION TO WINDOWS PHONE 8

16

2.2.5 Lock screen

Windows Phone 8 lock screen supports Live Apps and Windows 8-like basic

and detailed notification options. Third party applications can now register as

the lock screen wallpaper provider, and can be included in the lock screen

notification area. These notifications can include a 24 x 24 applications icon and

an information text which are taken from the app’s tile. (9.)

2.2.6 Camera

Windows Phone 8 introduces a new Camera API that can be easily used by

developers. It offers following functionalities:

Camera parameter configuration: ISO speed and exposure.

Real-time access to the phone’s video stream.

Multi-frame capture for creating new types of camera experiences and

imagery.

Custom lenses that integrate with the built-in camera app offering effects,

filters and computational photography. (10.)

2.2.7 Bluetooth

Windows Phone 8 includes new Bluetooth APIs that provide support for

application to application communication, application to device communication,

and peer discovery where a pairing is not required. (10.)

2.2.8 NFC

Windows Phone 8 supports short-distance communication with NFC. This type

of communication enables many scenarios such as: pairing the phone with

other devices, receiving information from smart billboards and mobile payments.

(9.)

Page 17: INTRODUCTION TO WINDOWS PHONE 8

17

2.2.9 Removable micro-SD storage card support

Windows Phone 8 supports micro-SD cards for the first time and it can be

accessed from a computer just like any other portable storage device.

Developers can use read-only APIs for accessing the contents of this storage.

(9.)

2.3.0 Wallet and In-App purchasing

Windows Phone 8 introduces the Wallet and together with in-app purchasing

bringing new and exciting opportunities for developers. In-app purchasing

supports the same payment options, such as a credit card, gift card, or PayPal

account. The wallet also enables NFC-based payment using phone’s NFC

hardware. (9.)

2.3.1 Maps

Nokia’s Maps solution replaces Bing Maps in Windows Phone 8. It offers more

complete and accurate map data, a new 3D mode, and hardware-accelerated

rendering. “A new WinPRT-based location API also accompanies the new

Nokia Maps control and provide functionality new to the Windows Phone

platform such as generating driving directions with an API call so that they can

be included in your app. Existing apps that include the Bing Maps control will

continue to work.” (10).

Page 18: INTRODUCTION TO WINDOWS PHONE 8

18

3 DEVELOPEMENT

The Windows Phone SDK 8.0 provides the tools that are needed to develop

apps and games for Windows Phone 8 and Windows Phone 7.1. The most

important tools are:

Visual Studio Express 2012 edition for Windows Phone

Blend for Visual Studio 2012

Windows Phone Developer Registration tool

Windows Phone Connect tool

Emulators for Windows Phone 7.1 and 8.0

Windows Phone Application Analysis tool

Simulation Dashboard for Windows Phone

Microsoft is slowly deprecating Silverlight and XNA in Windows Phone platform.

The SDK still allows creating Silverlight and XNA based apps, but only if the

build target is set to Windows Phone 7.1.

3.1 C#

C# is intended to be a simple, modern, general-purpose, object-oriented

programming language. It inherits many features of C, C++, Visual Basic and

Java. The most recent version is C# 5.0, which was released on August 15,

2012. Windows Phone 8 supports the new C# 5.0 language features. (23.)

3.2 XAML

XAML is a declarative language that can be used to create the visible user UI

elements in your apps. You can associate a separate code-behind file for each

XAML file, which will respond to events and manipulate the objects that you

declare in the XAML. Anything that is created in XAML can be expressed using

C# or Visual Basic. (25.)

Page 19: INTRODUCTION TO WINDOWS PHONE 8

19

3.3 Visual Studio Express 2012 edition for Windows Phone

Visual Studio Express Edition is a stripped-down version of the Visual Studio

IDE providing only features required for Windows Phone development. The

SDK can be used as an add-in with other Visual Studio 2012 versions.

3.4 Blend for Visual Studio 2012

Blend for Visual Studio 2012 is a user interface design tool for creating

graphical interfaces. One of the key ideas behind Blend is that it allows

animators and UI designers to create the interface while developers write the

code-behind. Blend offers dynamic flow and elements layout and positioning

that is based on relevance to its parent. You can still specify width and height,

but in most cases this will be a minimum width and a minimum height value. It

handles data bindings giving you an accurate depiction of the XAML live in the

design-time environment.

3.8 Connect phone development environment

In order to deploy an application from the development environment directly to a

device, it must first be registered using Windows Phone Developer Registration

tool. Registration requires the following things:

Installation of the Zune software.

A Microsoft account (formerly known as a Windows Live ID).

A valid and current Windows Phone Dev Center account. (13.)

Further instructions can be found at:

http://msdn.microsoft.com/en-

us/library/windowsphone/develop/ff769508(v=vs.105).aspx

After successful registration, the phone can be connected to the development

environment using either the Windows Phone Connect tool or Zune software.

Page 20: INTRODUCTION TO WINDOWS PHONE 8

20

Further instructions can be found at: http://msdn.microsoft.com/en-

us/library/gg180729(v=VS.92).aspx

3.5 Windows Phone Application Analysis tool

Windows Phone apps must meet a set of certain performance criteria to be

published in the Windows Phone Store. There are certification requirements

regarding:

App launch time.

App responsiveness.

Maximum memory usage by the app. (15.)

The Windows Phone Application Analysis tool provides monitoring and profiling

options to evaluate and improve the quality and performance. (15.)

Profiling option allows you to evaluate either execution-related or memory-

usage aspects such as:

Application memory consumption.

App monitoring generates a detailed analysis page displaying graphs

and monitoring warnings. (16.)

The app monitoring option helps you to identify problems such as:

Slow startup time.

Slow response time to input, such as scrolling or zooming.

High battery drain.

Network latency.

High cost of network data

Poor performance as the quality of the network signal changes.

Out of memory errors caused by high resource usage. (17.)

Page 21: INTRODUCTION TO WINDOWS PHONE 8

21

3.6 Simulation Dashboard for Windows Phone

Often a developer tests an application under optimal conditions. The Simulation

Dashboard offers simulation options to ensure that the app performs well under

some unexpected scenarios that might occur in real life (18). Currently

simulation dashboard offers the following settings:

Network simulation for network speed and signal strength.

Lock screen simulation.

Reminder simulation. (18.)

3.7 Windows Phone Store Test Kit

Windows Phone Store Test Kit provides tests, which will help to determine

whether or not the app will pass Store certification. The tests are categorized

according to the way they run: automatically or manually. Automated tests

evaluate the basic criteria of the app. The manual tests require navigating

through the app and observing its behavior in several different conditions, in

order to ensure it meets the app certification requirements. (19.)

Page 22: INTRODUCTION TO WINDOWS PHONE 8

22

4 DISTRIBUTION

Windows Phone is only able to run applications that are distributed via the

Windows Phone Dev Center (formerly known as App Hub) or Windows Phone

Store (formerly known as Windows Phone Marketplace). (14.) (20.)

The Windows Phone Dev Center is a portal intended for developers and it

provides information on how to build, publish and manage apps. It offers

analytic tools for tracking app downloads for the following categories: free, paid,

trial and beta. (14.)

The Windows Phone Store supports trial options so that the customers can try

the application before making their purchase decision. The trial version can

often only be used for a limited time or it may have less features than the real

application. Developers can include an advertising model built into their

applications. The Windows Phone Store also supports in-app purchasing, which

allows buying things within the application. Developers are able to earn 70% of

total revenues. A registered developer can submit up to 100 free applications

for approval in any year without any fees. (20.)

The Windows Phone Store supports market-specific catalogs as well as

market-specific payment providers. The publisher is able choose the catalogs in

which the app is listed. (20.)

4.1 Private beta testing

Windows Phone Dev Center supports private beta testing to get feedback from

users before formally releasing the application. The service allows sending a

download link to up to 100 testers. Beta version can be used for up to 90 days,

after which the application is removed from their phones. (21.)

Page 23: INTRODUCTION TO WINDOWS PHONE 8

23

4.2 Targeted app distribution

Targeted app distribution is the process of releasing the application through the

Windows Phone Dev Center while keeping it hidden in the Windows Phone

Store. Like the beta testing process, the link for downloading the app can be

sent to a targeted set of users. (22.)

4.3 Approval process

A developer must read the Windows Phone Certification guidelines before

submitting applications to the approval process. In order to publish an

application it must go through an approvals process to make sure it meets a set

of criteria such as policy guidelines and certification requirement. If the

approvals process fails, a diagnostic report will be given. (23.)

Page 24: INTRODUCTION TO WINDOWS PHONE 8

24

5 IMPLEMENTATION

In this chapter I will implement some examples that, in general, use some of the

most popular and familiar features in mobile devices. These examples are

created bearing in mind their purpose as introduction material. They are hands-

on examples, which are kept user-friendly and accessible also for the untrained

eye. All the programming is done by using C#, XAML and the Visual Studio

2012 Express for Windows Phone 8.

5.1 Camera example

This camera example implements CameraCaptureTask class for taking

pictures. CameraCaptureTask handles all camera related work, because it uses

the built-in camera software. The application only needs to request it to start

and wait for the user to a take a picture.

IMAGE 3. Camera example on emulator

Page 25: INTRODUCTION TO WINDOWS PHONE 8

25

IMAGE 4. XAML (UI) code of this example

There are two UI controls implemented in this example: a Button

(startCameraButton) for starting the camera and an Image (capturedImage)

displaying captured picture. After a picture is successfully taken, it is shown on

the Image control (Image 3).

Page 26: INTRODUCTION TO WINDOWS PHONE 8

26

IMAGE 5. C# (program) code of this example

5.3 Location example

The Windows Phone can use multiple ways for determining where it is

geographically located. A standalone GPS system needs orbital information of

Page 27: INTRODUCTION TO WINDOWS PHONE 8

27

the satellites to calculate the current position. Sometimes this is not possible

due to poor signal conditions, or it might take some time. The phone could

supplement a hardware GPS device with information from the Web or cell

phone towers.

As explained in chapter 2.3.3 Windows Phone 8 supports location services to

continue to run in the background, even when the lock screen is engaged. This

is useful for long-running apps that need to continually update maps and

directions.

IMAGE 6. Location example on emulator

Page 28: INTRODUCTION TO WINDOWS PHONE 8

28

IMAGE 7. XAML (UI) code of this example

This location example has only a map control (map) in the UI.

Page 29: INTRODUCTION TO WINDOWS PHONE 8

29

IMAGE 8. C# (program) code of this example

Page 30: INTRODUCTION TO WINDOWS PHONE 8

30

6 CONCLUSION

The subject of my thesis came into existence after the target company decided

to expand mobile application development to cover the Windows Phone

Platform. I found this to be perfect opportunity to familiarize myself with the

platform. I had not worked with Windows Phone before, but I had been a happy

customer of the mobile phone for almost a year. I had previously also used

Visual Studio and C# in school and in some free-time projects.

Despite the fact Windows Phone is the youngest mobile platform, it provides

excellent development environment within the SDK. Visual Studio is maybe the

best IDE currently available and Blend introduces a unique way of creating user

interface. One could argue that C# combined with .NET libraries offer easy first

steps into programming. As proved in the chapter discussing implementation, it

takes only few lines of code to do cool things such as the control camera.

Moreover, the SDK offers ways for testing and quality assurance that I have

never seen before.

At the time I started working on this thesis, the Windows Phone 8 SDK was just

about to get released. After the actual release, there were no published books

available, only online documentation. Together with the time restriction, this was

maybe the biggest challenge in the process. Personally, I felt that I learned a

lot.

The new “Metro” user interface offers a unique option for a consumer. It can be

praised for simplicity as well. Windows Phone runs surprisingly well on the

cheapest hardware allowed. One reason for this is the tight conditions set for

applications. Unfortunately, this comes with a price; when an application gets

paused, there are only a few limited options left for the developer. It could be a

deal breaker for some.

Page 31: INTRODUCTION TO WINDOWS PHONE 8

31

The battle between the different mobile platforms is fierce. Time will tell if

Windows Phone 8 becomes a success story. Microsoft and Nokia are playing

with high stakes. There is no way to bluff and no way to fold at this point. It is

all-in.

Page 32: INTRODUCTION TO WINDOWS PHONE 8

32

7 REFERENCES

1. Yle. 9 February 2011. Elop's Burning Platform Memo Raises Expectations.

Available at:

http://yle.fi/uutiset/elops_burning_platform_memo_raises_expectations/5319918

Date of retrieval 30 October 2012.

2. Wikipedia. 2012. Windows Phone. Available at:

http://en.wikipedia.org/wiki/Windows_Phone. Date of retrieval 25 November

2012.

3. Albert Shum, Michael Smuga, Chad Roberts. CL14: Designing Windows Phone

7 Series – MSDN. Available at:

http://ecn.channel9.msdn.com/o9/mix/10/pptx/CL14.pptx. Date of retrieval 30

October 2012.

4. Microsoft. 25 September 2012. Hardware Specifications for Windows Phone.

Available at: http://msdn.microsoft.com/en-us/library/ff637514(v=vs.92).aspx.

Date of retrieval 30 October 2012.

5. Justin James, 24 May 2011. Windows Phone 7 tombstoning explained.

Available at: http://www.techrepublic.com/blog/smartphones/windows-phone-7-

tombstoning-explained/2789. Date of retrieval 25 November 2012.

6. Brandon Bray, 30 October 2012. Announcing the release of the .NET

Framework for Windows Phone 8. Available at:

http://blogs.msdn.com/b/dotnet/archive/2012/10/30/announcing-the-release-of-

the-net-framework-for-windows-phone-8.aspx. Date of retrieval 8 November

2012.

7. Microsoft. 8 November 2012. What's new in Windows Phone SDK 8.0. Available

at:

Page 33: INTRODUCTION TO WINDOWS PHONE 8

33

http://msdn.microsoft.com/library/windowsphone/develop/jj206940%28v=vs.105

%29.aspx. Date of retrieval 21 November 2012.

8. Joe Belfiore, 20.6.2012. Announcing Windows Phone 8. Available at:.

http://blogs.windows.com/windows_phone/b/windowsphone/archive/2012/06/20/

announcing-windows-phone-8.aspx. Date of retrieval 31 October 2012.

9. Paul Thurrott, 27.7.2012. Windows Phone 8: Notes from the SDK. Available at:

http://winsupersite.com/article/windows-phone-8/windows-phone-8-notes-sdk-

143827. Date of retrieval 30 October 2012.

10. M. Daou, 26.7.2012. Windows Phone 8 Application platform detailed. Available

at: http://www.mobiletechworld.com/2012/07/26/windows-phone-8-application-

platform-detailed. Date of retrieval 30 October 2012.

11. Microsoft. 16 November 2012. Launching, resuming, and multitasking for

Windows Phone. Available at: http://msdn.microsoft.com/en-

us/library/windowsphone/develop/jj207014(v=vs.105).aspx. Date of retrieval 25

November 2012.

12. Microsoft. 16 November 2012. Background agents for Windows Phone.

Available at: http://msdn.microsoft.com/en-

us/library/windowsphone/develop/hh202942(v=vs.105).aspx. Date of retrieval

25 November 2012.

13. Microsoft. 25 September 2012. How to: Register Your Phone for Development.

Available at: http://msdn.microsoft.com/en-us/library/ff769508(v=vs.92).aspx.

Last access day. 8 November 2012.

14. Ash Wahi, 7 August 2012. Meet the Windows Phone Dev Center. Available at:

http://blogs.windows.com/windows_phone/b/wpdev/archive/2012/08/07/meet-

the-windows-phone-dev-center.aspx. Date of retrieval 8 November 2012.

Page 34: INTRODUCTION TO WINDOWS PHONE 8

34

15. Microsoft. 8 November 2012. Windows Phone Application Analysis. Available

at: http://msdn.microsoft.com/en-

us/library/windowsphone/develop/hh202934(v=vs.105).aspx. Date of retrieval

12 November 2012.

16. Microsoft. 8 November 2012. App profiling for Windows Phone. Available at:

http://msdn.microsoft.com/en-

us/library/windowsphone/develop/jj215908(v=vs.105).aspx. Date of retrieval 12

November 2012.

17. Microsoft. 8 November 2012. App monitoring for Windows Phone. Available at:

http://msdn.microsoft.com/en-

us/library/windowsphone/develop/jj215907(v=vs.105).aspx. Date of retrieval 12

November 2012.

18. Microsoft. 8 November 2012. Simulation Dashboard for Windows Phone.

Available at: http://msdn.microsoft.com/en-

us/library/windowsphone/develop/jj206953(v=vs.105).aspx. Date of retrieval 12

November 2012.

19. Microsoft. 8 November 2012. Windows Phone Store Test Kit. Available at:

http://msdn.microsoft.com/en-

us/library/windowsphone/develop/hh394032(v=vs.105).aspx. Date of retrieval

12 November 2012.

20. Wikipedia. 2012. Available at:

http://en.wikipedia.org/wiki/Windows_Phone_Store. Date of retrieval 12

November 2012.

21. Microsoft. 8 November 2012. Beta testing your app and in-app products.

Available at: http://msdn.microsoft.com/en-

us/library/windowsphone/help/jj215598(v=vs.105).aspx. Date of retrieval 12

November 2012.

Page 35: INTRODUCTION TO WINDOWS PHONE 8

35

22. Microsoft. 8 November 2012. Targeted app distribution. Available at:

http://msdn.microsoft.com/en-

us/library/windowsphone/help/jj619160(v=vs.105).aspx. Date of retrieval 12

November 2012.

23. Wikipedia. 2012. C Sharp (programming language). Available at:

http://en.wikipedia.org/wiki/C_Sharp_(programming_language). Date of retrieval

25 November 2012.

24. Microsoft. 8 November 2012. Background agent best practices for Windows

Phone. Available at: http://msdn.microsoft.com/en-

us/library/windowsphone/develop/hh202944(v=vs.105).aspx. Date of retrieval

25 November 2012.

25. Microsoft. 8 November 2012. XAML overview (Windows Store apps using

C#/VB/C++ and XAML) (Windows). Available at: http://msdn.microsoft.com/en-

http://msdn.microsoft.com/en-us/library/windows/apps/hh700354.aspx. Date of

retrieval 25 November 2012.