Posts mit dem Label n9 werden angezeigt. Alle Posts anzeigen
Posts mit dem Label n9 werden angezeigt. Alle Posts anzeigen

Mittwoch, 15. Oktober 2025

Dzzee 1.9.0 for N800/N810/N900/N9/Leste

I was playing around with Xlib this summer, and one thing led to another, and here we are with four fresh ports to retro mobile X11 platforms. There is even a Maemo Leste port, but due to some SGX driver woes on the N900, I opted for using XSHM and software rendering, which works well and has the nice, crisp pixel look (on Fremantle, it's using EGL+GLESv2). Even the N8x0 port has very fluid motion by utilizing Xv for blitting software-rendered pixels to the screen. The game is available over at itch.io.




Samstag, 19. April 2014

My N9 apps and games now self-hosted and on openrepos.net

As the versions of my apps on Nokia Store grow more and more outdated, I've decided to remove the apps from there and instead self-host them on my web page and/or put them on OpenRepos.net instead. A handful of apps stay on Nokia Store; those are mostly S40 apps or apps for which a Symbian version also exists.

Here's a list of my N9 apps that you can now get for free ("deb download" is as of posting this, for new versions visit the webpage or openrepos.net):
And here's a list of my N9 games that you can now get for free (again, "deb download" is as of posting this; new versions on the webpage or openrepos.net):
Of these, the "greatest hits" and most useful apps/most fun games are (in my opinion): Billboard, Volume+ As Camera Button and chro.mono, but also give qw The Game and Petals a try :)

A list of all my apps on OpenRepos.net is also available.

Please note that unless otherwise noted, do not copy the .deb files and distribute them yourself, please always link to the project webpage (the page, not the file) or the openrepos.net page - this makes sure users can always download the latest version and from a known-good source (always be careful when downloading and installing .debs from random webpages). For end users who want to stay up to date and install the packages comfortably, the Warehouse client for OpenRepos.net is recommended.

For some of these apps (not games) that are not open source yet, I plan to clean up and publish the source at some point in the future, so interested developers can have a look, add features and/or port it to new platforms.

Donnerstag, 16. Mai 2013

Behind the Scenes: Headset Camera app for the N9

The logical step after the "Volume+ as Camera Button" app (Nokia Store link) for the N9 is another app that allows you to take photos while not touching your N9 at all. While time-triggered photos are fun, remote-triggered photos are.. erm.. "funner"? So what kind of remote "buttons" can we easily get on the N9? The remote control button on the headset is both "remote" and a "button". Also, as seen in Panucci and gPodder versions since the N900, Bluetooth headset buttons can also be queried by applications. So what do we get by combining remote control and photo taking? The Headset Camera app (Nokia Store link) for the N9! Or - for the visual reader - this:



If you want to integrate such features into your own app, the code for querying the headset buttons is readily available in the gPodder source tree (src/gpodder/qmlui/helper.py):
import dbus

class MediaButtonsHandler(QtCore.QObject):
    def __init__(self):
        QtCore.QObject.__init__(self)
        headset_path = '/org/freedesktop/Hal/devices/computer_logicaldev_input_0'
        headset_path2 = '/org/freedesktop/Hal/devices/computer_logicaldev_input'

        system_bus = dbus.SystemBus()
        system_bus.add_signal_receiver(self.handle_button, 'Condition',
                'org.freedesktop.Hal.Device', None, headset_path)
        system_bus.add_signal_receiver(self.handle_button, 'Condition',
                'org.freedesktop.Hal.Device', None, headset_path2)
 
    def handle_button(self, signal, button):
        if signal == 'ButtonPressed':
            if button in ('play-cd', 'phone'):
                self.playPressed.emit()
            elif button == 'pause-cd':
                self.pausePressed.emit()
            elif button == 'previous-song':
                self.previousPressed.emit()
            elif button == 'next-song':
                self.nextPressed.emit()

    playPressed = QtCore.Signal()
    pausePressed = QtCore.Signal()
    previousPressed = QtCore.Signal()
    nextPressed = QtCore.Signal()
