Meego Wiki
Views

Qt across (Maemo-)MeeGo & Symbian

From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(Created page with "== Background == The introduction of the Nokia Qt SDK enables great ideas to become reality, in a cross platform way. "Code once, deploy everywhere" is more than just a slogan f…")
(categorize)
 
(35 intermediate revisions not shown)
Line 1: Line 1:
== Background ==
== Background ==
-
The introduction of the Nokia Qt SDK enables great ideas to become reality, in a cross platform way. "Code once, deploy everywhere" is more than just a slogan for latest Qt releases and the recent additions of API stack like Mobility, QMF stretches what you can do by purely using the Qt framework.
+
The introduction of the Nokia Qt SDK enables great ideas to become reality in a cross platform way. "Code once, deploy everywhere" is not just a slogan for the latest Qt releases. The recent additions of API stacks like Mobility, QMF and sensors stretch what you can do with just the Qt framework. This allows great exploitation of the underlying platform while maintaining straightforward API usage and relatively relaxed learning curve.
 +
 
 +
The latest additions have been exemplified mostly on Nokian mobile Linux computer platforms. I would like to be able to offer Symbian developers the same great building blocks to build great software using pure Qt just as it is slowly being realized on the N900/Maemo/MeeGo.
 +
 
 +
I think this is very important in order to keep the Symbian offering alive, current, and to prevent it from falling behind the Mobile Linux computers application development offering. I feel this is important in order to revive the Symbian experience, as historically developing for the platform required specific lowlevel platform knowledge and usage of somewhat exotic development, signing and deployment paradigms that are even to date, considered by Symbian developers hard and unpleasant.
 +
 
 +
I would like to change this and make Symbian development fun, educational and rewarding through the latest Qt offerings, removing as much as possible the historic barriers. Nokia's latest changes to the signing and individual app publishing are great steps towards that, as an example.
 +
 
 +
 
 +
== Breakdown to milestones  ==
 +
 
 +
To make the MeeGo-Symbian cross application development experience complete I would like to pursue:
 +
 
 +
 
 +
* Blogging about new features that allow to code once deploy everywhere. Code snippets that exemplify and emphasis cross platform-ness.
 +
* Be in constant touch with developer community to see what they liked to be taken from N8 to N900 and vice versa ( == S^3 <-> MeeGo)
 +
* Create guides and tutorials / blog posts about how to port an app that uses feature or api X in either platforms to the other if use of api X feature requires porting work.
 +
* blog and write about porting success stories between the platforms; reach out for companies we know target N8/S3 as well as N900/MeeGo through OVI and ask for their experience. We should be able to learn from their experience, publish it with their consent for good of community and identify where we're great and where not with our support of them.
 +
* List the features/ api calls that do not need any modifications to be ported, to encourage early  consideration of cross Symbian/MeeGo code.
 +
* Be up to question about porting through a mailing list, an irc channel and a Forum Nokia discussion board and forums.meego.com section.
 +
* Try to tackle the GUI open-ended problem in places where mobility is not giving the answer; Either by documentation or recipes and bug fixes where applicable and up to my (and interested community members) skills.
 +
* Covering the progress of Qt components that are slowly getting backends both for Symbian and MeeGo, blog/ announce when they are ready and provide recipes to show them off when backends are available for
 +
both platforms. Posting videos.
 +
* __Very__ distant goal- writing a book about cross platform development for MeeGo and S3 maybe similar to [0]: but with more emphasis on full real world applications (-recipes). The hope is that developers and companies could reuse recipes close to verbatim in their apps.
 +
 
 +
That might look too ambitious at first glance, but it is planned for over a period of time, the more proximate stuff are the first action items naturally.
 +
 
 +
[0]: http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0470750103.html
 +
 
 +
== Ongoing Work and Contacts ==
 +
 
 +
As some efforts and already ongoing for Qt across Symbian and MeeGo, it is useful to know who does what and the fields he can help with already, through the work he's done so far.
 +
 
 +
If you are interested in contributing to one of the items listed here, please contact the person coordinating it and start a discussion on the porting mailing list.
 +
 
 +
{|style="color:green; background-color:#ffffcc;" cellpadding="10" cellspacing="0" border="1"
 +
!Name
 +
!Hardware/OS
 +
!Email
 +
!Affiliation
 +
!Working On
 +
!Can Help With
 +
|-
 +
| Sivan Greenberg
 +
| N900 (Maemo 10.2010.19-1, latest MeeGo arm)
 +
| sivan __AT__ omniqueue.com
 +
| Community Member
 +
| Starting coordination efforts, investigating current state of affairs, evaluating documentation, report porting bugs, develop porting examples and documentation (-in the future)
 +
| Testing ported works, listen to issue and try to find solutions or contact persons to help with porting requirements or issues.
 +
|}
 +
 
 +
== Current general issues with the Symbian-MeeGo story ==
 +
 
 +
Thanks for Ville for pointing this status:
 +
 
 +
