espenr
Qt
KDE
WebKit
S60
Symbian
Posted by espenr
 in Qt, KDE, WebKit, S60, Symbian
 on Monday, March 08, 2010 @ 18:30

Several of the Trolls are right now in Manaus (Brasil) at the Bossa Conference 2010 and we’re having a great time. The conference is hosted by INDt here in Brasil, and the topics covering Qt directly are:

  • QML
  • QtWebkit
  • Next generation widgets, and
  • Shipping Qt apps on Symbian

but there are also talks about KDE, Ubuntu, Maemo etc.


Hi from Bossa (Espen underwater)

In my talk I’m explaining how to go from nothing to having your own Qt app on the Ovi Store. So for that purpose I created a little app wich is a “mobilized” touch version of our old Tetrix example. See image below. It’s not fantastic in any way, but I thought it might be interesting for some to install it on their phone and try it out.

BossaTetrix

There are two ways of getting this app on your phone:

Method 1: (recommended)

  1. Install Qt 4.6.2 (Symbian)
  2. Install BossaTetrix (normal version)

Method 2: (experimental)

  1. Install BossaTetrix (Smart Installer version)

Note: Version 2 is not stable and I’ve had limited success with it. The Nokia Smart Installer is still in beta! - so if you just want something that works, go for Method 1.

My current highscore is Score: 529 Level: 2. Post your score as a comment :D

Oh and btw, my app is not in the OVI store yet- As I said, the Nokia Smart Installer is still in beta and the OVI site still needs some changes before Qt apps can be uploaded, but we’re one step closer, and I now basically know the whole complete process involved.

Twitter feed about the conference here.

espenr
Qt
S60
Symbian
Posted by espenr
 in Qt, S60, Symbian
 on Monday, February 15, 2010 @ 13:09

Qt 4.6.2 is released, and in addition to all the bug fixes in it, we’ve also snuck in a feature or two, especially for the Symbian platform. One of interest is the ability for Qt to make use of the beta version of the Nokia Smart Installer, which makes it easier to deploy your Qt application to Symbian phones.

Using the Nokia Smart Installer

This is how you make use of it in short:

  1. Download and install Qt for Symbian 4.6.2
  2. Download the Nokia Smart Installer v 0.9 (beta)
  3. Unzip it on top of your installed Qt for Symbian folder
  4. Code your cool mobile application
  5. Run qmake && make release-gcce to create yourapp.exe
  6. Run make sis to create yourapp.sis
  7. Run make installer_sis to create yourapp_installer.sis
  8. You have an application ready for deployment!

When the user now installs yourapp_installer.sis on their phone, the Smart Installer will go on-line and get all the dependencies that your Qt application requires, typically Qt and QtWebkit + Open C. If these packages are already installed on the phone, the Smart Installer does nothing. So, it is a little bit like an “apt-get for Symbian” has been wrapped around your application. See below for a nice drawing of how it all works (click for full size).


How the Smart Installer works

The benefit of such a binary is twofold. It ensures the phone gets the up to date and correct versions of Qt and its dependencies, and it also dramatically reduces the file size of the application you are shipping.

Trying it out

If you’re an impatient person and just want to try out how an application using the Smart Installer works, then click the link under the image below. It will install the Qt demos (fluidlauncher and the other demos and examples) using the Smart Installer on your phone.

Downloading Qt and dependencies
http://get.qt.nokia.com/nokiasmartinstaller/fluidlauncher_installer.sis

Tip: To get less prompts when installing, sign your app properly. Go to symbiansigned.com and Express Sign yourapp.sis, then wrap it with the Smart Installer and Express Sign yourapp_installer.sis as well. The example above still has fluidlauncher self-signed, so there are more prompts than needed. At the moment, if everything is properly signed you are looking at five prompts for the user to answer - and we’re working on getting that down to only two or three.

If you have trouble using the Smart Installer, go to qt.nokia.com/phonedemos and you can download the Qt demos where all dependencies are included in one big package and no network access from the phone is required.

It’s still in beta!

Now the Nokia Smart Installer for Symbian is still in beta, but we want you to try it out. At the moment it won’t be possible to get any “smart” Qt applications into the Ovi Store - but it is just a matter of time before that becomes possible.

Stability wise it works pretty well on the 3.2 and 5.0 phones we’ve tested (5800, N78, N97 mini etc.) but we’ve had some issues with some of our N95s where wlan fails in mid-download. Please test and give feedback to the developers in this forum. We want to hear about any usability as well as functional issues you discover.

