Nokia N9 - Meet MeeGo Harmattan

The smartphone market is crowded (or, 'healthy', you could say); we have iOS and Android in the top spots, and a range of competitors like Windows Phone 7, Symbian, BlackBerry 7, webOS, Bada, etc. iOS, Android, WP7 are on the ascendency, most other things are static or in decline.

What you often find though, is that you can tell the good ones apart by how consistent and pleasant to use they are. Pick up a webOS device, for example, and you instantly see a pretty OS with many great UI concepts. Use it for a little longer, and you start to see how shallow that veneer actually is - user experience nightmares, terrible performance, half-finished designs, etc. The sliding three-pane UI in webOS 3.x is a great example of this; drag the divider and the panes will judder across the screen, the main pane not resizing anything until you let go, at which point it snaps to the new position with no animation or feeling. Compare with the Twitter for iPad UI and how fluid it feels, and you would be appalled. It's such a pity, because webOS is a great concept and implementation - it just doesn't have the final 10% to make it feel like you're using something more than a pretty-looking webpage. I believe it's here to stay, however, unlike Symbian, BlackBerry OS, etc.

iOS is the king, so far, with consistency of user experience. You'd have to make a conscious choice as a developer to create an app that breaks the inherent UX niceties and animation in the OS. I like to call this the 'soul' of the platform. Android, on the flipside, is a hodgepodge of inconsistent UX, where even Google's own apps decide to feature new styles and concepts in between OS releases (the App Marketplace, for example, has been redesigned twice in recent history, with neither style matching the rest of the OS). Windows Phone 7 also has a quality UX, until you reach the third party apps, where everything degenerates (the third-party apps, being Silverlight, have no relation to the native software that comes on the phone, which is all C++ and using the same frameworks).

Recently, Nokia announced the N9, the first (and perhaps last) of their MeeGo smartphones. Where does MeeGo fit?

N9

Long awaited, the expectations were really high for this device - MeeGo was originally supposed to be the savior of Nokia, their modern smartphone OS to replace the aging Symbian. When Nokia announced in February that they were instead going to move to Windows Phone 7 as their primary platform, most took it as a sign that MeeGo was simply never going to be ready, or competitive. The open-source version of MeeGo for handsets is so barebones that it would take another year at the least to build a compelling user experience on top of it, so it was understandable that Nokia would focus their efforts on WP7 instead.

Then we saw the N9.

The N9 is an absolutely stunning device - sleek, minimal, with a curved glass front and no visible buttons. What was more shocking, however, was the software. Nokia's MeeGo 'Harmattan', powering the new flagship, was not only good, it was as stunning as the hardware.

This is Nokia's iPhone; the attention to detail and design ethos is really befitting a modern smartphone platform. The OS feels alive, with UI elements swooping gracefully under your finger, alerts and dialogues popping onscreen with a bounce. The software and hardware feels like it was designed from the ground up together as a seamless whole. Multitasking is performed by swiping a finger from any side across the curved glass screen; notifications from all your services (Facebook, Twitter, mail, etc) have a dedicated section on your homescreen. The design language and iconography is a breath of fresh air. Performance-wise the device screams, as everything is running as native code and the GPU controls everything onscreen (a la Core Animation on iOS).

The N950, running MeeGo Harmattan, beside the E7, running Symbian. OCD bonus: you can order your icons by color to really make your device stand out.

HACKABLE

MeeGo Harmattan is a full GNU/Linux stack, and seems to hold its developer roots close to it; right in the Settings app is a toggle switch to turn on 'Developer Mode', effectively giving you root access and an SSH shell. The N900 (the precursor to the MeeGo initiative) was renowed for its hackability in much the same way. It's very likely that the N9 will be able to dual-boot Android like the N900 before it, so I have a feeling that this device will be extremely popular in the techie community. MeeGo Harmattan puts Android to shame, design-wise, whilst retaining the über-hackability that developers and geeks adore.

MEEGO UX

Having used the developer version of the N9 hardware, the N950, for a few weeks now, I can safely say that MeeGo Harmattan is right up there beside iOS in the user experience department. Everything is consistently good, even the third party apps. This design really has been thought through even to the smallest details. The development frameworks allow you to create really great apps, consistent with the rest of the OS (even inheriting the subleties of animation and timing and interaction, similar to iOS). Even on last year's hardware everything is smooth and pleasant to use. MeeGo Harmattan, unlike so many other OSes, is not shallow; the user experience goes all the way to the core. It has soul. It absolutely deserves to stay on the market in some form, even if WP7 becomes Nokia's primary smartphone platform.

