Showing posts with label maemo 5. Show all posts
Showing posts with label maemo 5. Show all posts

Wednesday, October 19, 2011

gPodder 2.20 for Maemo 4 and Maemo 5, 2.950.14 for Harmattan

gPodder 2.20 has been released. New packages are already available for Maemo 4 (in Extras) and Maemo 5 (in Extras-Testing). If you are using gPodder on Maemo 5, please test the package and vote for it on the package page, so it can get promoted to Extras when it has been tested by the community.

For all N950/N9 users: The Harmattan build of the gPodder QML UI is available for free in Ovi Store. The version available in Ovi Store is a development snapshot of the "tres" branch, where we will have an official release soon. I'm using it on a daily basis, and it's very stable and usable - new features will be added as we go along, so check out the new gPodder! You can grab the source code from the harmattan branch in our Git repository.

Thursday, September 29, 2011

gPodder Maemo 5 Remota Usability Test Videos

Back in August, Jarkko Mikael Palonkangas has been looking for Maemo 5 users without any experience in using gPodder. His Master's thesis is about the Thinking Aloud usability testing method on mobile devices, and he chose gPodder as the example application. The application used for managing the test cases has been written by Jarkko for Maemo 5 and is called Remota - it takes care of displaying the tasks to the users, recording screenshots and audio and retrieving the logging output from gPodder.

Remota log viewer with UI action log at the bottom

If you are interested in seeing how this looks, or if you would like to help to comment on the usability issues and find improvement ideas, please feel free to click through the videos below, which have now been uploaded:


Unfortunately, user 4's logging output had problems, so you only have audio and video for these tasks - for users 1 through 3 we also have logging output about UI interactions, which was possible by patching the gPodder source to add additional handlers to buttons and other UI elements while the UI was created on application startup.

Please feel free to add comments to the videos - Jarkko is going to process them and include the finding in his final work, so that would be an easy way to contribute.

Sunday, February 20, 2011

gPodder 2.13 in Extras-Testing (and in Extras for Diablo)

A new version of gPodder, a podcast downloader for Maemo 4 and Maemo 5 has been released. The new release is already available in Extras for Maemo 4 (i.e. N800 and N810), and is currently in Extras-Testing for Maemo 5 (please test and vote!). You can read the official announcement on the gPodder blog, or go directly to the detailed ChangeLog. This release fixes some issues reported by our users, improves the episode list on Maemo 5 and adds the often-requested "Download only when on Wi-Fi" feature:


This release does not yet contain the QML UI, as it is not ready and/or feature-complete yet, and the QML development happens on another branch ("tres" in the Git repo) that contains more under-the-hood changes that cleans up the gPodder codebase. The QML UI will be released "when it's done" :)

Saturday, January 22, 2011

Ovi Store Requirements vs. Extras Testing QA

If you want to publish your applications on Ovi Store for Maemo 5, you have to fulfill certain criteria for the package to be accepted. The technical ones are listed in the document Maemo™ 5 Applications: Ovi Store Entry Requirements. Here are some problematic entries that were not clear to me in the beginning (coming from Extras QA and a Debian-based background):

  • The file must be named myapplication_1_0_1.deb (for an application that is called "myapplication"). Interesting factoid: The version number must include three digits (one can interpret that as "no less and no more"). That's different from the Debian standard naming of myapplication_X_armel.deb (where "X" can be any format version number, and "armel" specifies the target architecture). So if you have packaged your application, make sure to rename the file after upload.
  • The relation of the file size of /opt compared to the files in /usr must be greater than 1:80. Here's an example from That Rabbit Game: /usr contains two files: The icon (7kB) and the .desktop file (128b) and /opt contains one file: The binary (658kB). However, the difference between these two is not a factor of over 80 when compared with "du -sh" (depending on the filesystem settings).

With that said the structure of the testing criteria in that document is very clear and (apart from some problems with the detailed specs), everything is understandable, well thought-out and can be tested by following the instructions in the document. Some of these could be use to "formalize" the Extras-Testing QA checklist here on Maemo.org or at least provide an easy-to-follow guide for carrying out the basic tests.