EPL release and the Symbian Foundation

The Nokia Smart Installer for Symbian is not directly developed by the Qt developers, but we’re helping out the team in Finland/India with patches and QA. At the moment the code is not yet available for download - but we are in the process of preparing the code for contribution to the Symbian Foundation, so this should be resolved shortly.

Alessandro
Qt
QtCreator
S60
Posted by Alessandro
 in Qt, QtCreator, S60
 on Thursday, December 03, 2009 @ 19:51

The Italian guy with German accent made new videos :) This time it is a whole trilogy about Qt development targeting the Symbian Platform:

1 - Setting up a Symbian/S60 development environment

Bullet proof guide to how to install and plug together all those different components that make up a Symbian/S60 development environment. Download links: ovisuite, carbidecpp, activeperl56, s60sdk, openc and apptrk.

2 - Setting up Qt for Symbian

The easy part: How to install Qt for Symbian on PC and phone, and also a Qt SDK for Windows in order to have QtCreator plus desktop Qt.

3 - Developing in Qt Creator

The fun part: How to develop a Qt application first on the desktop and then deploy and debug(!) it on the device. All in Qt Creator, with its preliminary Symbian support.

espenr
Qt
S60
Symbian
Posted by espenr
 in Qt, S60, Symbian
 on Tuesday, December 01, 2009 @ 15:18

If you didn’t already notice, Qt 4.6.0 is out - including our port to Qt 4.6.0 to Symbian. It’s been one and a half year in the making and it’s about time we summarize and look back for a bit. But, before we get into details about that, here are some fact about our current releases:

Qt 4.6.0 for Symbian in brief:

  • To test out Qt on your phone simply browse to qt.nokia.com/phonedemos with your phone
  • To develop your own applications, download the installer here
  • To find limitations and notes about this release go here
  • To find the list of public bugs for Qt for Symbian go here
  • And, here is the list of of known issues


And of course, here is a video showing some demos made with Qt 4.6.0 running on Maemo and Symbian phones!
Mobile demos on Symbian and Maemo

Qt 4.6.0 for Symbian development timeline:

March 2008

  • Project starts.
  • I go over to Oulu and visit the guys from Digia who has done som pre-studies and a barebones Qt port to Symbian.
  • Hunting for people inside Qt itself to sign on to the project.

April 2008

  • Got Qt collegues to sign on! And got Digia guys as well. We’re now 5 Qt guys and 5 Digia guys.
  • We’ve had some Symbian training - descriptors are ridicolous!
  • Alessandro arrived from the Berlin office! :D Will stay in Oslo for half a year.
  • Working on qmake bootstrapping and setting up git.

May 2008

  • Working on .mmp generator
  • Working on Qt autotest for QtCore
  • Fiddle with EPOCSTACKSIZE and EPOCHEAPSIZE

June 2008

  • “Lighthouse” released internally in Nokia(QtCore + autotests)
  • “Pyramid” plan created
  • Boating trip!

July 2008

  • Jason gets analog clock running in the emulator!
  • We work on the Qt event loop in a Symbian world
  • We’re playing around with Open C

August 2008

  • QtGui compiles and links with RVCT
  • Start working on network module
  • QtGui running on my N95! (picture)

September 2008

  • Learn how to sign .sis files internally in Nokia
  • Merged in the network branch into our S60 mainline
  • Got a new guy from Digia to join!