Nokia's MeeGo Harmattan on the left, open source MeeGo on the right…

WRAP UP

The N9 is a glimpse of what could have been; it doesn't sound like Nokia has any plans to continue making MeeGo smartphones. I fully agree that they should be laser-focused on Windows Phone, but it makes me sad to think that such an awesome device and OS have no future (beyond being the poster child for Qt mobile development as Qt expands to Nokia's dumbphone platforms).

The N9 and MeeGo were too risky a bet for Nokia's future smartphone platform; CEO Stephen Elop describes the WP7 move as 'removing the handcuffs' for the MeeGo team - the fate of Nokia was no longer on their shoulders, so they could pull out all the stops to make an amazing OS to truly show that Nokia's still got it. What becomes of that OS now, we don't know. Nokia calls it their plan for 'future disruptions', which could very well mean using it for a tablet (Elop stated that Nokia very much has to be in the tablet space at an AllThingsD conference recently), or keeping it on the backburner as a 'just in case' scenario. Does the general populace need another smartphone platform? No, I don't think so. But I absolutely think that we, the tech fringe, are better-off with this one in it.

DISCLAIMER

The N950 license agreement, as it's prerelease hardware, specifically states that I cannot say anything negative about it. Fortunately, I honestly don't have to take that into account as I have absolutely nothing negative to say. It's that good.

Lights Off for Windows Phone & BlackBerry PlayBook

This week Lights Off launched on Windows Phone 7, following up the BlackBerry PlayBook release the previous week.

I'm really happy with how the Windows Phone version turned out in particular, and fans of the game from iOS will be happy to see that all the features they know and love made it intact. Developing for WP7 is quite refreshing, and even though it had its fair share of head-desk moments it's nice to see that the graphics/animation engine is just as powerful as Core Animation (unlike some other OSes that shall remain nameless…).

The PlayBook porting process, on the other hand, wasn't as terrible as I thought it would be. Not being a Flash fan, after developing Lights Off from the ground up in ActionScript I can see why Flash developers love Flash. On the PlayBook, too, Flash/AIR apps are, for all intents and purposes, native apps, so you don't have a horrible non-standard user experience when running Flash apps. Like Silverlight in Windows Phone development, Flash is also fully capable of all the things that CoreAnimation does, and the entire process was actually really enjoyable. I may make more PlayBook apps…

RIM sent out a free PlayBook unit in return, so expect a longer post on the device and OS itself. Short version: I actually like it, flaws and all. No it doesn't compete with the iPad. A 10" model might.

Grab Lights Off for Windows Phone from the Marketplace, and/or the PlayBook version if so inclined.

Chameleon: UIKit for Mac OS X

Sean Heber over at the Iconfactory has just published a really awesome project called Chameleon; it's basically an open source re-implementation of UIKit for Mac OS X. With this, you can port apps from iOS to the Mac really easily using all the CoreAnimation-powered UIKit classes you know and love. You can even create a hybrid UIKit and AppKit application that integrates the best bits out of both the Mac and iOS development environment. Twitterrific 4 for Mac uses this framework to share its codebase across the Mac and iOS.

I was lucky enough to get an early chance to port an app to Mac OS X using this, and it blew me away. In fact, I was able to get several apps up and running with very little effort. All the localization work you've done works perfectly too.

SameGame for Mac uses Chameleon, and was ported in a couple hours - a perfect example of how easy to use Chameleon is. It should (approval pending) be on the App Store soon.

Nokia Developer Gift, Pt. 1

A few weeks back, after Nokia had announced they were upending their software strategy for a partnership with Microsoft, they promised us developers a few things; the two key items were one free Nokia E7 and one free Nokia Windows Phone (when they become available).

Today arrived on my doorstep the aforementioned E7, and I thought it would be proper if I wrote something about it here.

Ok, the Nokia E7 is incredibly impressive hardware. Gorgeous,... on Twitpic

First impressions are always important, and the moment I set eyes on this thing I was stunned. The hardware design is absolutely beautiful; a large 4" AMOLED display and aluminum frame hiding a svelte keyboard. The slider tilt-hinge mechanism is so very solid and appealing, and the device is surprisingly thin for a slider. I couldn't help but think how this phone would be a chart-topper if it was running WP7 or Android.

Ok, the Nokia E7 is incredibly impressive hardware. Gorgeous,... on Twitpic