We have 2 Symbian - MeeGo portability stories
 +
 
 +
* QWidget
 +
* QML + Qt Components
 +
 
 +
 
 +
(as far as the GUIs go - backend functionality is an open-ended problem,
 +
with a lot of it attacked by Qt Mobility).
 +
 
 +
Unfortunately QWidget stuff is not mature yet for MeeGo, so you can't do
 +
a useful analysis of the portability aspects.
 +
 
 +
As for Qt Components, Symbian backends don't exist yet. and for MeeGo
 +
it's a work very much in progress as well.
 +
 
 +
== Maemo to MeeGo portability stories ==
 +
 
 +
And actually, we have a quite large Maemo -> MeeG portability story, which seems to still require a lot of work, and most of the current apps on Maemo are gtk+ based. So to offer a complete UX on the (Nokia?) arm handset this must be take in account:
 +
 
 +
* To possibly avoid complete Qt rewrite of legacy Maemo application we want to support on MeeGo, it would be nice to have something along the lines of - http://kde-look.org/content/show.php?content=129715. This is a gtk+ plugin that allows rendering of Gtk apps with the current Qt theme.
 +
 
 +
== Collecting Porting Experience ==
 +
 
 +
Please use this table to note any current issues you are facing trying to make your application cross platform (MeeGo <-> Symbian).
 +
 
 +
Please provide the git/svn/bzr/$YOUR VCS clone-able/branchable link so I can easily check out the code and see the build issues and try to run it on my devices to experience your pain. I am interested in creating "porting bugs" so of your issue triggers a bug in the underlying framework I will try best to report it as so.
 +
 
 +
If you already identified it as not your code's fault, and opened a bug about it, please include the links to the bug reports in the "VCS link" column as well.
 +
 
 +
