Chapter 1. Introducing Windows Phone 7 and the Windows Phone Platform

This is an exciting time for developers as the smartphone race heats up between major players Microsoft Windows Phone, Apple iPhone, and Google Android. As a developer, you are faced with an amazing opportunity to develop a mobile application that can be sold to millions of consumers worldwide using any of the platforms (Windows Phone, iPhone, and Android). By 2014 Gartner predicts that the smartphone market will boom and there will be billions of dollars at stake. This could well be the next big "dot com boom" that everyone's been waiting for.

Recently, Nokia, one of the largest mobile phone makers in the world, announced that it will replace its Symbian-based operating system (OS) with a Windows Phone 7 OS. The partnership between Microsoft and Nokia will potentially boost Windows 7's global market share to 30 percent, making it even more attractive for Windows Phone 7 developers.

The Marketplace for Windows Phone, where consumers can purchase applications, opened in November, 2010. You might consider downloading Zune software from www.zune.net/en-US/products/software/download/downloadsoftware.htm to view the current Marketplace. Once you have downloaded the Zune software and fired it up, click marketplace APPS links, and you will be able to see all the Windows Phone applications currently published, as shown in Figure 1-1. You will learn more about the Marketplace in Chapter 5.

Windows Phone Marketplace

Figure 1.1. Windows Phone Marketplace

There are hundreds of ideas for applications still waiting to be discovered and developed by you. Take a look at QuotedSuccess, DuckCaller, and a MobileBaseball game, shown in Figure 1-2. Which of these will be among the first Windows Phone hits to catch fire with consumers and sell millions of units?

Windows Phone applications

Figure 1.2. Windows Phone applications

What application will you be developing? We've written this book to guide you through the steps it takes to write and launch a successful application to the Marketplace. So what are you waiting for? Let's get started by diving into what Windows Phone has to offer to developers like you.

Windows Phone Overview

Microsoft Windows Phone is a great consumer phone because it has all of the features to which users have become accustomed thanks to the Apple iPhone and Android-powered smartphones like the Motorola Droid and HTC Incredible. These features include multitouch screen, a beautiful user interface (UI) that implements a new modern design named Metro, social networking services like Facebook, and support for popular e-mail accounts such as Yahoo, Hotmail, Google, AOL, and, if you're a corporate user, Microsoft Exchange. Uniquely, the phone ships with a version of Microsoft Office that you can use to read, edit, save, and synch any Word files, Excel spreadsheets, and other Office formats, making it a great phone for those who use Office at home or in the office. Windows Phone can also integrate with Xbox LIVE, making it a great choice for gamers.

Microsoft Windows Phone uses the Zune software to sync installed applications, pictures, music, and back up and flash OS updates. As a developer, you'll also use Zune in conjunction with Visual Studio to debug your applications on a real device; more on that in Chapter 4.

Microsoft also introduces the concept of a hub with the Windows Phone: a People hub where users can store all of their contacts and social networking connections; a Music hub where consumers can listen to, download, and purchase music; and an App Hub, also known as the Marketplace, which you will be most interested in since you will be publishing the application you create.

Having a phone that's a hit with consumers is important because the consumer marketplace is where the greatest opportunities lie. One of the great things about Windows Phone is that Microsoft imposes the hardware specifications on the phone manufacturer, making it easy for you to develop an application without worrying about writing special codes for the specific devices. For any future release of the phone, you are guaranteed that the application you write today will work regardless of the brand of the phone.

Naturally, you want to know what language you'll need to master for your work. For Windows Phone, the language of choice today is C# and Visual Basic (VB). As for an application development framework, you have two choices: Silverlight or XNA. Silverlight and XNA both use core .NET Framework. You will learn more about the two frameworks later in this chapter, but first let's take a closer look at the hardware features you can expect on a Windows Phone.

Windows Phone Hardware Specifications

Knowing what's included in the Microsoft Windows Phone hardware specifications will help you prepare for the special needs of the projects you'd like to attempt. Table 1-1 lists the minimum hardware requirements any Windows Phone manufacturer must meet and also includes suggestions as to how they can impact developers like you.

Table 1.1. Windows Phone Minimum Hardware Requirements

Hardware Feature

Description

Must display at WVGA (800 x 480)

Having to worry about only one screen resolution makes it easy to develop an application.