Wednesday, December 29, 2010

qw 0.1 is now available for Maemo 5

My second new game this year - qw - has been released for Maemo 5 today. Version 0.1 (a tech demo, not a proper final release) gives you a sneak peek on the gameplay with 9 different levels and four-player support (if you hook up an external USB keyboard or get together really close for some N900 keyboard multiplayer action). The gameplay is simple: You need to control your player cursor (either via touchscreen gestures or keyboard) and enclose areas of the game with lines in order to fill them with a colored image. Beware of the enemies, as they will destroy your lines and split your points in half. If you enclose one or more small enemies, your points are multiplied.

A .deb for Maemo 5 is available from the qw homepage and packages for Symbian are also available. Try it out and send some feedback :) Enjoy!

Wednesday, December 22, 2010

That Rabbit Game 1.2 is now available for Maemo 5

I've blogged about it already, and even showed some code during an Interview at Nokia World, but there have not been any releases of That Rabbit Game so far, mostly due to Ovi Store QA not understanding what Optification means and requesting that the version number of the application appears somewhere in the app UI (after 15 days in QA). I've made the requested changes, added scoring and pushed new releases (of version 1.2) for both Symbian and Maemo 5 to Ovi QA.

Until the game gets published on Ovi, I decided to release packages on the website so you can download and enjoy the game right away - and maybe even provide some feedback. Please don't mirror/redistribute the packages, but link directly to the website. Download That Rabbit Game for Maemo 5!

Controls are via accelerometer (to tilt the rabbit head left/right) and via touchscreen (tap to flap your wings - the longer you tap, the harder the wings flap). The goal is to lose 10 coins in 90 seconds by getting shot 10 times. After that, the next goal is to lose the 10 coins in as little time as possible. Yes, you control the rabbit head, and not the crosshairs.

Updates and changes will be announced via @thatrabbitgame on Twitter, so follow it and tell your friends. Enjoy!

Wednesday, December 15, 2010

The Qt promise and what Maemo 5 needs

