Porting from Windows Phone to Qt

Windows Phone applications are written in C# and XAML, so direct code-level reuse is not possible when porting to Qt. Typically, the application design and assets can be reused, with the UI being redesigned and reimplemented using Qt Quick or OpenGL ES. The application logic can be rewritten using Qt Quick and Qt C++ as needed. Utilising underlying native platform APIs in reimplementation may also be worth considering when porting some performance-critical or graphics-intensive applications.

When porting Windows Phone Silverlight application to Qt, the logic of the application UI won't probably need many changes, because both Windows Phone and Qt use page-based application navigation. For Windows Phone applications using the XNA framework, such as games, some level of UI redesign is likely to be needed. For information on mapping Windows Phone UI designs to Qt, see Mapping Windows Phone UI to Qt Quick.

Choosing a UI technology

Two main options for implementing an application UI in Qt are Qt Quick and OpenGL ES. When porting to Qt, the UIs of most applications and games, especially those without a significant use of real-time graphics, can be rewritten using Qt Quick and the original graphics assets. XNA 3D games, games with fast graphics, and even applications that use special graphics effects are best ported using OpenGL ES. For 2D games implemented with Silverlight, Qt Quick could be a good choice.

Qt Quick UI, constructing of QML and Qt Quick Components, allows different UI porting approaches depending on the porting strategy. The main purpose of QML is to enable fast and easy creation of custom UIs. Ready-made Qt Quick Components can be used independently or embedded with custom QML UIs to create UIs that are consistent with the native Symbian Anna, Symbian Belle and N9 UI styles. You have three options to choose from when using Qt Quick Components:

  1. Built-in elements for all platforms.
  2. Qt Quick Components for Symbian.
  3. Qt Quick Components for MeeGo/Harmattan.

Last updated 17 November 2011

Back to top