October 2008

  • FTP example working on an E71 picture
  • “Pyramid” is released! (QtGui + QtNetwork>
  • QtSVG ported (picture)
  • Kristian visits the Boston Webkit team

November 2008

  • We play around with flashing phones
  • We plan how to move from Qt 4.4 to Qt 4.5 for the port
  • WolfenQt (stripped down version) running on the N95 (picture)
  • QDesktopServices gets some loving

December 2008

  • New event dispatcher merged in
  • More work on S60 style
  • “Temple” is released!
  • Moving to Qt 4.5 work started

January 2009

  • Guys from Symbian (Sosco actually) visits and we talked about Out of Memory issues
  • Working on menu integration
  • Input methods work started
  • Better font integration started
  • Add more Symbian specific features to qmake

February 2009

  • Ran lance tests to check graphics quality
  • We get a Symbian guy onboard the project
  • We start looking into shared and native bitmaps

March 2009

  • “Garden” is released!
  • Native S60 style is looking good
  • QtWebkit work is starting to speed up
  • We start looking at OpenVG
  • Qt 4.6 kick-off for Qt Oslo team

April 2009

  • QtWebkit running for the first time! (picture)
  • OpenVG paintengine is drawing something! (picture)
  • Major improvements in keypad navigation
  • Frans joins the project too
  • Raptor support is added to Qt

May 2009

  • Harald helps us with exception handling and OOM code
  • Simon joins a few weeks too for helping with Webkit
  • Maurice helps to make nice Windows installer packages
  • We hold a Qt for S60/Symbian crash course in Oslo for the other devs

June 2009

  • Windows 7 is discovered to be OK as a development platform (my machine crashed!)
  • “Tower” is released!
  • We get Qt running on the Samsung i8910! (picture)

July 2009

  • Espen visits Akademy and GUADEC in Gran Canaria
  • The rest of Qt start reviewing our Symbian branch
  • Another Sosco guy joins our team for Phonon work!

August 2009

  • The Qt dialogs are improved for small screen usage
  • Start experimenting with .DEF files
  • More work on getting automated testing properly working
  • Symbian branch is merged into the Qt mainline! SHA: e190e700d707c3000f813c106c27d8f5aeda44d0

September 2009

  • Start working on getting automatic binary snapshots up and running
  • Exception safety autotests added
  • Focusing on package testing, fixing autotests and killing bugs

October 2009

  • More webkit work
  • Native pixmaps gets some loving
  • Jani shows off a cool homescreen demo based on Qt at DevDays. See video
  • Colossus is released!
  • Alessandro and Espen goes to SEE09

November 2009

  • Performance work and planning starts
  • We learn how to Symbian Sign!
  • Qt 4.6.0 RC1 is released!
  • We fix bugs like crazy
  • We test packages like crazy
  • Qt 4.6.0 final is released!

Qt for Symbian what now?:

It is now the 1st of December and we’ve just celebrated that we managed to deliver 4.6.0 on time. As much as I’d love to rest on my laurels for a little bit, you’re probably asking what is going to happen next now for 4.6.x and a coming 4.7. Here is a short brief of the things we’re looking at:

  • Fix deployment for Qt for Symbian (smart installer that downloads dependancies automatically)
    OpenGL ES
  • Heavy performance improvements
  • Drastically improve the install experience
  • Closer integration with Qt Creator
  • Fix bugs.
  • Proper Symbian Signed for Samsung and Sony Ericsson as well

If this happens for 4.6.1, 4.6.2 or later is not settled yet, but if you pay attention to this blog as well as our commits you will stay informed.

Thanks to:

  • My wonderfull co-workers, both in the porting team as well as the rest of Qt
  • Our partners: Digia, Tieto and Sosco (now Accenture) and the great developers they gave us (well, we ARE paying for them)
  • Other developers and managers in Nokia who has helped with autotests, signing Qt, tradeshows and more
  • The early adopters who have tried out Qt and given us feedback!

So, as of today Qt officialy has Symbian support. It took us roughly 20 months. We started with one person, and ended up with 15 fulltime developers. We’ll relax for half a day, then take a deep breath and continue on 4.6.1 and more long-term 4.7. But right now, we need another glass of champagne…


Espen is happy Qt 4.6.0 is out

Eike Ziller
QtCreator
S60
Posted by Eike Ziller
 in QtCreator, S60
 on Tuesday, December 01, 2009 @ 11:29

The end of the year is usually a time where people reflect on the past, think back, and drink a lot of beer/wine/apple juice in the process. When I do that now (ah, no beer or wine though), I can only say: Wow. What a year.
Qt went LGPL, Qt Creator 1.0 released, the source repositories went public on qt.gitorious.org opening new possibilities for contribution and collaboration, the new public bugtracker was established, and now Qt Creator already comes in version 1.3 (together with Qt 4.6), with lots of changes, improvements and extensions to the original 1.0 release. And that’s only the Qt Creator centric view :) .

So to wrap this amazing year up, we today released Qt Creator 1.3.0, with a rather impressive list of features:

  • Experimental support for development of Qt for Symbian applications
  • First refactorings:
    • Renaming symbols
    • Find usages of symbols

  • Color schemes for the editors:
    Qt Creator Color Schemes
  • Automatic matching of brackets and quotes:

  • Support for the Microsoft Visual Studio compiler tool chain for cmake projects
  • Better support for small screen sizes
  • Locator filter for symbols in the current document
  • Many more

Of course, we haven’t been resting in the last few days, polishing Qt Creator for the final release: Since the release candidate 18 little fixes went in, plus updated translations, like the French one that was blogged about in a different post. As mentioned in the blog, translating Qt Creator is not something you’d do on a friday afternoon. Great many thanks to all who put their precious time into making our beloved software even easier to use :).

