Qt to WP7 - Chapter 1: Introducing Windows Phone Platform to Symbian Qt Application Developers

Date: Monday, September 19, 2011, 5:05:25 PM

Tags: Qt

Table of Contents

< Back to Qt to WP7 Guide contents

Ever since the release of Windows Phone (WP) platform, developers from around the globe rushed to develop applications for this platform. Now, WP devices are available with manufacturers all over the world. A large number of applications are already available in the WP marketplace.

For WP, Microsoft went back to the drawing board to figure out what phone users really want and built a phone from the ground up. The operating system, the user experience and the application development platform have all been engineered with users in mind. The revenue opportunities in the Windows Phone marketplace, accompanied by a great set of development tools, make WP a very attractive destination for developers to build applications and games.

Windows Phone Developer Tools

A good and practical-oriented approach to start with WP development is to get familiar with the WP application development tools. Microsoft recommends using certain tools for WP application development. WP application development toolset is free and can be downloaded from MS Developer App Hub.

The toolset includes:

  • An IDE (for developers): Visual Studio Express for Windows Phone
  • A UI design tool (for designers): Express Blend for Windows Phone
  • Silverlight for Windows Phone and XNA Game Studio for Windows Phone
  • Windows Phone emulator to test and debug applications

The tools are designed to let you develop consumer applications, business applications and games. WP tools are introduced in more detail in chapter 3.

Windows Phone Architecture

Before getting into details of WP application development, it's important to get familiar with the WP overall architecture. WP utilizes a layered software and application architecture that is designed to run on multiple phones. To provide a consistent user experience and features that you can rely on, WP also defines a minimum set of hardware requirements that all WP phones must meet.

Windows Phone Hardware Foundation

The WP hardware specification includes the following hardware requirements for WP phones:

  • ARM7 CPU
  • A DirectX capable GPU
  • Camera
  • Multi-touch capacitive display
  • Standard sensors include:
    • A-GPS
    • Accelerometer
    • Compass
    • Proximity and light sensors
    • Gyroscope

There are three standard buttons on the WP phone: Back, Start and Search. As we will see in subsequent sections, these buttons provide an easy and natural navigation model for the user.

In WP, Microsoft provides most of the device driver code. A device manufacturer has to write very little device-specific code. This improves the consistency and quality across various devices. WP takes advantage of hardware acceleration through encapsulation layers, such as DirectX or XNA.

Windows Phone Software Platform

The WP software and application platform architecture is made up of four main components, as illustrated in the following picture.

Windows Phone application platform architecture

WP Runtimes, i.e. Silverlight and the XNA Framework, along with Windows Phone -specific features, combine to provide a mature environment on which to build secure and graphically rich applications. WP Tools, namely Visual Studio and Expression Blend, create a complete developer experience for quickly creating, debugging, deploying and updating applications.

WP Cloud Services, i.e. Windows Azure, Xbox LIVE Services, Notifications services and Location services along with a variety of other web services, allow developers to share data across the cloud and provides a seamless experience across devices. WP Portal Services and the Windows Phone Marketplace provide robust services allowing developers to register and certify and market their applications.

Managed Code in Windows Phone

As you already know, Symbian Qt Quick and C++ applications are built directly as target platform binary executable. In contrast, WP only supports " managed code" applications using C# or VB.NET; WP applications are built to intermediate language byte code and associated metadata.

.NET Common Language Runtime (CLR) manages the execution of such code within sandboxed environment. CLR provides garbage collection and there is no memory management to worry about or pointers to take care of. The WP application stack is built on the .NET compact framework. The .NET compact framework is optimized for resource constrained devices and is designed to be portable across various hardware platforms.

Windows Phone Application Development Frameworks

It's time to get a bit closer to the WP application development. As a Symbian Qt developer you have become familiar with using Qt Quick, numerous Qt modules and Symbian native frameworks in your applications.

In WP, applications are developed using various WP application development frameworks, most important of which are Silverlight and XNA frameworks that encapsulate several important and essential fundamental features of applications. WP application development architecture is illustrated in the picture below.

Windows Phone application development architecture

In Symbian, the cross-platform Qt is the recommended application development framework. However, it's also possible to develop applications utilizing Symbian native frameworks. The following table gives an overview of the WP application development frameworks that provide features comparable to the Symbian Qt modules and Symbian native frameworks.

;

Symbian Qt modules

Symbian native frameworks

Functionality

Windows Phone application development frameworks

Qt Quick, Qt Mobility

AVKON, Sensor Framework, Camera Framework

Application UI, Device integration (sensors, camera)

Silverlight, Windows Phone Frameworks

Qt Quick, Qt Framework Graphics and GUI modules, Qt Mobility

Graphics package, Animations API, Multimedia APIs and Frameworks

Graphics, Animation, Media

XNA Frameworks for games, Silverlight Presentation and Media for consumer and business applications

Qt Quick, Qt Framework Engine and Core modules

Generic OS Services, Networking Services, User Library, XML Services, Persistent Storage and File Server

Base services, Networking, Text, XML, storage

Common Base Class Library

Symbian

;

OS layer

Windows Phone

Symbian Qt, Symbian native and Windows Phone application development compared

See Application platform overview for Windows Phone for more information about WP application development.

Windows Phone Applications

As a Symbian Qt developer you are well aware that in Symbian Qt the preferred application development framework is Qt Quick introducing QML-based UIs. However, Symbian application development platforms have evolved over times so currently there co-exist several applications & games utilizing either Qt widgets, native Symbian frameworks or customized UIs.

In WP, you can develop applications using Silverlight Presentation and Media and XNA Frameworks, with the support of Windows Phone Frameworks and Common Base Class Library. Generally, it has been recommended that WP application developers use Silverlight for consumer & business applications and XNA for games.