(tl;dr: Nokia should provide updated Qt packages as official SSU for Maemo 5.) Before I start, here are some facts (correct me if I'm wrong):

  • The N900 runs the Maemo 5 operating system
  • Maemo 5 received some updates (the latest one being PR1.3)
  • We don't really expect PR1.4 to come out any time soon, if at all
  • The MeeGo Handset images from meego.com are inferior to Maemo 5 and not a replacement (and never will be)
  • The MeeGo operating system on the first Nokia MeeGo handset will have a proprietary UX and proprietary apps, and won't be available for the N900

In summary, it means: We are stuck with Maemo 5 on the N900. And that is a good thing! Lots of useful apps, a helpful community (if you subtract the trolls) and a polished OS. Sure, there's room for improvement, and lots of open bugs that should be fixed, but that's another issue (which will ideally be solved by open sourcing closed components with bugs that Nokia isn't interested in fixing anymore and by the Community SSU). This one is about Qt.

Two days ago, an e-mail was sent to maemo-community, proposing a "community service pack", which basically is a big pile of workarounds. Read my response for some initial thoughts.

When Qt arrived on Maemo 5, the promise was two-fold:

  • Write your apps in Qt and you're ready for MeeGo (apps written now will run on the platform released in the future)
  • Maemo 5 gets Qt support, so MeeGo apps will run on the N900 (apps written in the future will run on the platform released now)

It turns out that the first one will probably hold true (surely with QML, maybe even with QWidget), while the second one is doubtful, as Maemo 5 has only got Qt 4.7.0 through the official channels (PR1.3), with no real official update in sight. If you use QML, use QtQuickCompat as workaround ("Qt Qml plugin that reregisters all “Qt 4.7” types in the “QtQuick 1.0” namespace … useful if you’re forced to stay with 4.7.0 (e.g. on N900), but still want to use the new namespace.").

There is also a real bug (yes, a bug!) in Qt 4.7.0 on the N900, and the fix isn't released as update - it's a new package: libqt4-bearer-hotfix ("This is a hotfix for the broken ICD package in Qt 4.7.0. It can be removed once Qt mobility 1.1 is released."). Now, the proposed "Community service pack" would combine all these fixes into a single dependendable metapackage (yes, a new one). It becomes the "Unbreak my Qt" feature that every app developer has to depend on and specify in the packaging.

This is wrong! No developer targetting MeeGo who has not heard about Maemo 5 will go through all those ugly workarounds and spend a week fixing things up for Maemo 5 just so that the app works. Now imagine what would happen if the first MeeGo device also introduces such kludges once it falls out of its support life cycle. Or what if the problems on Symbian are similar, and developers have to special-case things there. Not only for Symbian^3, but also for S60v5? Fragmentation.

How to avoid fragmentation? Simple: Provide Qt as a "feature" with a quicker release cycle that can be updated every month if need be. Provide Qt updates also for operating systems that don't get updates for the OS anymore. Here's my proposal:

  • Provide SSU updates for Maemo 5 for Qt (and Qt Mobility) through official channels (that's the important part here!)
  • A new Qt (and Qt Mobility) release should be available on all platforms (Maemo 5, S60v5, Symbian^3, MeeGo) at the same time through official (end-user approved) channels
  • Apps targetting stores and repositories (Maemo Extras, Ovi Store, MeeGo Apps/Downloads) should be able to depend on the latest Qt (and Qt Mobility) version

Without that, you'll get fragmentation similar to Android: The 1.5, 1.6, 2.1 versions are similar to Qt 4.6, Qt 4.7.0 and Qt 4.7.1 (for example). Again, you don't need to update the OS, just update the framework - through official channels!

Saturday, December 4, 2010

Hildon UI elements in QML

I've been playing with PySide and QML this week (more on that soon), but here's something that might be interesting to the Maemo community: Using the native Hildon look and feel of Maemo 5 in QML.

This QML demo uses the current theme graphics of Hildon and provides QML components that can be used just like their Hildon counterparts, but inside QML UIs. This is not a complete library, just a test of what could be possible in case anyone wants to step up and create and maintain a Hildon library of QML components. Here's a video:

The code for this demo is on Gitorious - you can try it out on your N900 using qmlviewer.

Monday, November 29, 2010

gPodder 2.10 for Maemo 4 and Maemo 5 released

As promised last week, a new release of gPodder is out. The package for Maemo 5 is already in Extras-Testing, so test it and vote for it. The package for Maemo 4 has already been uploaded to the autobuilder and should be available shortly.

This new release brings yet another round of UI improvements, and it also incorporates the feedback that I got at the MeeGo Conference:

  • Expose "Pause subscription" in UI
  • Multi-delete in episode lists (Maemo bug 5182)
  • Setting for episode auto-delete on startup
  • Custom episode list model (faster loading)

You can find a detailed ChangeLog at gpodder.org/changelog/2.10.

If you are not yet a user of gPodder, why not take the opportunity to try it out? You could subscribe to the MeeGo Conference 2010 Video Podcast (Yahoo Pipe) and (re-)watch the sessions on your device. Of course, audio and video podcasts are supported as well, as are YouTube user channels and Soundcloud users.

Friday, November 26, 2010

Maemo 5 app UIs: {The,A} big picture

Sooner or later it will be necessary to create a QML UI for gPodder if it is to integrate nicely with devices on which Qt is the "native" toolkit for third party apps. At the moment, the reusable UI elements that can be used with QML (Qt Components) have not yet been officially released (the Git repository is available on Gitorious, though), and there are no UI style guidelines for Harmattan out (yet?). I'm also not able to locate UI style guidelines for QML apps on Symbian^3, and there are only a few small sample QML apps out right now.

Let's look at what we have on Maemo 5 right now. Here's a simplified overview of the current Maemo 5 UI of gPodder:

You can also check out the full-size image (~ 3.5 MB).

The UI follows the Maemo 5 Style Guide where it makes sense and tries to come up with better solutions where the Style Guide does not have a definitive answer. I'd like to hear your opinion about the current UX of gPodder and how these concepts can be translated into a QML app that integrates nicely with "future" UIs (Harmattan, S^3). The new-style episode list that can be seen in this picture will be made available with the next release that will be out Really Soon Now™.

Tuesday, November 2, 2010

MaePadWeb 2.0: Take your MaePad anywhere (even on a N8)

The companion app to MaePad that has been announced some days ago is now available in Extras-Devel for your N900, with some nifty features:

  • Fully edit the checklists in your database
  • Native Maemo 5 look and feel in the browser (title bar, toolbar, lists, ...)
  • Dynamic themeing based on current Maemo theme
  • Per-session password for some security (inspired by MAD Developer)
MaePadWeb in a web browser

This means that if you are using the NSeries theme, it looks like this, but if you are using Digital Nature, this is how it looks (and that should work for all themes). On your device, you will see a simple info window. Now, that's bringing the Maemo 5 UI to your Desktop computer's web browser. But does it work on mobile devices as well? Of course! Let me present you MaePadWeb running in the Symbian web browser on a N8-00:

MaePadWeb on a N8-00

If you think that this looks shopped, check out the video for further proof and to see the checklist editor view in action :)

This project brings together some great technologies: Python (for the backend) and HTML/CSS and JavaScript (using JQuery for convenience) for the frontend. Apart from the artwork, it does not depend on anything from Maemo 5/Hildon that isn't available in MeeGo already. In fact, Python with SQLite3 support is the only real dependency of this app on the backend side. With all the confusion on what to use for MeeGo Handset UIs (MeeGo Touch Framework, QWidget-based Qt, QWidget inside QGraphicsView, QML, Qt Components, ...), the HTML/CSS/JavaScript combo seems like a good cross-platform alternative (you still have to run the backend somewhere, but it can run on the same device, of course). All you need is a good browser/JS engine/rendering engine combo (Fennec/QtWebKit on MeeGo Handset, MicroB on Maemo). This also works on the N8x0 with MicroB :)

Wednesday, October 27, 2010

MaePadWeb - A Web UI for MaePad running on your N900

One of the annoyances with task lists on mobile devices is that there is no easy way to view or edit your task list on your computer as well (there are some web services that allow for these things, but you have to trust your data to these services, and not all these services have a full-featured Maemo client app, and they mostly need to synchronize data between different clients).

So, what about having a simple HTTP server that you can start on your N900 and access from your computer's web browser to view and edit your MaePad checklists? Here's a short video of how it works at the moment:

Here's a screenshot of how the checklist view looks right now:

The MaePadWeb application will be available soon. On a related note, MaePad 1.8 is out now with live search support for the memo list - check it out and test it/vote for it!

Monday, October 25, 2010

SSH agent forwarding in Scratchbox

I usually have the Maemo SDK running inside a VM - either completely remote or on the same machine (so I can have a 32-bit minimal Debian install containing Scratchbox independent of the host system). I can then SSH into the development VM from my working machine using public key authentication and the SSH agent. I also have agent forwarding set up, so that I can SSH from the SDK machine directly to the N900 (to deploy binaries and .debs) or to some server requiring SSH access (e.g. drop.maemo.org) without having to generate lots of keys and distributing the key to all kinds of different machines.

Using -A (or ForwardAgent yes in .ssh/config) when SSHing into the SDK machine makes it possible to connect to other machines from it, utilizing your SSH key. This sadly does not work when starting scratchbox, because it opens a new environment, and the $SSH_AUTH_SOCK environment variable is lost. To fix this, I simply write the contents of this variable into a file accessible from Scratchbox and then export this variable in the Scratchbox login script. I usually also have a symlink in $HOME pointing to the SDK $HOME:

ln -s /scratchbox/users/$USER/home/$USER ~/sdk

With this in place, I can now edit the "normal" user's login script by adding the following line at the end of .bashrc:

echo $SSH_AUTH_SOCK >~/sdk/.ssh_auth_sock

Scratchbox has its own login script (also called .bashrc, but sitting in the Scratchbox home folder), so we edit this and add the following line:

export SSH_AUTH_SOCK=`cat .ssh_auth_sock`

After this, logout of Scratchbox, logout of the SSH session and then connect again with SSH forwarding:

ssh user@maemosdk -A
scratchbox
ssh-add -l

The last command should display the fingerprint of your SSH key. You can now connect to remote hosts from within your Scratchbox session while your SSH key still resides only on your local machine, loaded into the SSH agent.

Monday, October 11, 2010

gPodder 2.9 for Maemo 5 in Testing

A new release of gPodder is out. Test it and vote! It has got some fine-tuning of the UI for Maemo 5 users that you will discover one by one. I just want to highlight two UI changes that should enhance the user experience, and compare them to what the previous version had.

The episode list

gPodder 2.8 introduced MAFW integration, and with it came the ability to save position and duration information for each episode. This was displayed in the episode action dialog, but not in the episode list. We now display the position and duration in the episode list, which allows you to quickly scan for an episode depending on its duration (or check how far you have come for a given episode). In the "All Episodes" list, we also display the podcast name for each episode so that it is clearer from which podcast an episode is coming (the content of the episode "Mini Book Reviews" is much more predictable if you know that it comes from "Python411").

Updating feeds

Previous versions of gPodder changed the "Check for updates" button into a combined progress indicator and cancel button. It was not really obvious to first-time users that you can cancel the feed update, and if you accidentally tapped the button twice, the feed update would be cancelled and you might be confused. gPodder 2.9 introduces a fancy new progress bar that appears (and even slides in and out thanks to hildon.AnimationActor) during the update and has a more obvious red cancel button. With the gained screen space (the progress bar is much bigger), we can also show more information about the update process, like the name of the updated podcast.

A detailed changelog can be found at http://gpodder.org/changelog/2.9. Of course, the Maemo 4 (N800, N810) package has also been updated, and is available from Diablo Extras right now.

Wednesday, October 6, 2010

Modifying the Maemo 5 task switcher and launcher

This will be the last post for this week, I promise ;) After playing around with the MeeGo Handset launcher and task switcher, I decided to have a look at how this could be implemented in Fremantle, because the big previews and the paginated launcher are easier to use in some cases (you can also checkout the contents of a window while scrolling by without having to activate it). hildon-desktop manages the task switcher and launcher, among other things. The results of two days of hacking are two patches:

What I'm missing right now and did not succeed in implementing straight away is the "snapping" of TidyFingerScroll to page boundaries, so that whenever a scroll operation is finished, it automatically scrolls to center the icon page (for the launcher) or a preview window (for the task switcher). Obligatory demo video (.debs and patches are linked from the threads above if you want to try it out yourself) here:

If you happen to have experience in Clutter, why not give it a try? I suppose you would just need to implement another scroll mode in TidyFingerScroll and then request this mode in hd-task-navigator.c and hd-launcher-page.c. Who's up for the challenge? :)

Random observation: Hidden in hd-task-navigator.c one can find a geeky gem:

  xthumb = ythumb = 0xB002E;

A new gPodder release should be ready next week. And now back to some Uni stuff :)

Saturday, June 12, 2010

Fine-grained playback status in gPodder and Panucci

I've just uploaded Panucci 0.9-alpha0 to Maemo 5 Extras-Devel. This package is the first one based on the new codebase, which includes support for sending fine-grained playback status messages to gPodder and also receive metadata about episodes from gPodder. This makes listening to podcasts and managing your listening queue even more comfortable. The following screenshots are from development versions of gPodder, but you'll soon be able to enjoy these new features with the upcoming release. Until then: Please test Panucci 0.9-alpha0 in Extras-Devel (I won't be promoting this package to -Testing yet, but report bugs against it if you try it from -Devel), so we can fix any outstanding bugs until the first final release.

So, what's working so far? gPodder gained the display of the current position and total time in the episode actions dialog:

This position information is automatically sent from the newer Panucci version (so it depends on you using Panucci for playing podcasts). Another cool side-effect is that this information will be synchronized with gpodder.net if you are logged in and have enabled synchronization, so you can finally start playing back episodes on your computer, and then pick up where you left on your mobile phone on the go. You can also view a detailed overview of what parts of an episode are played on gpodder.net:

This is really an important feature milestone for gPodder (and Panucci), and it's nice to finally have playback status and episode duration information inside gPodder. Expect a new gPodder release soon, released together with the new version of Panucci (due to the branching history of Panucci, there are some feature regressions, like missing display orientation controls, but these will be re-added in the next few weeks as we move along).

Sunday, May 23, 2010

gPodder 2.6 for Maemo 5: A visual tour

gPodder 2.6 (an app for Maemo that can subscribe to and download podcasts, YouTube videos and tracks from Soundcloud) has been released today. The package is in Extras-Testing, so please test it and vote for it! A package for Diablo (Maemo 4, N8x0) is also available already, and includes some Diablo-specific fixes (the "New episodes available" selection was broken, but works correctly now).

I've prepared some screenshots to compare the UI of gPodder 2.5 for Fremantle with the UI of gPodder 2.6. Here are a few examples:


The episode actions dialog now has a dedicated "Delete" button for downloaded episodes


The settings dialog has proper "Save" semantics now (close the dialog to discard changes, click on "Save" to apply changes) - this has been suggested during UX-Week 1


The progress bar for the episode list has rounded corners (useless, but looks better)

Another feature that isn't visible at first: If you get "New episodes available", and you can't decide from the title of an episode if it's worth downloading, just long-tap the episode and choose "Shownotes" from the context menu to display the complete shownotes in a window.

This release includes improved gpodder.net support (easier configuration, restoring of subscriptions now works on first run), and will feature more fine-grained episode playback status synchronization with the (yet-to-be-released) new version of Panucci.

Monday, March 1, 2010

Video of my talk from January; coming up: Nokia App Forum Alps

Back in January, I've given a talk about Maemo Development at the Metalab Vienna. It's been up for some weeks now (the talk is in German, but at least I was using the N900 during the whole presentation. BTW: Is it possible to disable auto-rotate in the image viewer?): (direct link)


Maemo 5 "Getting Started" from metalab on Vimeo.

This upcoming weekend, the Nokia Mobile Developers Conference is taking place in Hagenberg, Austria, and if you happen to have time on March 5th and 6th, register for free (free shuttle busses are available from Vienna to Hagenberg and back). I'll be giving a talk about Open Source Applications on Maemo 5. Say hi if you happen to be there! :)

Monday, February 1, 2010

Announcing MaePad for Maemo 5

Last Thursday, Claes Norin asked me if there's going to be an app like Maemopad+ for Fremantle. "Neat idea", I thought, and started hacking, overhauling the whole UI, refactoring some ugly parts of the code and making it generally shine and be usable as every day productivity companion on the N900. Claes was kind enough to provide me with valuable feedback and the necessary artwork. Now, let me introduce you to... MaePad!

MaePad in action

Due to the big changes in the UI and source code, MaePad is only available for Fremantle at the moment, but I hope to be able to provide it for Mer as well when it becomes available for the N800 and N810.

If you are feeling adventurous, please try out MaePad 1.0, which is available from Maemo Extras-Devel now.

Wednesday, December 23, 2009

gPodder "after 2.1" Maemo 5 UI Changes (#maebar)

Quick note about the stable version: Thanks to the hard-working testers, gPodder 2.1 has received its necessary karma points in Extras-Testing before the quarantime time is up, so we are just waiting for some more days to pass before gPodder 2.1 will finally enter the Extras repository.

In the mean time, there have been some important developments in the Git repository, mostly based on ideas from the Barcelona Long Weekend - thanks to all the people who provided valuable input, especially Tuomas (tigert) for all the hard work. I have created a new set on Flickr with some screenshots of the current development version:

The new UI is not set in stone, and still has some rough edges, so I'd like to receive some feedback on what can be improved.

If you want to test the development version interactively, use Git to checkout git://repo.or.cz/gpodder.git on your device, and then run bin/gpodder --fremantle --verbose inside the checkout to start the development version in debugging mode. Make sure to have the current version of gPodder installed to drag in the required dependencies (alternatively, install the dependencies by hand). As with all development versions, if it breaks (or messes with your downloads/subscriptions), you got to keep the pieces.

Thanks in advance for the feedback :)