If the issue was already solved, please include a link to a solution writeup you could do on the wiki for the benefit of others who face the same issue you did.
 +
 
 +
{| style="color:green; background-color:#ffffcc;" cellpadding="10" cellspacing="0" border="1"
 +
!Project Name
 +
!libs used
 +
!contact person email
 +
!link to issues page
 +
!VCS link
 +
!Solution
 +
|-
 +
|That Rabbit Game
 +
|Qt, QtMobility (M5+S^3) + dbus, opengl (M5 only)
 +
|[[User:thp|thp]]
 +
|[http://thpmaemo.blogspot.com/2010/10/qt-write-once-ifdef-everywhere.html Blog entry]
 +
| -
 +
|Workarounds (see blog post)
 +
|-
 +
|QuickHit Game
 +
|Qt Quick (QML)
 +
|See FN projects page
 +
|portable by design
 +
|[https://projects.forum.nokia.com/quickhit/browser/trunk/QuickHit click]
 +
|QML, auto inserted #ifdef(s) by SDK
 +
|}
 +
 
 +
== Resources ==
 +
 
 +
NOTE: When this gets bigger we should probably sort it according to fields / problem domains.
 +
 
 +
* [http://qt.nokia.com/developer/learning/online/talks/developerdays2010/tech-talks/qt-for-cross-platform-mobile-development A must see talk and presentation about cross platform development with Qt. Shows Maemo/Symbian study cases but just as relevant for MeeGo as well, for example in particular when porting legacy apps.]
 +
* [http://www.slideshare.net/andreasjakl/software-development-with-qt-4410650 Qt for Symbian & Maemo / MeeGo Introduction] - v2.2.0 (October 11th, 2010)
 +
* [http://www.slideshare.net/andreasjakl/quickstart-qt-for-windows-symbian-and-maemo-meego-4410776 Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.3] (August 23rd 2010)
 +
* [http://library.forum.nokia.com/index.jsp?topic=/Qt_for_Symbian_Developers_Library/GUID-E4B75E54-8708-4E64-AE3C-8BF5D8183223.html Differences between Qt and Symbian network access APIs] (Link to forum nokia)
 +
* [https://projects.forum.nokia.com/colibri This is the research project started by Digia to provide Cross platform Qt Quick Component Library, community effort]
 +
* [http://developer.qt.nokia.com/wiki/Qt_Quick_Components The Official Nokia funded project to bring cross platform components to QML, Committed to and endorsed by Nokia]
 +
 
 +
[[Category:Qt]]

Latest revision as of 13:16, 6 April 2011

Contents

Background

The introduction of the Nokia Qt SDK enables great ideas to become reality in a cross platform way. "Code once, deploy everywhere" is not just a slogan for the latest Qt releases. The recent additions of API stacks like Mobility, QMF and sensors stretch what you can do with just the Qt framework. This allows great exploitation of the underlying platform while maintaining straightforward API usage and relatively relaxed learning curve.

The latest additions have been exemplified mostly on Nokian mobile Linux computer platforms. I would like to be able to offer Symbian developers the same great building blocks to build great software using pure Qt just as it is slowly being realized on the N900/Maemo/MeeGo.

I think this is very important in order to keep the Symbian offering alive, current, and to prevent it from falling behind the Mobile Linux computers application development offering. I feel this is important in order to revive the Symbian experience, as historically developing for the platform required specific lowlevel platform knowledge and usage of somewhat exotic development, signing and deployment paradigms that are even to date, considered by Symbian developers hard and unpleasant.

I would like to change this and make Symbian development fun, educational and rewarding through the latest Qt offerings, removing as much as possible the historic barriers. Nokia's latest changes to the signing and individual app publishing are great steps towards that, as an example.


Breakdown to milestones

To make the MeeGo-Symbian cross application development experience complete I would like to pursue:


  • Blogging about new features that allow to code once deploy everywhere. Code snippets that exemplify and emphasis cross platform-ness.
  • Be in constant touch with developer community to see what they liked to be taken from N8 to N900 and vice versa ( == S^3 <-> MeeGo)
  • Create guides and tutorials / blog posts about how to port an app that uses feature or api X in either platforms to the other if use of api X feature requires porting work.
  • blog and write about porting success stories between the platforms; reach out for companies we know target N8/S3 as well as N900/MeeGo through OVI and ask for their experience. We should be able to learn from their experience, publish it with their consent for good of community and identify where we're great and where not with our support of them.
  • List the features/ api calls that do not need any modifications to be ported, to encourage early consideration of cross Symbian/MeeGo code.
  • Be up to question about porting through a mailing list, an irc channel and a Forum Nokia discussion board and forums.meego.com section.
  • Try to tackle the GUI open-ended problem in places where mobility is not giving the answer; Either by documentation or recipes and bug fixes where applicable and up to my (and interested community members) skills.
  • Covering the progress of Qt components that are slowly getting backends both for Symbian and MeeGo, blog/ announce when they are ready and provide recipes to show them off when backends are available for

both platforms. Posting videos.

  • __Very__ distant goal- writing a book about cross platform development for MeeGo and S3 maybe similar to [0]: but with more emphasis on full real world applications (-recipes). The hope is that developers and companies could reuse recipes close to verbatim in their apps.

That might look too ambitious at first glance, but it is planned for over a period of time, the more proximate stuff are the first action items naturally.

[0]: http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0470750103.html

Ongoing Work and Contacts

As some efforts and already ongoing for Qt across Symbian and MeeGo, it is useful to know who does what and the fields he can help with already, through the work he's done so far.

If you are interested in contributing to one of the items listed here, please contact the person coordinating it and start a discussion on the porting mailing list.

Name Hardware/OS Email Affiliation Working On Can Help With
Sivan Greenberg N900 (Maemo 10.2010.19-1, latest MeeGo arm) sivan __AT__ omniqueue.com Community Member Starting coordination efforts, investigating current state of affairs, evaluating documentation, report porting bugs, develop porting examples and documentation (-in the future) Testing ported works, listen to issue and try to find solutions or contact persons to help with porting requirements or issues.

Current general issues with the Symbian-MeeGo story

Thanks for Ville for pointing this status:

We have 2 Symbian - MeeGo portability stories

  • QWidget
  • QML + Qt Components


(as far as the GUIs go - backend functionality is an open-ended problem, with a lot of it attacked by Qt Mobility).

Unfortunately QWidget stuff is not mature yet for MeeGo, so you can't do a useful analysis of the portability aspects.

As for Qt Components, Symbian backends don't exist yet. and for MeeGo it's a work very much in progress as well.

Maemo to MeeGo portability stories

And actually, we have a quite large Maemo -> MeeG portability story, which seems to still require a lot of work, and most of the current apps on Maemo are gtk+ based. So to offer a complete UX on the (Nokia?) arm handset this must be take in account:

  • To possibly avoid complete Qt rewrite of legacy Maemo application we want to support on MeeGo, it would be nice to have something along the lines of - http://kde-look.org/content/show.php?content=129715. This is a gtk+ plugin that allows rendering of Gtk apps with the current Qt theme.

Collecting Porting Experience

Please use this table to note any current issues you are facing trying to make your application cross platform (MeeGo <-> Symbian).

Please provide the git/svn/bzr/$YOUR VCS clone-able/branchable link so I can easily check out the code and see the build issues and try to run it on my devices to experience your pain. I am interested in creating "porting bugs" so of your issue triggers a bug in the underlying framework I will try best to report it as so.

If you already identified it as not your code's fault, and opened a bug about it, please include the links to the bug reports in the "VCS link" column as well.

If the issue was already solved, please include a link to a solution writeup you could do on the wiki for the benefit of others who face the same issue you did.

Project Name libs used contact person email link to issues page VCS link Solution
That Rabbit Game Qt, QtMobility (M5+S^3) + dbus, opengl (M5 only) thp Blog entry - Workarounds (see blog post)
QuickHit Game Qt Quick (QML) See FN projects page portable by design click QML, auto inserted #ifdef(s) by SDK

Resources

NOTE: When this gets bigger we should probably sort it according to fields / problem domains.

Personal tools