Download Qt Creator 1.3 or the 2009.05 SDK (includes Qt 4.6.0 and MinGW 4.4) from here. If you prefer to use the Microsoft Visual Studio compiler, get the new Qt for Visual Studio 2008 Open Source package.

kamlie
Qt
Git
S60
Symbian
Build system
Posted by kamlie
 in Qt, Git, S60, Symbian, Build system
 on Wednesday, October 28, 2009 @ 16:31

One day I was sitting at my computer, waiting for my build of S60 to finish. I had run my usual round of build commands and custom scripts to speed up the build if but a little, and was expecting to wait for at least 10-12 min. At this point it occurred to me (well, it had occurred to me before): The Symbian build system is really overkill. What could it be doing that’s taking so long, for something that should be relatively simple: compile and link?

Symbian and Tux

So I thought to myself that this can definitely be improved, and that’s how I started the work on a Symbian make specification that is based entirely on qmake and make (no Symbian build chain stuff, although it uses the tools from there), and runs on Linux.

Then you might say “What about the Raptor build system that is supposed to improve things?”. It is true that Raptor improves a lot of the deficiencies of good ol’ abld, but I still felt that the huge Raptor build system is sooo overkill for something really simple. I like to obey the KISS principle. Call it a personal itch!

With this in mind I have two design goals:

  1. Ditch all unnecessary file types. This includes bld.inf and MMP files.
  2. Be fast!

Whether I’ll be able to fulfill them in the end, time will show, but that’s what I’m aiming for at least.

But let’s get into the gory details. Be reminded that the build system is still in the very early stages, and is not ready for for the end user yet, but if you like to tinker with the latest and greatest, read on. Here’s what works currently:

  1. Running configure.
  2. Building QtCore.dll with RVCT.
  3. Running QtCore.dll
  4. Building user applications with RVCT.
  5. Running user applications.

Here’s a few things that don’t work yet, but I plan to get them working:

  1. Building the host tools automatically (this needs to be done manually ATM).
  2. Building QtCore.dll with GCCE (this doesn’t work with the official port either, but as soon as it works there, it should work here as well).
  3. Other Qt dlls. QtGui.dll should probably be easy to get compiling, but it needs a few header fixes first.
  4. Building user applications with GCCE.
  5. Making the process of building a package automatic.

Here’s one thing that will probably never work:

  1. Building for the emulator. The emulator won’t run under Wine, so there’s no point in building for it. If the build system gets ported to Windows maybe it’ll be supported, but not before then.

The procedure for getting the system up and running is subject to change as the project goes forward, so instead of posting it here, I have put it in the README.s60-mkspec in the Git repository. To get it, go to http://qt.gitorious.org/+qt-developers/qt/s60-linux-mkspec, and clone the repository from there. Then check out the “working” branch. This branch is often rebased based on the latest work in the topic branches. “master” should not ever be rebased, but many things are missing from there at the time of writing.

Here’s a few short term goals for the project in the following weeks:

  1. Get the other modules compiling.
  2. Get the process to be more streamlined (e.g. more like the other platforms)
  3. Move from ABIv1 to ABIv2. The former is the old way of linking binaries on Symbian. Since this is being superseded by ABIv2, which is binary compatible at run time, but not compile time, it makes sense to only support that.
Ariya Hidayat
Graphics Dojo
S60
Posted by Ariya Hidayat
 in Graphics Dojo, S60
 on Thursday, October 22, 2009 @ 10:02

I have shown parallax sliding example long time ago. It was certainly inspired by the increase use of such an effect in the so-called home screen, typically in the mobile platform. Since there has been also an increase interest on Qt for Symbian example programs, I decided to recycle that old example and to turn it into something that fits the form-factor and user experience on the phone. Thus, the demo is (re)born.


The code is in Graphics Dojo repository, find it in the parallaxhome subdirectory. For a touch device, you can tap on the icons on the bottom bar to switch between different pages (enjoy the subtle bump effect of the icons). With a non-touch device, left and right arrow keys are your friends. The heart of this parallax effect is the difference of speed between the graphics items (those wonderful food photos) and the background. The above screenshot demonstrates that exactly: on the right side, although now the page (with the weather icon) has been shifted from the center one (with the home icon), you can see that these two pages mostly share the same background portions.

Exercise for the reader: use the panning trick to shift between one page to another. If you feel brave, add some kinetic effect, too.