Sadly, it's running Symbian. It must be said, the latest version of Symbian, Symbian^3, is extremely nice. Unlike its predecessors (anyone who had the misfortune to use a 5800 or N97, I feel for you), it's actually designed for a capacitive multitouch touchscreen. Using it reminded me of all the things I loved about Symbian, back before the iPhone changed the world. While Symbian^3 may be great (it's much easier to use than BBOS6 on the Torch, for example), it's nowhere near the class of modern mobile OSes (iOS, Android, webOS, Windows Phone 7). Fortunately, this time next year we won't have to have this conversation anymore.

The camera quality on the E7 is a far cry from the Nokia N8 imaging flagship; there's no half-press to focus on the camera button, and the photos feel more like a camera phone than the N8 (which is on par with a point and shoot camera). Of course, it has a front facing camera for 3G video calls, like nearly every Symbian phone since 2005. It eschews the microSD slot, so you have to rely on the internal storage, and has a dedicated SIM tray like the iPhone.

All in all, this is a very nice gift from Nokia to its developers. The message is twofold; it shows developers that Nokia still cares about Symbian, and wants them to continue development for it, but most of all, it reminds developers that Nokia can make stunning hardware. It makes me giddy thinking about the next step in this giveaway, when Nokia distributes its first Windows Phone 7 devices to all its developers. As much as we in the tech world write off Nokia for using an outdated and limiting OS like Symbian, it's easy to forget that they are still the #1 phone manufacturer in the world. Their hardware is superb, and WP7 is a fantastic OS (though I wish Microsoft would get their updates out within three months of missed release dates... Seriously :-p), and I can't wait until the two come together. Some very exciting times are ahead.

Speed for Windows Phone now available

Speed for Windows Phone 7 is now available worldwide on the Windows Phone Marketplace. It features all the same features you know and love from the iOS version, including the HUD mode.

This marks the first major step of my cross platform push, with Speed now available on iOS, Android and Windows Phone.

Grab it now from the WP7 Marketplace or scan the tag (if you're on device) or Zune (if you're on a Windows machine).

Happy driving!

Consistently Bad

So the end result? Consistency – Yes. But consistently bad.
Dermot Daly on cross platform toolkits for mobile app development.

Nokia + WP7

Today, Nokia announced an Earth-shattering change of course; no longer will they try and play in the smartphone software game, instead they will be licensing Windows Phone 7 from Microsoft.

Nokia has been in dire straits since the iPhone was announced in 2007. They were so blown away by it that they reasoned that it couldn't possibly be real, instead believing it to be a smoke and mirrors play from Apple. When the iPhone launched, and proved to be genuine, they panicked. It wasn't until 2010 that Nokia launched a capacitive touch smartphone to compete, the N8, and though the hardware is top-notch quality the software is still generations behind iOS (and since then, Android, webOS and WP7 have sprung up, all new-generation platforms for the future-computing space).

Symbian^3, the OS shipping on the N8, is the best version of Symbian yet; little-known fact: before the iPhone, I was a Symbian fanboy. I rocked a 7650, N-Gage, N-Gage QD, and a 6630 during the 2000s. There was no other mobile OS as advanced; Symbian was a fully multitasking OS with OpenGL|ES support (the N-Gage and above ran ports of popular PlayStation games like Tomb Raider and Tony Hawks) and a large software library. Then the iPhone happened. iPhone ran OS X, a desktop-class Operating System. There was no way Symbian could ever have caught up to this; it was obvious even then to seemingly everyone outside of Nokia. Nokia may have ignored the iPhone, a $600 device with no 3rd party apps, but they should have been terrified by Android, which sprung up shortly after the iPhone was introduced, to which Symbian lost all but one of its licensees.

Nokia worked on a 'hobby' OS on the side, Maemo. Originally built for Nokia's 'internet tablet' line, the only 'phone' Maemo ever made it onto was the N900 (in late 2009), a device created for developers featuring top-end specs and a shell enabled right out of the box. Maemo was a real, desktop-class Linux OS, first created in 2005, and was clearly what Nokia should have been focusing on to replace Symbian. It wasn't until early 2010 however that they realized this, and partnered with Intel to create the MeeGo project - a fully open-source Linux-based post-PC (smartphone, tablet, TV, in-vehicle) platform for ARM and x86, the spiritual successor to Maemo.

Fast forward a year, and MeeGo is not ready. It's absolutely filled with potential, but it's still a good six months away from being shippable to consumers (less, perhaps, to developers). Realistically, the handset version runs on a single device (the N900) right now, with 2009 specs and a resistive touchscreen. Nokia's choice, up to now, has been to hold out for MeeGo to replace Symbian, and continue to push Symbian until that time comes (in all probability, it would mean another whole year to wait for a credible iPhone alternative from Nokia). Nokia's newly-appointed CEO, Stephen Elop, thinks that's insane, and he's right.

Microsoft offers them a way out.

Windows Phone 7 will give Nokia a credible, modern OS, significantly increasing their chances in the US, and furthermore bolstering the WP7 story by adding the top phone manufacturer in the world to the licensees. Nokia sells a *lot* of phones; this will be a major coup for Microsoft and a shot in the arm for WP7 visibility. Nokia can continue to innovate on hardware (something they are terrific at, their key strength) without having rely on a second rate OS like Symbian (or having to wait until MeeGo is ready).

I'm positively excited to see WP7 as part of Nokia's lineup. I've been using WP7 for months and adore the OS. I'd really like to see them bring WP7 to markets other than the US too, possibly replace Symbian across the board with it. MeeGo, being a Linux-based OS, will always be able to pull in the more technical people to the top end of the smartphone scale, and WP7 will be able to scale down to the not-so-smart-phones too as Microsoft add the lower-tier platform spec they've been promising for WP7 since MIX10 (320x480 screen resolutions, slower processors, etc). Nokia's hardware is top-notch, with impressive build quality. The N8 is an aluminium and glass beauty with an AMOLED screen, 12MPix camera and HDMI out; I can't imagine what they can pull together now they're not encumbered by their software. I can't wait for the day I'll be able to proudly call myself a Nokia fanboy again.

Introducing Speed for Android

Introducing our first release of 2011: the long-awaited Android version of Speed, the successful GPS speedometer app.

Speed is a drop-dead simple speedometer for Android that uses the location data from the GPS to provide a near-accurate representation of how fast you're actually traveling.

Featuring lush graphics and a clear, legible display, Speed is the perfect bicycle, boat or train speedometer. Both kilometers and miles per hour are supported, and a landscape mode for widescreen operation. Simply tap the dial to switch between miles, kilometers and knots.

Speed has been tested on various screen sizes, and should look great on larger devices like the Dell Streak or Galaxy Tab too.

Grab it for under a dollar from the Android Market!

What can I do with it?

"But more revealing was the scene after the party. Well after the other guests had gone, Jobs stayed to tutor the boy on the fine points of using the Mac. Later, I asked him why he had seemed happier with the boy than with the two famous artists. His answer seemed unrehearsed to me: 'Older people sit down and ask, "What is it?" but the boy asks, "What can I do with it?"'"

PlayBoy's 1985 interview with Steve Jobs.

Nexus S + MeeGo | Update: Ubuntu too!

So, looks like the Nexus S can run MeeGo too :o) have a custom kernel going and booted the OS from a rootfs image on the internal memory (didn't have to flash!), but as you can see the display output is fscked (maybe due to the AMOLED?) and the touchscreen isn't working either.

But… I think this is the first non-Android OS running on the Nexus S so far, so thought it was worth a post! Watch this space…

Update: Try it yourself - PROS ONLY

So if you're insane enough, you can try it yourself right now…

You will need to build a MeeGo rootfs first, in ext2 format. Use my kickstart as a base, it has a few niceties like adb support (i.e. the only way you can interact with it right now). With your image successfully compiled, copy it to linux/rootfs.ext2 on your Nexus S' internal memory (completely safe, no flashing required).

My boot.img is here - you will need to use fastboot to boot it (fastboot boot nexuss-meego-boot.img), or you can flash it to recovery if you want to dual boot.

As seen in the photo, you won't really be able to see anything onscreen, but you can use adb to get a root shell like on any Android device. Poke around, play with it, improve upon it, etc. Actually going much further than this is beyond me unless I can find some talented kernel hackers with Nexus S hardware to test on.

Go nuts!

Matching XDA-developers thread here.

UPDATE 2: Have modified the kernel to force full brightness on the screen. It's tinted very yellow, so it's not perfect, but you can see better now!

UPDATE 3 - UBUNTU:

Well, this is more of a side note, but Ubuntu runs fine on the Nexus S using the same process. Check the XDA thread for more info.

MeeGo 1.1 running on HTC's HD2

While bored today, I decided to take a look at getting MeeGo running on the HTC HD2.

The HD2 is very similar to the Nexus One hardware-wise, and MeeGo is already known to run on that, but as far as I know, nobody had ever got it running on the HD2. I set to work, and a few hours later we were up and running!

I followed the instructions at MeeGo's MSMQSD wiki page as I'd done previously for the Nexus One. I didn't deviate much from the instructions at all, except for having the kickstart file produce an ext2 image.

Using the latest kernel from Ubuntu for HD2, and a slightly modified initrd.gz from the same package, I combined these with the MeeGo rootfs image, and with a little tweaking I got as far as the homescreen.

I cannot get the touchscreen working for whatever reason (I'm a n00b, go easy on me), but I did install Android's adb daemon so I can get a shell over USB (which is how I ran the apps in the screenshots below).

Plenty of things aren't working, the touchscreen being the most egregious, like WiFi, graphics acceleration, etc. But it's a start. Anyway, MeeGo is finally running on the HD2, so I thought I should share the story :-)

The HD2 seems unique in its hacking potential, as it can run Windows Mobile 6.5, Windows Phone 7, Android, Ubuntu and now MeeGo - if you ever get a chance to pick up one of these devices, do!

Update:

I have the touchscreen working mostly now, using a different kernel. I'll update this post when I have real info.

Update 2:

Touchscreen and WiFi are now both functioning, but neither are working properly (touchscreen registers clicks as drags, and wifi won't assign an IP address to the interface after connecting). Working on it…

Update 3 - VIDEO!:

Mount iPod nano 6G Resource Partition

When you run extract2g (-4 -A) against the iPod firmware.MSE file, you end up with nine partitions. Eight of those are encrypted, so not much use right now (asides disk.fw and osos.fw, which you can force-boot using iRecovery). The ninth partition is the resource partition, which is not encrypted, so you're able to extract the contents (a FAT16 disk image, no less).

Use the following command to strip the header and extract the file:

dd if=rsrc.fw of=rsrc.img iseek=2 count=284672

(If you're not working from the 1.0/36A00403 firmware bundle, you can strip the first 1024 bytes from the rsrc.fw file, and run fdisk on it to find the sector count - 'fdisk -e rsrc.fw'. For the 1.0 bundle, the sector count is 284672).

Double-click the resulting .img file on Mac OS X to have it mount so you can browse it. There's not a lot of interesting stuff there (fonts, etc), but there are two files of interest: SilverDB and SilverImagesDB. SilverImagesDB contains all the image resources for the OS; wallpapers, icons, buttons, etc, including some curious leftover pieces like camera shutter images.

'Silver' I presume is the name or codename of the UI framework on the iPod's Pixo OS (similar to how 'Purple' was used to describe iPhone apps).

Maybe once we find a way to flash a modified rsrc partition back to the iPod (remember, it's not encrypted) then you should, in theory, be able to modify wallpapers and other images/resources.

iPod nano 6G iRecovery

After musing with James Whelton about his iPod nano homescreen hack (http://nanohack.me/), I set out to see if there was anything interesting you could do to the iPod.

Discovered what may be DFU mode: hold down the restart buttons until you get a black screen (it reboots twice) and iTunes sees the device and alerts you.

Afterwards, modified iRecovery to work with the iPod nano (had to add its DFU/Recovery USB ID) and allow it send files, and tested with some files I had extracted from the iPod nano 6G firmware (using the extract2g tool somewhere from http://www.freemyipod.org/ ).

disk.fw and osos.fw work (one boots disk mode, the other boots to a homescreen). The other files make the nano boot to a white screen, but go no further.

So, basically, it seems we can send encrypted firmware files to the iPod, and have them execute, similar to what is used to jailbreak the iPhone. If the nano rejects the file (i.e. unsigned, invalid), it reboots.

While this by itself isn't that cool, hopefully the info will inspire someone else to finally hack this thing and give us custom 'apps'.

Make sure to click '720p' to see what's going on.

Carriers vs Walled Gardens, WP7 Edition

Finding the whole 'carriers and manufacturers can have their own app store section' situation on Windows Phone 7 quite interesting.

Basically, the carriers and manufacturers of the devices can offer their own exclusive free/paid apps to their customers only, and have a dedicated category in the Marketplace for such. Furthermore they get access to the native SDK so can do things way beyond what apps built with the public WP7 SDK can do (i.e. DLNA streaming, augmented reality, hardware access, etc).

For example, LG offers an application on the Marketplace (that only their phones will see) that allows you change APN/carrier settings to match any market in which LG has a device; something you can't do with the standard APN settings on Windows Phone 7. There are definitely some other very cool free apps from LG;

You can also re-download any of the bundled apps (that you may have deleted when buying the phone).

It's a fascinating solution to the carriers-have-no-power situation on iOS, and carriers-have-too-much-power on Android. I think it's the perfect compromise.