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.

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

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

espenr
Qt
WebKit
S60
Symbian
Posted by espenr
 in Qt, WebKit, S60, Symbian
 on Thursday, September 24, 2009 @ 10:00

I promised you daily builds of Qt for Symbian/S60 a few weeks ago, and here they are. Every night at around 02:30 new binaries will be available.



Download the latest binaries from here!

There are two types of files available. You want the latest qt-embedded-s60-opensourceYYYYMMDD-4.6.0-tp1.exe file. The other qt-embedded-s60-opensource-src-4.6.0-tp1.zip is the source package used to create the latest .exe and can mostly be ignored. The .exe contains a Windows Installer as shown below, and here is instructions on how to use it.


Qt installer

There are three Qt .sis files included in the .exe. Most of you (unless you work at Nokia and have an RnD phone) wants to install the qt_for_s60_selfsigned.sis together with the fluidlauncher.sis or whatever application you’re creating yourself.

Works for S60 3.1, 3.2 and 5.0. If you’re using some funky internal RnD SDK, it might work (Hint: use the the “Choose additional folder(s)” option if you’re SDK is not in devices.xml).

The code we’re building from is whatever is HEAD of http://qt.gitorious.org/qt/qt/commits/4.6. In other words if we break the build, no binaries for that day - oh well. At the moment QtScript and QtWekbit are still not there - but soon my friends, soooon.

Update: As of 2009.09.29 the snapshots contains QtScript and QtWekbit as well. Yay we’re so great!.
Update2: Well, we’re not that great it seems. The .dlls gets copied to your epoc32, but they’re not inlucded in the Qt_libs sis files. Fixed now, should be correct in tomorrows snapshots.
Update3: Yepp - was fixed today :D.

Final disclaimer: This is not product quality software. It might make your phone depressed and make kittens cry. Use at your own risk.

espenr
Qt
S60
Posted by espenr
 in Qt, S60
 on Wednesday, September 09, 2009 @ 10:07

Hi, I just wanna give you a small update on how the Qt 4.6.0 TP1 and the Qt port to Symbian/S60 works together. Here is the short version:

Keep using the “Tower” pre-release unless you know what you’re doing :D

Now, for those still reading here is some more details. We’ve integrated the port into the Qt 4.6 codeline, so now we’re releasing together with the other platforms. With the “Tower” release which is 4.5 based, we had both QtScript and QtWebKit working fine - this is not the case for this release. There are two reasons for this:

1) Not all changes we did in QtWebKit for the “Tower” release has been pushed or admitted upstream. And we’d rather spend the extra time it takes to get it right in the WebKit trunk instead of hacking it together for the TP1 release in some special Qt version. Please be patient, this is the right way to do it.

2) We’ve changed the backend of QtScript to use the Javascript engine in WebKit. And since that’s not working yet, well - QtScript is not working either.

So what can I use the TP1 for then? Well, if you want to try out new stuff in 4.6 NOT relying on QtScript nor QtWebKit, and if you have access to the RVCT compiler, you can build the src package. Make sure to use this configure line:

configure -platform win32-msvc2008 -xplatform symbian-abld -no-script

You can also use -platform win32-g++ if you feel like it. Btw, if you don’t understand the -platform vs the -xplatform stuff, let me enlighten you a bit. Simply said, the platform you’re developing on is the -platform, and the platform you’re developing for is the -xplatform. Up to and including “Tower” we used the “Nokia Carbide C/C++ Compiler for Windows/x86″ aka mwccsym2, but we can’t do that anymore after we removed the old ANSI support in Qt for 4.6 (see this blog post for more details on the change). That means if you want to build Qt from the src package, you need either g++ or Visual Studio Express Edition in addition to RVCT. We require RVCT 2.2 build 686. If you have an earlier version of RVCT you’ll need to remove --visibility_inlines_hidden from the QMAKE_CXXFLAGS.ARMCC line in mkspecs\common\symbian\symbian.conf. At the moment we don’t support RVCT 3.x nor 4.x.