As a last note, this will be my last Graphics Dojo example. For future Qt-related code examples, please check my personal blog on a regular basis (e.g. just track the posts tagged with qt).

May the training spirits be with you! Namárië.

espenr
Qt
Multimedia
S60
Symbian
Posted by espenr
 in Qt, Multimedia, S60, Symbian
 on Wednesday, October 14, 2009 @ 10:02

Together with the other platforms (finally!) we’ve now released the Qt 4.6.0 beta1 for Symbian. Get the nice installer here:

qt-symbian-opensource-4.6.0-beta1.exe

So what has happened since the last release (I’m talking about “Tower” released around 3 months ago).

  • We’ve moved into the Qt 4.6 branch. This means we can break the other platforms - yay!
  • We’ve added an experimental backend for Phonon (using MMF). It plays audio and video!
  • We’ve fixed a lot of bugs! Still lots left though.
  • We’ve added the possibility to have a mouse curser on non-touch devices!
  • QtWebKit has been updated to a newer version
  • The QtScript engine has been completely replaced with a nicer and faster one from WebKit.
  • We’ve added daily snapshots.
  • Ariya has added some new nice demos. Check out the video below.
  • We’ve also removed support for compiling qmake with the Nokia Win32 compiler, but added support for MinGW and Visual Studio 200x instead.

If you want to try out these demos on your own S60 phone, here is what you do. Open your browser on the phone and navigate to:

qt.nokia.com/phonedemos

Then simply click on the link found there, answer yes around 20 times to all the dialogs and security warnings. Then once finally done navigate to Applications and launch fluidlauncher.

For help on getting started with your own application development go here. And then finally, the obligatory video of whats new. This time I used a Samsung i8910 and my old trusty Nokia 5800. Enjoy!


Qt 4.6.0 Beta1 demos on YouTube

Ariya Hidayat
Graphics Dojo
S60
Posted by Ariya Hidayat
 in Graphics Dojo, S60
 on Wednesday, October 07, 2009 @ 21:32

By popular demand, I have refactored the magnifying glass trick previously featured in Google Maps and OpenStreetMap demos into its own, simpler example. This time we just zoom in an image so it’s pretty straightforward and easier to digest. The proof is the following screenshot.


Of course, it also runs on Qt for Symbian.

The code is available from the Graphics Dojo repository, find it in the imgzoom subdirectory. It weighs at less than 250 lines of code.

On a related note, if you compile Qt 4.6 branch for Symbian, you will find out that some of my demos previously shown in this Qt Labs, among others ray casting (now should also work on touch devices), maps, flight tracking, weather info, kinetic scrolling, flipping clock, have "graduated" to become real examples, even can be accessed from the infamous Fluid Launcher. What does it mean? If hitherto you haven’t tried them yet because you don’t bother to mess up your system with all the build procedures, just grab the (daily) Qt 4.6 for Symbian binary package and now you can enjoy the examples. No more excuse :)

Daniel Molkentin
QtCreator
S60
Symbian
 in QtCreator, S60, Symbian
 on Monday, October 05, 2009 @ 13:16

So, with Qt SDK 2009.04, there is yet another release out of the door. Now, the first question you may have is: “Why is there no update to Qt Creator in this release?”. The answer is simple: We are working full steam ahead towards Qt Creator 1.3, which will contain lots of nice features.

We could have rushed some of them into an intermediate release, but then again, testing and packaging takes time. So we decided it would be more useful to release an only slightly tested 1.2.90 technology snapshot, look for feedback from all you out there to verify that there are no severe issues and then continue full steam ahead with the integration of stuff we have been working on.

Since then, we enabled the preliminary Symbian support for the Windows version of Creator. The editor has received some love, featuring an improved indenter and smart auto-completion of braces, comments and quotes. Also, we have exposed the renaming of local variables a bit more. To demonstrate these features, we have prepared a video:

Also, parts of the new refactoring engine, which can be described as improvements on top of the current C++ code model library found its way into Qt Creator. While 1.2.90 already allowed for the renaming, more refactoring will be possible.

We are now going into feature freeze, meaning the last features are now being merged into mainline. It also means that if you want to check out the current state, have a look at the daily snapshots and give feedback on the Qt Creator mailing list.

We will keep you updated with more blogs and screen casts on the road to Qt Creator 1.3. Meanwhile, you can browse the Changes file for features that have been implemented so far. Enjoy!



© 2008 Nokia Corporation and/or its subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation in Finland and/or other countries worldwide.
All other trademarks are property of their respective owners.