Four-point multi-touch capable

This is unique to the Windows Phone, and you can use this feature to create four-player games. There is definitely room for innovation for using this particular feature.

DirectX 9 hardware acceleration

This means the phone will have a graphical processing unit (GPU), allowing graphically intense tasks to be offloaded to the graphics chips of the phone. This will help you create very smooth and responsive applications and games. This also means 3D games are possible.

GPS

With this, you'll be able to create location-aware applications. See Chapter 14 to learn about location services, how to use Bing Maps, and how to plot GPS data on the map.

Accelerometer

This feature will measure the change of the acceleration in the phone. The accelerometer can be used in games or in creating utility applications, like a level. See Chapter 6 to learn more about this feature.

Compass

With this, you can find north, south, east, and west.

Light

This feature can be used as a flash for the camera.

Digital Camera

This allows you to take pictures and share them on Facebook and other social networking sites. Learn more about this feature in Chapter 16.

Hardware controls: Back, Start, and Search buttons

Every phone will have three buttons on the front of the phone. Keep in mind that you will be required to use Back buttons for going backward in your application, because having separate Back buttons in the application might confuse the user. Learn more about integrating the hardware buttons into the application in Chapter 10.

Support data connections: cellular network and Wi-Fi

This feature allows you to connect to the Internet. You can create web services and consume them from your applications, or you can consume third-party APIs like Twitter or Facebook in your application.

256MB of RAM and 8GM flash storage

Keep in mind that your application can use only 90MB of memory unless the device has more memory than 256MB. If your application does not respect this, it will not pass the Marketplace certification process. See Chapter 5 for more details.

 

Also, the 8GB of flash memory used for storage is shared among other applications, so if you are saving any kind of static data into the Isolated Storage, you must check if the space is available and handle the exception appropriately. See more details on this in Chapter 13.

AT&T had announced it would carry Samsung's Focus, LG's Quantum, and HTC's SurroundTM. And T-Mobile had announced it would carry HTC's HD7. For those who have other cell phone providers, Dell ships its Venue Pro. You can find more information on the release of these phones at www.microsoft.com/windowsphone/en-us/buy/7/phones.aspx.

In the next section, you will learn how the software behind these powerful consumer phones provides a great development platform for developers.

Windows Phone Application Platform

Microsoft did not invent any new languages or frameworks for the Windows Phone application platform. The company simply adapted its existing frameworks. This means that you will be able to program using C# and VB with the .NET Framework). What .NET provides is a common base class library that every Microsoft .NET programmer will be familiar with; it includes support for multithreading, XML, Linq, collections, events, data, exceptions, IO, service model, networking, text, location, reflection, globalization, resources, runtime, security, and diagnostics.

On top of the core .NET Framework, the Windows Phone application platform consists of two major frameworks: Silverlight and XNA. You'll use Silverlight primarily for business applications and simple 2D games. Silverlight uses the Extensible Application Markup Language (XAML), a declarative markup language for creating compelling UI. Designers will have tremendous flexibility in creating UIs for Windows Phone; by using familiar tools like Adobe Illustrator, Photoshop, and Microsoft Expression Design, they can create a vector-based UI that can be easily exported to XAML. XNA is primarily used for creating games; the framework comes with a game engine that allows you to create loop-based games and a 3D engine that allows you to create 3D games.

In the following sections, you will learn more details about the main components of the Windows Phone application platform: Silverlight, XNA, tools, and cloud services.

Silverlight for Windows Phone

The interesting thing about Silverlight is that Silverlight is used in the web technology that is browser plug-in that enables rich Internet application, desktop application quality to be enabled in all major browsers. Silverlight provides you with a sandboxed experience that behaves and abides by the rules of the web browsers; in other words, within a Silverlight application, you can't access the native OS unless you have the necessary APIs. This architecture makes Silverlight very compelling for use in Windows Phone from a security standpoint because Windows Phone provides the same restriction of providing APIs only to developers and limiting access to the native OS.

Another plus is that Silverlight uses XAML, which can be used to declare vector-based graphics and create animations. Any designer familiar with vector-based applications like Adobe Illustrator and Microsoft Expression Design can easily create highly visual elements in vector that can be exported out to XAML. This means the designers have full control over the layout, look and feel, and graphical assets, making Silverlight an extremely powerful choice for creating consumer-oriented applications. Also XAML provides a powerful data binding feature to the controls, making it ideal for creating business oriented applications.