However, you can certainly develop great games using Silverlight animation or wonderful rich media consumer applications using XNA framework. In addition, starting from WP OS 7.1, it is also possible to mix Silverlight and XNA content in the same application.

The following table summarizes common archetypes of Windows Phone applications and their counterparts in Symbian Qt.

Symbian Qt applications

Windows Phone applications

Symbian native or Symbian Qt Quick & Qt widget applications with stack or tab based navigation between pages

Silverlight consumer and business applications with pages connected by flows

Symbian Qt Quick or customized UI games with OpenGL-es 2D and 3D graphics

XNA games with 2D / 3D graphics and XBOX connectivity

Symbian and Windows Phone application archetypes

See Silverlight and XNA frameworks for Windows Phone for more information about using Silverlight and XNA in WP application development.

Note: Advertisements can be published both in Silverlight and XNA based applications through Microsoft Advertising SDK.

Silverlight Presentation and Media

For developing rich and event-driven internet application -style consumer and business applications in WP, Silverlight is the preferred option.

Comparable to the declarative QML user interface language used in Qt, Silverlight uses a declarative language called Extensible Application Markup Language (XAML) to specify user interfaces. You can use separate code-behind files, written in C# or VB.NET, to respond to events or manipulate the controls.

A large set of Silverlight UI controls is specifically designed for the WP OS look and feel and support multi-touch. Silverlight also provides high performance audio and video. It supports both vector and bitmap graphics with hardware acceleration.

Bubble Level Silverlight is a basic example of a Silverlight application. It demonstrates the usage of accelerometer sensor to calculate the inclination of the device and presents this as a traditional bubble level. Bubble Level Silverlight is a WP Silverlight port of a similar Symbian Qt application Bubble Level Qt.

The following emulator screenshots illustrate the user interface of Bubble Level Symbian Qt and WP Silverlight versions.

Qt Simulator screenshot of Bubble Level Symbian Qt UI

;

WP Emulator screenshot of Bubble Level Silverlight UI

See Bubble Level Silverlight for more information about Bubble Level Silverlight and porting experiences between Symbian Qt and WP Silverlight.

XNA Frameworks

For developing high performance games enabling immersive and fun gaming and entertainment experiences in WP, XNA framework is the preferred option.

The XNA framework is composed of software, services and resources focused on enabling game developers to be successful developing on Microsoft gaming platforms like Windows Phone, Xbox 360, Zune HD and Windows 7.

The XNA framework, originally developed for Xbox, provides hardware accelerated 2D and 3D rendering and bitmap graphics. XNA also provides gamer services such as authentication and connectivity with Xbox Live, as well as Profiles and Leaderboards.

Moto Trial Racer XNA is a basic example of a XNA game. It's a motorcycle racing game demonstrating the usage of XNA Game Studio 4.0 and especially Box2D.XNA. Moto Trial Racer XNA is a WP XNA port of a similar Symbian Qt game Moto Trial Racer Qt.

The following device screenshots illustrate the user interface of Moto Trial Racer Symbian Qt and WP XNA versions.

Device screenshot of Moto Trial Racer Symbian Qt UI

Device screenshot of Moto Trial Racer WP XNA UI

See Moto Trial Racer XNA for more information about Moto Trial Racer XNA and porting experiences between Symbian Qt and WP XNA.

Windows Phone Frameworks

Windows Phone Frameworks define common building blocks for WP applications, such as application frame and page structures and application activation / deactivation mechanisms. In addition, Windows Phone Frameworks provide WP applications the interface to system and hardware resources.

In Qt, WebKit browser and widgets can be utilized for displaying HTML and other web content. If you need to use HTML in your WP application, you can use the Windows Phone Frameworks Internet Explorer based web browser control for HTML UI.

Windows Phone Frameworks layer also provides interfaces to various sensors, such as the accelerometer, compass and gyroscope. Camera access is also provided. As a comparison, in Symbian Qt access to device sensors is available through Qt Mobility Sensors API. Camera is accessible through Qt Mobility Multimedia API.

Microsoft provides a push notification service, called Microsoft Push Notification Service, as part of Windows Phone Frameworks. In Symbian Qt, real-time push notifications can be added to client applications using Qt Notifications API.

Common Base Class Library

In Symbian Qt, common services are available through a variety of Qt Framework modules and, to small extent, through Qt Quick and Qt Mobility. In WP, corresponding base services are provided by Common Base Class Library. WP Common Base Class Library encapsulates a large set of common functions and core services such as base classes, collections, threading, text processing and IO.

The WP Common Base Class Library layer also includes:

  • Networking stacks: such as HTTP and the Windows Communication Foundation (WCF). WCF provides an easy interface with XML and SOAP services across the Web, with features supporting the XML data transfer, serialization, deserialization and XML parsing.
  • Database support: One of the new features in WP OS 7.1 is support for local SQL databases. You can write SQL-like queries in C# using Language Integrated Query (LINQ) to query XML data, stored in isolated storage or in remote databases such as SQL Azure.

Summary

In this chapter we looked at the WP overall architecture and application development frameworks compared to the corresponding Symbian Qt and Symbian native programming modules. Now that you have an overall picture of the WP platform and a high-level idea of how the WP programming frameworks map to the Symbian Qt and Symbian native programming modules, it's time to go one level deeper. In the next chapter, we will look at the application design and user interface guidelines of WP applications.

Related Resources

To learn more about the topics covered in this blog, visit:

Other Resources you may find useful:

< Back to Qt to WP7 Guide contents

 
blog comments powered by Disqus