Yep, I didn’t have time to blog during aKademy as you may have noticed 🙂 The main reason is that I had a lot of discussions and attended to a huge number of BoFs. This aKademy rocked just as the others that I went. Huge thanks to the organization team, KDE e.V and sponsors for providing ways to make this happen and to have a lot of KDE hackers there!
Instead of doing a technical blog today, I will just say that during this aKademy KDE ‘called home’ for the first time. This means that for the first time in history 🙂 we had KDE running on a mobile phone and we made a call with it! This was AWESOME! Just a summary: Plasma-Mobile and a plasmoid that worked as a dialer did the work, using the phone API of Maemo5 on a N900.
As Aaron noticed, our first call was a little bit more “interesting” than Graham Bell’s one. The first words on a telephone in history are:
Mr. Watson, come here. I want to see you.
Interesting…..but you may think that the transcription below is a little bit more interesting. I will also omit some context that would explain some of the questions/answers during this talk as I think that it may turn this more…let’s say…special 😉 Enjoy!
My phone rings (for the sake of curiosity, my ringtone is “Snow” by Red Hot Chili Peppers) and the ID of the caller is “+41”. I answer and the call drops. I tell Helio that it should be some company from Brazil during TeleMarketing. While we walk to the bus for aKademy’s day trip it rings again. Alexis Menard is the caller this time:
Me: Bonsoir! er, Bonjour Alexis! Alexis: Guess what?!
Me: hhmm, you’re going to miss the dray trip because you just woke up? Alexis: NO! Guess what ‘amiguinho’!? (note: ‘amiguinho’ means ‘little friend’ in portuguese) Me: Oh, I got it! You’re the guy! Your bed is warmer than it should be? Alexis: What?! No, no, no! Come on! GUESS WHAT?! Me: I don’t know then! Let me think….ow yeah! GREAT! This phone call was made through the Plasma-Mobile stuff that we did yesterday?! Alexis: Yes!! Finally!! I’m turning off my computer and meet you at the bus! Me: OK! See you!
And then I tell everybody that was by my side that it was the first KDE phone call in history! REALLY GREAT! 🙂 The conversation above may seem non-sense but all the questions had a reason and the answers too 😛
Soon we should post some more technical bits about Plasma-Mobile and also I plan to talk a little bit about KDE-Pim-Mobile, the new Sharebin engine (that will support scripted plugins and GHNS) and if you want to contribute to some use cases of Plasma-Mobile take a look at this link.
As a kind of “sad note”, I would also like to tell you that the QEdje scriptengine was removed due (my) lack of maintenance of the QEdje project.
I’ve been busy with some “internal work” that was not that fun and due to that, it was not worth it talking about it :(. However during this time I wrote some KDE stuff and right now I’m busy with some awesome work and this one I’ll share with everybody 🙂
The benefits? It’s easier to extend and support new services so no more bugs on bko asking for this or that service (you can *easily* implement it and provide it through kde-apps.org). Because of that, applets using the new data engine will be able to use GHNS to extend the amount of services that it uses.
As soon as we unfreeze trunk, I’ll send the engine for review and then update the pastebin applet to support it. Ah, we are also using KIO inside the data engine now! 🙂 So, we also have support for “remote shares” (remote as in getting a file that is in the network – samba share for example). Good news right?
Now, I started to help the KDE PIM dudes and KDAB with their mobile version of the suite and anything that is related to it. So, I’m really looking forward having a great PIM suite for mobile devices. It uses all of the KDE infrastructure and the brand new Qt technology for creating rich UI interfaces: QML. It’s important to say that everything is being done on the open and upstream. Take a look at kmail mobile right now:
At the same time I’ll be in touch with the guys working on the Qt Components project, to provide feedback and use the stuff they are getting done. This is a really important project for QML and if you ever played with QML you know what I’m talking about ;).
I’m also going to Akademy this year thanks to the help of the e.V. and it’s sponsors (special thanks to Claudia that helped me with the booking :P). I’ll have a talk there with my fellow Alexis Menard about Plasma mobile and I hope that everybody that will be there enjoy the talk and the paper that we are working on! I also recommend the talk about Qt Components from Eduardo Fleury! If you want to talk about KDE Mobile, any other mobile subject (MeeGo, Maemo), anything KDE related, just about soccer or say hello…just do it 😛 I’m too small to prevent you from doing any of the above listed things 😛
Reading this post you were able to watch a video about Plasma Mobile (actually, Plasma on all kind of devices) and see some screenshots. But if you don’t know the ideas and concepts behind that, you are just going to bash it as it’s just the bootstrap of the project and a lot needs to be done.
And if for some reason you are wondering about the future of the netbook project, don’t worry 🙂 Plasma Netbook and Plasma Mobile, besides being oriented for smaller form factors than a regular Desktop / Notebook, have different concepts as they’re serving for different purposes. Marco (notmart) and all the Plasma team will still keep working on the netbook shell and if you read this post you can see the netbook shell running on Intel’s Jax10 devices. This was done to give us an idea about how the netbook interface would behave on touchscreen devices and helped Marco to do a lot of bug fixing and improvements.
Back to the mobile shell, this interface presented here was created for the same Jax10 device but the architecture was designed to support different “Views” (as in MVC) for even smaller devices (N900 anyone?) , while still sharing the same concepts though. Even if the interface was not designed for the N900 for example, we were able to run it with great performance and the usability was very good. What means that we’ll just need to slightly tweak the view to make it perfect for the N900. And all of this can be done by designers as the View is 100% done in QML 🙂
So our first step was to brainstorm about launching menus (and how regular grid views seems to be so boring) and how different contexts affects the way you use your mobile. I mean, we are making desktops aware of contexts more and more and it’s silly to think that you don’t use this concept on your other devices.
We thought about having regular activities so the user would be able to have different set of plasmoids for each context that he’s working on. However it still needs to be very easy to do some stuff like:
Going to your dialer if it’s a phone;
Change between activities (later we can make the shell location aware so it’s possible to auto switch);
Launch applications easily and context aware (presenting the applications related to that context);
In order to achieve these goals we came with this idea: having a regular containment and a kind of panel that auto hides itself after some seconds. Important to say that right now this panel is 100% QML and is not like the desktop’s panel (that is a containment in another view). This makes the shell use less memory and be faster as it’s just playing with pixmaps in the end. After hiding, it shows a collapsed representation of the panel at the bottom that the user can either click on it or drag it up to show back the panel. This makes it really easy to change between one activity to another one while keeping the user interface clean enough so the user can play with his applets 😉
First Mockup by Nuno
The panel while in it's collapsed mode
But then you ask me: “I want to launch applications ? How can I do that ?”. One solution is to add an application launcher as one of the main activities and the other one is to enable context aware application launchers. So, looking at the pictures above think that you are at the “Internet Activity” and you want to launch your applications. You can always launch the application related to one plasmoid from it so if you have an RSS Feed plasmoid you are able to launch your feeds reader using this plasmoid. But if the applications doesn’t have a related applet, in our concept you can just flip horizontally the current activity and you’ll find on it’s backside a context aware launcher that have shortcut icons for your applications and it’s size is proportional to the times that you launched the application and how much related to that activity the application is. This way it’s easy to find the most important applications for that activity.
Activity flipping to show...
...the context aware application launcher that right now is just a gradient 😛
It’s not there right now but the idea is that at the top we will have this small bar (that will be a containment) to show the status related widgets like battery, signals strength and other stuff very plasma, like clocks! It’s not there yet, but it will be!
Regarding the transitions from one activity to another we thought about sliding the activities up and down so there is the idea that we are throwing the current activity somewhere else and bringing the new one.
Throwing away the current activity....
...bringing the new one and fading out the panel....
...and the switch is done!
\Basically this is the concept behind the Plasma Mobile shell and after this it was just a matter of thinking about nice animations that would make sense, tweaking it’s timers and polishing icons 🙂 It’s clear to us that during the development we’ll find flaws in this ideas and we will need to fix them, as well as that the implementation right now is a little bit dirty due to time constraints (Tokamak doesn’t last forever unfortunately). Next steps ? Fix all the ugly code, finish implementing the launch menu, polishing and bug fixing…what means that we just bootstrapped!
Ah, if you are wondering: the Plasma Netbook project still keeps up to speed and is not sharing this backend (besides sharing a lot from libplasma). The deal is that the Netbook really needs it’s own concept and implementation while Plasma Mobile is really meant to be used on smaller devices than netbooks 😉