XNA for Windows Phone

Like Silverlight, XNA is not a new technology. XNA is used in creating Xbox games via managed code. It is a natural choice for creating games since Windows Phone has Xbox LIVE integration, allowing XNA-based Xbox games to be easily posted over to Windows Phone. The only thing Xbox game developers have to worry about is screen resolution, which can easily be adjusted and fixed.

XNA provides a rich framework for game developments, including a game loop engine, 2D and 3D engines, and the ability to manage game assets like models, meshes, sprites, textures, effects, terrains, and animations.

Tools

You can download the tools you need for developing Windows Phone applications from http://create.msdn.com/en-us/home/getting_started. The Getting Started page also features rich documentation and tutorials. You should also consider downloading The UI Design and Interaction Guide to understand the Metro design guidelines that Microsoft encourages you to follow when developing applications.

Visual Studio

If you don't have a paid version of Visual Studio 2010 on your development machine, then the development tool that you have downloaded from Microsoft will install a free version of Visual Studio 2010 Express for Windows Phone, as show in Figure 1-3. Visual Studio is absolutely necessary because it can be used to design, debug, create projects, package, and automatically generate package manifests. It also includes a phone emulator on which to test the results of your work. In Chapter 5, you will learn to debug and run the emulator from Visual Studio; you will also use Visual Studio to create a package for publication to the App Hub.

Microsoft Visual Studio 2010 Express for Windows Phone

Figure 1.3. Microsoft Visual Studio 2010 Express for Windows Phone

Expression Blend

You will need Expression Blend if you want to develop compelling applications using Silverlight for Windows Phone, as shown in Figure 1-4. Typically Expression Blend is used by designers, and many of the Expression Blend functionalities are similar those in Adobe Illustrator, Photoshop, or Expression Design. Note that you can import any Illustrator and Photoshop files into Expression Blend; if you are using Expression Design, you can export Expression Design file directly to an XAML file.

Expression Blend also provides a way to create animation sequences. Although you can create animation in Visual Studio using XAML, it would be very difficult to write complex XAML code to represent complex graphics or animation sequences. It is best to leave complex graphics and animations to Expression Blend.

Microsoft Expresion Blend 4 for Windows Phone

Figure 1.4. Microsoft Expresion Blend 4 for Windows Phone

Windows Phone Emulator

The Windows Phone emulator, seen in Figure 1-5, is integrated with Visual Studio and simulates a real device. However, there are things you can't do in the emulator. For instance, you can't test any features that require a physical device, such as the accelerometer, GPS, compass, FM radio, SMS, e-mail, phone calling, contact list, and camera.

There is, however, a technique called Reactive Extensions that you can use to simulate the data feed from a real phone. In Chapter 18, you'll learn how to use Reactive Extensions to simulate the accelerometer and GPS readings so that you can work with the emulator without the need of the device.

Windows Phone emulator

Figure 1.5. Windows Phone emulator

Documentation and Support

There are many ways to get help if you get stuck on a problem while developing your application. The Windows Phone 7 Training Kit at http://create.msdn.com/en-us/home/getting_started contains how-tos on specific technology. You can go to http://forums.silverlight.net/forums/63.aspx to ask Silverlight for Windows Phone-related questions; if you have other Windows Phone-related questions, you can visit http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series. The Windows Phone development team puts out many useful blogs that you can follow at http://windowsteamblog.com/windows_phone/b/wpdev/. Of course, there is Windows Phone documentation at MSDN; go to http://msdn.microsoft.com/en-us/library/ff402535(VS.92).aspx.

Cloud Services

Working with a Windows Phone application that requires saving data to a database is a tricky thing. The first big problem is that you don't know how popular your application will be; if it becomes popular, you might suddenly find millions of users using your application and saving the data to its database at a rate that would require an enterprise-level solution. You also need to find a web service to provide APIs to your application to save to the database, because Windows Phone applications can't directly connect to the database.

This is where the Microsoft Azure cloud comes in. Microsoft Azure provides Windows Azure service for deploying services (WCF, Windows service) and SQL Azure for the database that allows you to scale infinitely as your demand grows larger. You will learn more about the Microsoft Azure cloud in Chapter 3.