I know most of you don’t have RVCT, so we’re working hard on getting daily binary snapshots created. That way you don’t have to spend time and money on getting the src package built, and can instead just get directly to hacking. I’ll update with a new blog entry once binary snapshots are up and running.

Btw. have a look at this blog post for instructions on how to get Tower working on Linux. Hopefully we can make it easier in the future :D

espenr
Qt
KDE
News
Posted by espenr
 in Qt, KDE, News
 on Sunday, July 05, 2009 @ 02:09

Right now there is the “Gran Canaria Desktop Summit” which is basically GUADEC + Akademy glued together. We’re a bunch of Trolls down here basking in the sun, discussing, and socialising with the KDE and Gnome and other open source developers who also took the trip to this beautifull island.

Today we had the opening with keynotes from several people:

Robert Lefkowitz told us that software is rhetorics, and that liberal software is what a gentleman would use.

Walter Bender took us for a trip around the “Sugar Learning Platform”.

And, RMS distributed penance and blessings to the evildoers and saints of the software world. Here is a summery:

  • Qt is now perfectly OK (allthough he still can’t pronounce it correctly)
  • Apple is about as evil as Microsoft, but they’re not publicly admitting to it.
  • C# is dodgy, and
  • Web-services are evil.

Then finally, Quim Gil gave us an update on the Maemo platform.

As I said, we’re a bunch of guys from Qt Software down here in Gran Canaria, so if you’ve got any Qt issues you wanna discuss, feel free to grab one of us at any time. You will recognise us by the black Qt polo-shirts we’re wearing. Some of us are also hosting presentations, check out the program here.

We’re here for about a week, so expect some more posts :D

Opening of Desktop Summit

Trolls at breakfast

Beer tastes better in the sun

Nightcap on the beach

espenr
Uncategorized
Posted by espenr
 in Uncategorized
 on Monday, December 15, 2008 @ 16:25

As some of you might know (see earlier post) we are porting Qt for S60 3.1 and later versions, and we’ve just finished our next pre-release called “Temple”. The release in short contains three more Qt modules and improvements to the ones already ported.

Go here to get the package!

In detail this is what you get:

New ported modules are:

  • QtScript: Provides classes for making Qt applications scriptable
  • QtSvg: Provides classes for displaying SVG images
  • QtXml: C++ implementations of SAX and DOM

Changes to existing modules are:

  • QtCore
  • added QSharedMemory support
  • added QSystemSemaphore support
  • QtGui
  • added mouse move/drag events support
  • modifed QFileDialog to fit small screens
  • Improved font support
  • QtNetwork
  • added SSL support
  • qmake
  • fixed bld.inf/mmp generation when not under Qt source tree
  • EPOCROOT environment variable is no longer required
  • Added no_icon CONFIG keyword to suppress icon generation
  • Generated pkg files no longer include Qt libraries directly
  • Added support for generic mmp rules via the MMP_RULES variable
  • Added support for STDEXE, STDDLL and STDLIB target types
  • Subdirs template no longer requires using -r switch with qmake
  • SYSTEMINCLUDE statements are no longer sorted in mmp files

Getting help and providing feedback

Now, pre-releases are not supported, but we still want your feedback. We have set up a special mailing list for feedback on the S60 port:

qts60-feedback@trolltech.com

This list is read by the developers working on the port, so please join if you want to provide technical feedback, bug reports or suggestions to us directly. In order to join the mailing list send a mail to:

qts60-feedback-request@trolltech.com

There is also a Nokia Forum available here.

Whats next?

The next pre-release called “Garden” (which have been developed in parallel with “Temple”) is when things really start to get interesting. Some of the things we hope to achieve there are:

  • Deep integration with S60 (menus, dialogs, input methods)
  • S60 look and feel (style etc.)
  • Proper font implementation
  • Move to Qt 4.5

We’ll keep you posted. See you on the flip side :D

espenr
Qt
News
Posted by espenr
 in Qt, News
 on Monday, October 20, 2008 @ 10:57

April this year we started a new project here in Oslo called “Qt for S60″ and I’ve been wanting to blog about it ever since. Now I finally can! Basically we’re porting Qt to yet another platform: S60, which roughly gives us around 80 million new devices Qt can run on. Our vision of Qt Everywhere is becoming more and more of a reality. And it feels good.

Let’s get to the important stuff. Click here to:

About the tech-preview and the demos

The Qt for S60 pre-release packages comes in two license flavours, either download the opensource (GPL2 or GPL3) package or the preview-commercial package. Content wise there is no real difference between them. However, the opensource package contains pre-compiled binaries which the preview commercial package does not. The reason for this is that the compiler (GCCE) opensource developers have access too, at the moment, cannot build Qt libraries. RVCT however can - but you most likely don’t have access to that one as it’s not freely available. So basically, for the opensource package you’ll be building Qt applications with GCCE, but linking with RVCT built Qt libraries we provide for you. For the preview-commercial package we assume you’ve got access to RVCT, and we let you do all the stuff yourself. I’m sure we’ll sort out the GCCE issue for the next tech-preview.

The Qt modules available in this package are:

We support S60 3.1 and higher, even the 5.0 stuff that was just released :) Btw. if you try to install the demo above on your phone, and you’ve got a 3.1 device, you have to install Pips/Open C as well for it to work. We’ve got a package conveniently here for you.

Feedback

Our policy here in Qt Software is: release often, release early. We want feedback from developers trying out our software. Now keep in mind, this first relase is a technology preview. It is not supported, it is not complete, it is not production quality - basically it’s for you to play with. We have set up a special mailinglist for feedback on the S60 port. The address of the mailinglist is:

qts60-feedback@trolltech.com

please join if you want to provide technical feedback, bug reports, suggestions or comments. In order to join the mailing list send a mail to:

qts60-feedback-request@trolltech.com

with the subject set to: subscribe. In order to leave the list send a mail with the subject set to: unsubscribe. This will be an open list so make sure not to share sensitive information.

Let the hacking begin

We’re at the Symbian Smartphone show in London this week answering questions and showing of Qt on some phones. Drop by if you’re in the area :) But even more important, start making cool and crazy apps for your phones! I’m sure a lot of you already have an S60 bouncing around in your pockets, and it’s just waiting to be played with.

We also just announced the Pimp my widgets! contest, why not do a double-combo and try out Qt for S60 pimpin style ;)

Anyways, (sorry for the long blog) here is a picture of Qt running on all the S60 devices I got my hands on - just showing you I’m not lying.

Qt on lots of S60 devices - can you name them all?
Qt on lots of S60 devices - can you name them all?

espenr
Uncategorized
Posted by espenr
 in Uncategorized
 on Tuesday, April 22, 2008 @ 19:23

The cross-platform story for Qt becomes more and more true. Now we’re even going to be on Maemo it seems (kde people talk: here, osnews flamewar: here). However that was not really what I was going to talk about.

I have a little video for you here basically showing the Qt Everywhere demo running on both Windows Mobile and Embedded Linux side by side. We used the latest fancypants from HTC (Windows Mobile 6.0) and ran the Qt demos side by side to a Neo (Linux). Click the image below to check it out (opens new page, click play again):


video.jpg

The demo is basically just a small set of some of the Qt demos and examples that we launch and interact with in a more gesture inspired way. I love flicking those screengrabs around btw :D Skip ahead to 02:40 if you only want to see it running on the Neo…. Skip to 04:48 if you want to see the Neo die ;)

One thing to notice here is that this demo-set was originally developed and compiled for Embedded Linux. All that was needed to have it running out of the box for Windows CE/Mobile was to add a few deployment rules to the .pro file for the demo. Now - it goes without saying that these demos run out of the box on our desktop platforms too.

Btw. stay tuned for the Open Source Development awards. We have a winner - and we’ve got prizes!



© 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.