MediaButtonsHandler is already a QObject subclass, so you can easily expose an instance of this class to your QDeclarativeView rootContext() and connect to the signals in QML (such a "headset button handler" might actually be a good candidate for inclusion into nemo-qml-plugins in Sailfish OS and Nemo Mobile?). As it's really just using the Python D-Bus bindings to get property changes from Hal devices, the code above should be easy (read: trivial) to port from Python to Qt/C++. Be aware that you need to connect to both .../computer_logicaldev_input_0 and .../computer_logicaldev_input, which can both exist if you have a cable headset and a Bluetooth headset connected at the same time.

You can get the Headset Camera App for the N9 in Nokia Store now, there is also a video on YouTube showing the app. Or start integrating headset button features into your own app or scripts by adapting the code above. One use case that comes to mind is using the previous/next buttons on a Bluetooth headset to control a photo slideshow on the N9 connected to TV-Out. Enjoy :)

Dienstag, 14. Mai 2013

HTML5 Web Apps on Mobile Devices

Get out your Buzzword Bingo cards, we're talking HTML5. And Canvas2D. And WebGL. See? Check them off and then continue reading. So, while writing "native" apps using JavaScript is definitely possible and works great with QML, some games are just simple enough (or want to have a broad enough audience) to warrant writing everything in HTML5.

This might also be a good time to check off XmlHttpRequest on your BB card, even if none of the following games use it - you might want to use it in your applications or game for things such as server-side stored high scores.

As far as Maemo and MeeGo is concerned, you might want to try out some of these games (especially the WebGL variant of One Whale Trip) in Fennec (aka Mobile Firefox - get it for: N900, N950/N9, Nemo Mobile).

Color Lines: This one simply uses Canvas2D, and works nicely on all mobile browsers that I tested - Maemo, MeeGo, Android, WP7.5, BB Playbook, iOS. Comes in at about 650 lines of rather well-documented JavaScript, and could easily be ported to use QML as a renderer if need be (it would be good to have a QML Plug-In that provides a JavaScript context + (a subset of) the Canvas2D API - without using WebKit (cross that off, too), that is). Also, the N900's stock browser has performance problems rendering this, while on the same device in Fennec it's quite playable.

Circle1D: This is a straight Python-to-JavaScript port of a lame 2D "Physics" Engine. It's kept very (read: very, very) simple, and collision detection could be done in a nicer way, but the inefficiency of it provides a nice benchmark for comparing JavaScript engine performance (I'm sure you can find "engine performance" on your bingo card as well) on mobile devices. The N900's default browser can't handle it at all, but Fennec can at least render/simulate it, albeit slowly.

One Whale Trip: This game actually started out as a Python game for PyWeek last September, which was also ported to the N950/N9, but as a test for trying out WebGL, I decided to port it from Python/PyGame to JavaScript/Canvas2D and then to WebGL (the Python version also contains two renderers - a "blitting" one using PyGame surfaces, and an OpenGL one using OpenGL [ES 2 on mobile]). The Canvas2D version works again in all modern mobile browsers (same as above), the WebGL only works on browsers supporting WebGL, for example Fennec/Firefox on both the N900 (even though very slowly) and not in any of the stock browsers (even not the one on the N9). As WebGL is "roughly" the same as OpenGL ES 2.x, one could imagine sharing at least shader programs for a possible C++-or-JavaScript cross-platform application.

So yeah, for smaller applications and/or games, HTML5 is definitely an option. In Firefox OS, your HTML5 web app will - also with WebGL - work and integrate nicely as "native" app. If you also want to create "native" applications (maybe after finishing the HTML5 version), consider encapsulating your JavaScript code so that you can re-use it in QML code, or (in case of WebGL apps), at least design the rendering part of your application in such a way that the code/architecture and shader programs can be shared with a C++ port of your existing HTML5 app.

Another option that's worth considering: Writing a compatiblity application layer that can load (specially-crafted) WebGL subset applications and display them on a fullscreen SDL-(or Qt)-provided window. Applications written in this WebGL subset could then be deployed on the web as HTML5 application or "natively" running on top of a JavaScript engine only. I'd call that "webglenv", and no, I haven't written it yet.

Sonntag, 12. Mai 2013

Petals for Harmattan - A pure Qt4/Qt5 JS/QML puzzle game

Next up in my list of things I did in the last weeks/months and never blogged about is Petals (Nokia Store link), a "beautiful, brain-teasing puzzle game for 1-4 players" if the game's website is to be believed (I would like to think it is...). As always, there's some technical details about the porting and creation of this game. While another recent game (Tetrepetete) has been done on a low level (C++ using no frameworks, and interfacing with multiple front-ends directly, including an OpenGL ES frontend, a console-based ncurses frontend(!) as well as a server-sent events/XHR/Canvas2D-based HTML5 frontend(!!)), this one is approaching things from a very high level: JavaScript.

Petals: A puzzle game written in pure JavaScript and QML
The gameplay logic of the game is implemented in pure JavaScript (without any QML dependencies), so it could easily be ported to, say, HTML5, but for integration reasons, QML seemed like the better choice for a release on the N9/Harmattan. Also, writing things in JavaScript wouldn't preclude a console-based frontend using nodejs and node-ncurses from happening should the need arise (making the flowers look good in ASCII art would be the challenge there - or cheating by using libcaca). Ok, ok - stop cursing, I'll stop talking about curses (cue laugh track).

Writing pure QML applications has the advantage of easing porting to Qt 5. While QtQuick 1.1 still exists on Qt 5 (and is the only QML option at the moment if you are also targetting iOS), QtQuick 2.0 is usually the better choice for performance reasons.

In my case, the changes necessary to port from QtQuick 1.1 to QtQuick 2.0 were:
  • Change "import QtQuick 1.1" to "import QtQuick 2.0" (sed(1) helps here)
  • Instead of assigning a JavaScript function to a property to create a dynamic property binding (item.someprop = function() { return otheritem.otherprop * 3.0; }), this function has to be wrapped in a call to Qt.binding() in Qt 5 (see "Creating Property Bindings from JavaScript" in the Qt 5 docs)
  • Instead of using SQL Local Storage directly as in QtQuick 1.1, use QtQuick.LocalStorage 2.0, which you can still do in your .js files - use ".import" as described in this blog post
  • In your C++ launcher (in case you need one), QApplication becomes QGuiApplication, and QDeclarativeView becomes QQuickView
  • Use "QT += quick qml" instead of "QT += declarative" in your qmake project file
And that's basically it. Of course, as this is a full-screen game with custom UI, no platform-specific components (such as Harmattan Components or Sailfish Silica) are used, so porting is a bit easier there (no need to "wait" for specific components to be compatible with QtQuick 2.0, which might realistically not happen at all for Harmattan Components). More screenshots of Petals and download links for multiple platforms can be found on the Petals Website.

Mittwoch, 8. Mai 2013

Upcoming: Billboard 1.0.9 for Nokia N9

Turns out I haven't posted here for two months, so here we go again: Billboard, your favorite low-power mode standby screen will soon receive a new update - version 1.0.9 has been uploaded to Nokia Store QA two days ago, and should hopefully pass QA and be available as an update in the next few days. This release brings a few major under-the-hood improvements and small bugfixes:
  • Fixed MeeCast icon (in 1.0.8, you can already use <<{meecast-icon-src}>>)
  • New formatter that allows you to nest {} expressions used for adding dynamic content
  • Optional image dithering (using # after the filename) for better colors in low power mode
With the new formatter, you can now output {} expressions in your scripts so that they get replaced, and similarly pass {} expressions as parameters to your scripts (for example to modify them in some way before displaying). This should allow for even more customization, some examples of what users have been doing on their N9 standby screen can be seen in the Billboard Standby Screen support thread on talk.maemo.org.

If you are looking for additional ways to tweak and enhance your Billboard-on-N9 experience, have a look at billboard-scripts, a growing collection of Shell and Python scripts that provide even more ways of customizing your standby screen.

If you haven't purchased Billboard from Nokia Store yet, you can get the current version now for your N9, and get the upgrade to 1.0.9 as soon as it's available. If you are already a happy user, watch your application updates in the next few days, and get the new version.

Dienstag, 13. November 2012

The quick way to USB tethering via SSH on your N9

Here's something obvious (and I'm sure it has been discussed before, I just can't find the link right now), but it might be helpful if you haven't played around with SSH much yet, and your Wi-Fi Hotspot isn't working (the case for me right now). The goal is to get an internet connection over your N9/N950 from a PC (tested with Linux, expected to work with OS X and probably also works on Windows - on Windows you might need something like PuTTY).
  1. Enable developer mode on your device
  2. Connect your device to your computer via USB
  3. Select "SDK mode" when asked for the USB connection type
  4. Use the SDK connection utility, and select USB connection
  5. Note the password displayed in the "Connectivity Details" screen
  6. On your computer, use "ssh -D 9898 developer@192.168.2.15"
  7. Accept the host key question, and enter the password from step 5
  8. You should be greeted by a Busybox prompt "/home/developer $" - leave that open in the terminal window in the background
  9. At this point, a SOCKS proxy server is running on port 9898, and you can use it in any applications supporting a SOCKS proxy (there are even utilities like socksify(1) (Debian package: dante-client) that make generic network applications work through a SOCKS proxy)
  10. To use it in Firefox, go to Edit - Preferences - Advanced - Network - Settings..., then choose "Manual proxy configuration" and set "SOCKS Host:" to localhost and port to 9898 (be sure to disable the proxy again when you want to browse via a normal Wi-Fi/Ethernet connection)
Instead of doing steps 4 and 5, you can set up a permanent password for your "user" account on the N9, and even set up a SSH key on the N9 to avoid having to enter the password. You can make step 6 simpler by adding an entry to your ~/.ssh/config file (on your host) - see ssh_config(5) for details:

Host n9proxy
    HostName 192.168.2.15
    User developer
    DynamicForward 9898

After that, a "ssh n9proxy" (possibly followed by the developer password) is all you need to set up the proxy. This method is arguably easier (and definitely safer) than using the Wi-Fi hotspot, and instead of using up battery on your N9, it gets charged via the USB port while you are using it.

By the way: You will have to manually connect your N9 to your mobile internet connection, this won't happen automatically.

Samstag, 28. Juli 2012

gPodder 3.2.0 (and 3.2.1) released for Harmattan

gPodder 3.2.0 "The Great Radish Famine" has been released this week, and some users (not including me, otherwise I would have caught the bug earlier) had problems with the upgrade (see bug 1627 for details), so that's why gPodder 3.2.1 is already on its way to AFM and Nokia Store today. Expect the bug fix to appear as an update in the next few days.

Highlights of 3.2.0 are an improved UI (e.g. cover art in the "All episodes" list) and Flattr integration, so you can now support podcast authors via micropayments (you'll find the Flattr button below the shownotes for podcasts that publish a Flattr URL).

The gory details about what went wrong with packaging this time can be found in the 3.2.1 blog post, and bug 1627 contains - special thanks to Reiner for providing the necessary debugging info needed to get this sorted out (again, I was not experiencing this bug myself).

If your 3.2.0 update worked out fine (the bug didn't affect all users), this is not for you - just enjoy 3.2.0, and install 3.2.1 when it comes out :)

Samstag, 26. Mai 2012

Billboard now available in Nokia Store

At the last Hack-A-N9 meetup, I've been working on a test app to show the currently-playing song. This has then been extended to a fully-fledged app that is easily configurable for the user, so that non-developers could use it (after all, hacks and scripts existed before that did the same thing).

The app is called "Billboard", and its goal is to provide useful information on the low-power-mode screen of the N9 in a way that "normal" users can use it. It also tries to be very lightweight on resources, and smart about updates so that updates are only made when needed, which saves battery power.



Billboard website: http://thp.io/2012/billboard/
Nokia Store link: http://store.ovi.com/content/279408

The currently-released version on Nokia Store is version 1.0.0, and an update (version 1.0.1) with some fixes to allow co-operation with MeeCast, fLPMC and other applications has been uploaded today and is currently waiting in the Ovi QA queue.

There's also a support thread on TMO in case you need help or have suggestions.

Mittwoch, 28. März 2012

gPodder 3.1.0 in Apps For MeeGo Staging and Nokia Store

A new version of gPodder has been released, and the package is already available from Nokia Store here, and waiting for your QA feedback in Apps For MeeGo here. This works for both N950 and N9 users. To get access to Apps For MeeGo, go to http://apps.formeego.org/ on your device, and install the Client from there.

The new gPodder version comes with some improvements for Harmattan users:

  • Redesigned artwork for the main window and episode list
  • Better arrangement of podcast list and cover artwork there
  • New preferences menu, containing gpodder.net and orientation settings
  • New empty state UI for first-time users
  • Various other changes to be more in line with the UX Guidelines
  • Context menu item to delete episodes without downloading them

I hope you enjoy this new release - please report any issues you find or ideas you have at http://bugs.gpodder.org/ - and don't forget to QA the package in Apps For MeeGo.

Samstag, 24. März 2012

Brain Party for the N950 and N9

Nearly two years ago (in April 2010), I ported Brain Party to the N900 using javispedro's awesome SDL_gles library. Having nearly forgotten about it, I "ported" it to Harmattan today - It's even a bit easier with Harmattan's SDL, which includes the necessary changes. The game doesn't pause/silence when put into the background, but the basic functionalities work, including sound.


Download here: brainparty_0.5.91-3_armel.deb (39 MB)
Source here: brainparty_0.5.91-3.dsc / brainparty_0.5.91-3.tar.gz

The game itself has been written by Hudzilla Games, who also published the game for the iPhone and XBox 360 - if you like the game, you can support them by buying the game from there. This port is based on the open source version of the game.

Samstag, 14. Januar 2012

The N9 week: Hack-A-N9, gotoVienna, Camerra, gPodder

While the first week back in Vienna after the holidays was sad for a Maemoista walking around in the city (aka Admazing (sic) Everyday), there was also enough time to release gPodder 3.0.3 (already in AFM - thanks, testers!), catch up with local Maemoistas at the Hack-A-N9 and work on gotoVienna, the Camerra hack and even more post-3.0.3 gPodder goodness. But one after the other..

gotoVienna is a public transport live ticker app by kelvan. In the days after meeting at the Hack-A-N9, we implemented a nice line number input UI that makes it easy to quickly get live information for a given line - the code is in Git, and as a side-product, merlin1991 has implemented a stdeb/distutils extension to inject an Aegis manifest and create the digsigsums file - check it out if you want to build Python packages for Harmattan without Scratchbox/the SDK.

Next up is the Camerra hack, a quick'n'dirty "app" that monitors the Volume+ hardware button and (when the Camera UI is in the foreground) simulates a click on the shutter button, effectively making the Volume+ work as a shutter button. Ideal for all your self-portraying needs! It's called a hack, because it uses the likes of xprop and xresponse directly - a "proper" implementation would use QmSystem, XTest and Xlib from C/C++, just in case someone feels like spending time on rewriting something that Works For Me ;) There's a support thread on t.m.c, the Python and PySide powered code is available on Github, and the package is available on the website and (hopefully soon) also on Apps For MeeGo.

As for the post-3.0.3 gPodder goodness: Episode list filters (bug 1527) are currently being developed, a first patch is already written, and screenshot 1 and screenshot 2 show you how it currently looks. Don't forget to report any bugs and feature requests over at bugs.gpodder.org - don't keep them for yourself! :p

And now for the next two weeks for something completely different (i.e. Uni semester wrap-ups, exams, lab interviews and lab exercises).. ;) Enjoy the newly released stuff!

Montag, 9. Januar 2012

gPodder 3.0.3 for Harmattan

A new version of gPodder - a podcast and video manager - has been released today. In addition to improvements to the existing YouTube support, this version adds support for downloading videos from Vimeo (so if you wanted to get ahold of ye olde Maemo 5 "Getting Started" video from two years ago, subscribe to metalab on Vimeo, but I'm pretty confident that you can come up with better uses of the Vimeo support ;).

Anyway, the new king of Harmattan repos is Apps For MeeGo, as everyone knows, and so start your Community QA engines and review gPodder 3.0.3 in Apps For MeeGo Testing. If you don't have the Apps For MeeGo Client on your N950 or N9, click here to download the enabler. It has also been uploaded to Ovi Publish, but if and when it appears there is anyone's guess. Don't hold your breath and switch to Apps For MeeGo for downloading (and publishing if you do!) your open source Harmattan apps.

The 3.0.3 version of gPodder packs some long overdue improvements to the Harmattan QML UI (for example, the toolbar has been cleaned up, an about box has been added and you can now check for new episodes from the toolbar) with more to come in the future. In general, 3.0.3 should provide you with a more Harmattan-esque user experience. You can always get your wishes and problems heard at the gPodder bug tracker - make use of it! :)

Sonntag, 4. Dezember 2011

This weekend's releases: Tap Tap N950, qw.py and the IP Address Widget

Over the weekend, I've pushed out some code for your enjoyment: First up is the incomplete but maybe interesting QML source code of the Tap Tap N950 prototype. I probably won't find time to work on this, but it would be sad to let the small piece of code rot - maybe someone wants to pick up the development of it. I'll answer any questions related to the code in the thread :)

Next up is the open source release of the qw prototype "qw.py", which has been developed during the Super GameDev Weekend 2010 at the Metalab Vienna last December (the next one is at the upcoming weekend; stop by if you are in Vienna!) - nearly 1 year ago. This is not the same as qw The Game in Ovi Store, but it's an earlier version, which still contains multi-player support (4 players on one PC keyboard), and it's written in Python, so it should be easily hackable.

And last but maybe not least is the IP Address "Widget" for Harmattan. This small hack (which is inspired by the earlier Calenderr calendar icon hack) makes use of the fact that the Harmattan UX reloads the icon of an application whenever the .desktop file or the icon file itself changes. The details (and a .deb for easy installation) can be found on the website - basically it shows a way to have semi-interactive "widgets" on the app list on Harmattan. I'm sure that creative readers can come up with some cool ideas :)

Montag, 21. November 2011

Plonk (formerly known as Mong) for Harmattan

Plonk (formerly known as Mong, but renamed since) is now available in Nokia Store for the N9 and N950 as free download:


This is a multi-touch game for two persons, so go out into the big blue room and ask somebody to have a game of Plonk with you :) As you probably already know, this game has been developed at the MeeGo Conference in collaboration with Cornelius Hald and Tim Samoff - sounds have been recorded directly at the hacker lounge by Erik Stein, and Randall Arnold came up with the new name. A real collaborative project, and the source is available from Gitorious! One challenge with Harmattan was disabling Swipe, we solved that with a nifty little class called SwipeControl - it's open source if you want to use it in your game, too :)

Dienstag, 15. November 2011

Hack Tuesday: Tap Tap N950 and Calenderr

The unexpected lack of lectures today (Tag des Landespatrons) left time for some one-off hacks, and here are two for you:

First up is Tap Tap N950, a very basic QML prototype of what could become a funny DDR/TTR clone - no code published yet, it still need some more polishing (and touch area support for multi-touch, plus scoring is also missing).

The other one is a simple hack to make the Calendar app icon always show today's date (day-of-month). The existence of calendar icons for each day (1-31) in the theme on the device lets me suspect that this feature was either planned and then abandoned or that it will come built-in in some future firmware. For now, you can grab this lame shell script and execute it (ideally with "nohup" - see the comment inside - also needs customizations if you changed your root password, and you definitely need developer mode for now) to have an auto-updating calendar icon until the next reboot. Watch the accompanying video for a quick demo. There's now also a forum thread for support and discussion. Sometimes I really wish cron was pre-installed on Harmattan..

Bonus exercise: Store your app's .desktop file in /home/user/.local/, generate the icon dynamically via code and update the .desktop file for some icon overlay action / new items notification ;)

Nokia Austria N9 Photoshooting Campaign

As you know, Austria is one of the few lucky countries in which the N9 is officially available - I even spotted an ad in a local cinema last week (which made me very happy, and I'm usually not very happy about ads in the cinema ;). Now, Nokia Austria is running a campaign until November 27th where you can win a photo shooting and show off your N9 style. If you use the code RHWMZE on the contest website you can get extra points (and you'll find more codes on local bloggers' websites) :)


As you might have heard in the video above, you can go to http://nokia.at/n9style to find all the details about the contest. While you are at it, if you have a N9, try out my free apps in Nokia Store. Two more are currently waiting for QA: Tennix and Plonk - yep, that's right: our Pong-style game formerly known as Mong (developed in collaboration with Cornelius Hald and Tim Samoff) is coming to Harmattan - with swipe locking - you can grab the source already now from our Git repository. And your favourite 2D tennis game is also celebrating a comeback, so be prepared for more casual gaming quality time :)

Mittwoch, 2. November 2011

Why I love the N9 and things I didn't know about WP7

With last week's Nokia World and today's hands-on event in Vienna, I got a chance to try out the WP7 devices and ask questions about them. Here's some insights that I want to share with you, because they might not be obvious if you haven't tried WP7 before (I haven't until last week, and these things were not obvious to me). I'm comparing the Lumia 800 with the N9 here, because they look very similar from the outside.

As the outer shell is basically the same (or in other words: all hardware features that they fitted into the N9's form factor could just as well be fitted into the Lumia 800 form factor), these things are software limitations that are in WP7 right now (doesn't mean that these will stay in the future). Most basic things that the N9 can do (and the WP7 devices can't yet) can even be done by the N900 and Symbian devices. It's also written from a pure end user experience perspective - I've talked about SDK availability earlier.
  • The Lumia 800 has a camera hardware button - the N9 does not. I would really like the N9 to have a hardware camera button (what's the progress on getting one of the volume keys to act as shutter button?)
  • If you turn off the Lumia 800, wake-up alarms won't work - they do work on the N9, i.e. with an alarm set and the N9 turned off, the N9 will turn itself on and ring the alarm
  • If you receive a call from a number that's not on your phone book, you can't directly add it to your phone book - you have to copy the number, then go to the contacts, create a new contact and paste the number there - on the N9, there's a button for this - and it even allows you to "Add new" or "Merge"
  • The N9 has NFC - the Lumia 800 does not (WP7 does not support NFC at the moment)
  • The N9 has TV-out - the Lumia 800 does not (on the other hand, some Symbian devices have HDMI out in addition to TV-out - that would have been nice for the N9 as well ;)
  • The N9 can be used in USB Mass Storage Mode - the Lumia 800 can not
  • The N9 shows the time (+missed calls/new mails/SMS) on its low-power standby screen (like the N8 and E7) thanks to the AMOLED screen - the Lumia 800 has the same screen technology, but (due to WP7 not supporting it, as I've been told) there's no low-power standby screen (the lock screen when the device is reactivated does have more information, though)
  • You can send and receive files via Bluetooth on the N9 - I've been told that you can't do this with the Lumia 800 (Update: According to Allan, there is an app for transferring contacts from an old phone to the new one - no info about arbitrary files yet)
  • The N9's marvelous virtual keyboard (an open source project, by the way) has very good tactile feedback - on WP7, the only feedback you can get is an audible one (although a long-time WP7 user told me that the virtual keyboard there is very good, even without tactile feedback)
  • Swipe. It really makes a difference
What's the point you ask? These are the things that let the N9 really shine compared to its WP7 "successor" (I don't talk about openness, SSH-into-ability, QML, hackability, Python goodness and other things here - that's something that developers like and really, really care about) for end users (it obviously also ignores apps, services, "ecosystems", but I'd argue that the things that I personally need are available on the N9 as well).

It also shows that when a vendor controls both hardware and software, they might be able to put together a more interesting HW/SW mix compared to the situation where someone else controls the software. And it really lets me look forward to the Next Billion(tm) and QML there. But for now, let's enjoy the N9 and create some cool apps (and games) for it, like a FM Radio GUI for javispedro's fmrx app or gPodder 3 (coming soon) maybe?

Donnerstag, 20. Oktober 2011

Games (and their backstory) for your N9, N900 and N950

I've recently been asked again about the games I wrote for mobile devices, so here it is: The post with an overview of the games, with some not-so-well-known backstories and information on where to get them for different devices. Plus a little teaser hidden somewhere.

Gaberln (N950, N9 (+Symbian): Ovi Store, N900: Maemo Talk)
This game is a simple soccer ball juggling game - developed using QML, in collaboration with Tim Samoff, who did the great artwork (and who also did the Mong artwork) - we still have to add some more features, and Tim has already done the graphics for a special hacky sack mode, let's hope we get around to finishing it at some point :)

qw The Game (N950, N9 (+Symbian): Ovi Store, N900: .deb on request, @qwgame)
This game is similar to Qix, but has its own style, and the enemies are a bit different from Qix - but it basically is an area filling game. The reason why the game is called "qw" is because it started out as a small Python hack (qw.py) during the Super Gamedev Weekend 2010, and qw were the first two letters on my keyboard. A nicer explanation is that it can be spelt (in German) like Cuvée and a reference to the different blend of different photos (flowers, places, animals) that you have to play through. The photos have been done by vogelvau, the menu structure is done using QML and the gameplay itself uses a QGraphicsView-based drawing engine.

That Rabbit Game (N950, N9, N900 (+Symbian): Ovi Store, @thatrabbitgame)
This is my first game to be published in Ovi Store; it's a "inverse duck hunt"-style game where you control the flying rabbit head, and have to get yourself shot by approaching the crosshairs and keeping steady. Flapping the wings is done by touching (the strength depends on the duration of the touch) and moving left and right is done using the accelerometer. The initial version of this game was developed in Java as an Android game for an OpenGL ES course at our University (PDF). The game for Maemo, MeeGo and Symbian is a complete rewrite in C++/Qt with the artwork taken from the original game, which I did myself in Inkscape. There is also a webOS port using OpenGL ES.

Tennix (N900, N8x0: Extras)
This one is quite old, and is actually based on a really, really old codebase of a school project from 2003. In 2007, I decided to port it to SDL for Desktop Linux, Mac OS X and Windows, and since SDL is available on Maemo as well, I then ported it to Maemo 4 in January 2008. A special "2009 Edition" was created for the N900, with updated controls and a Python-based AI enemy (using the CPython API / libpython). What about Harmattan you ask? Well..

Some of these games are just free and closed source for now. I do, however, definitely plan to release them as open source in the future. The problem is having used non-free artwork in the early prototyping stages (i.e. getting "something" visible in the engine) before replacing them with my own artwork, so I'll have to make sure to remove these things from the repository history before publishing the source. Also, code cleanups need to be done ;)

Download and enjoy the games - I'd be grateful if you could leave some feedback (either via Ovi Store, Maemo Talk, comments here or e-mail).

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.