There are also Bing Maps services that you can use freely. Bing Maps is free only if you are developing a Windows Phone application. Along with Bing Maps services, Microsoft provides Bing Maps controls in Silverlight that you can use in Windows Phone. You will learn about Bing Maps and location services in Chapter 14.

Push notification services are hosted in the cloud as well; these allow you to push messages to the phone—a very powerful messaging mechanism. You will learn more about this in Chapter 17. Xbox LIVE services also reside in the cloud, which you can take advantage of in your application; however, this topic will not be covered in this book.

You learned a bit about Windows Phone and the Windows Phone platform in the previous sections. In the following sections, you will learn about Windows Phone application development from beginning to end.

Metro Design

Microsoft is targeting Windows Phone 7 toward busy professionals. In order to provide a compelling UI, Microsoft came up with the Metro design. The Metro design derives from the transportation industry typography and visual designs where busy professionals constantly scan and go; because of this, Metro design puts heavy emphasis on simple and clean designs.

Metro design follows five principles. The first principle emphasizes ideas like clean, light, open, and clutter-free and attributes like simple-to-read typography because consumers will be using the phone to read e-mail, SMS, Facebook, and Twitter while on the go. The second principle of Metro design puts the focus on content, where the design premise is geared toward presenting the content. The third principle focuses on seamless integration of hardware and software. The fourth principle puts an emphasis on gestures, where the design enables a world-class multitouch user experience. Lastly, the Metro design concept focuses on an application that is soulful and alive, where information that matters most to the user is presented in a way that is easily accessible by a touch. You can find out more about Metro design by downloading the document provided by Microsoft at http://go.microsoft.com/fwlink/?LinkID=183218.

Application Development Life Cycle

Understanding the application life cycle will help you prepare for it. Much more in-depth discussion, including the certification process, is covered in Chapter 5. Figure 1-6 illustrates a high-level view of the life cycle of an application.

Application development life cycle

Figure 1.6. Application development life cycle

As a developer, you will start out at the App Hub by registering your Windows Live ID (or you'll create one). Once signed up at the App Hub, you register your physical device so you can debug in the real device. Remember that you can add up to three devices. Using Visual Studio and/or Expression Blend, you will be creating your application and debugging using the emulator or the device you registered. Once the application is created, you need to submit the application to the certification process.

In order to ensure that your application will pass the Marketplace certification process, it's a good idea to read and understand the application certification document found at http://go.microsoft.com/?linkid=9730558. As part of the certification process, your application will go through a series of validations against the application and content policies, packaging, code, phone feature disclosure, language, and images requirements. Your application will also get tested on reliability, performance, resource management, phone functionality uses, and security. The certification process is in place to help promote quality applications to consumers, to protect consumers from malware, and protect Microsoft services.

Once the application passes the certification process, it will be deployed to the Marketplace and then downloaded and used by the consumer. The consumers who use your application will provide ratings and comments; reports can be generated from the App Hub for details on how your application is performing in the Marketplace. Based on the feedback you receive, you can choose to deploy an updated version with bug fixes and new features. Your ultimate goal is to create a compelling application that you know consumers will use and to publish this application to the Marketplace. The Marketplace costs $99 annually; this gives you access to the Windows Phone Marketplace and the Xbox 360 Marketplace. In the Windows Phone Marketplace, you can submit an unlimited number of paid applications and five free applications; additional submissions cost $19.99. In the Xbox 360 Marketplace, you can submit up to ten games.

You will be able to observe any Marketplace activities through the report provided, such as comments, ratings, and number of apps sold, so that you can effectively improve sales and marketing efforts.

When your application is bought by consumers, Microsoft takes 30 percent of the app price; you get to keep 70 percent. You can choose direct deposit so that the money goes directly to your bank account; you will be receiving your payments every first day of the month from Microsoft.

Summary

You have embarked on the journey of developing an application for the Windows Phone Marketplace, which is ready to be explored by developers like yourself. You can be part of a billion-dollar global market; you have a chance to develop an application that can be sold to millions.

This chapter provided a general overview of Windows Phone features, hardware specifications, the development platform, and the Marketplace. In later chapters, you will learn in greater detail about the features and the platform mentioned in this chapter. In Chapter 2, you will build your first Windows Phone application by using tools like Visual Studio, Expression Blend, and the Windows Phone controls.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset