20
Aug
09

The State of Android Development, the way I see it

The past couple of weeks I’ve been learning how to develop apps for Google’s Android platform. I’ve looked at it before but only at a high level, these past weeks I have actually been using it for real. So what do I think?

A future conquer?

Well its obvious that this platform has some serious potential. The promise of an embedded Linux platform that is tailored for the mobile, MID and even the net book markets gives a sense of the scale of what Android is trying to achieve. It can look very slick, it can do some really cool things but yet it is distinctly lacking in key areas.

So whats the problem?

There are three major area’s where Android falls behind the likes of the iPhone platform (discounting the terrible state of the Android Market but that’s something else entirely), they are documentation, a stable API, and development tools.

Documentation

Lets face it, the documentation for the Android SDK is poor to say the least. There is a shortage of example code (see my next point) and whist the official documentation looks pretty good on the surface, it too is missing key parts. Books quickly become out of date and the internet is full of potential android developers stumbling at every hurdle whist they try to figure out the way to achieve what they need.

One notable example here is the online books from CommonsWare. The online nature of these publications means that they can be constantly updated and CommonsWare do a great job of ensuring that their text is still relevant. Which leads me on to …

A stable API

The Android platform is very much in its infancy. Parts of the SDK change at a rate of knots and the poor developers have to keep pace if their apps are to work on the latest releases. This may be fine for a seasoned Android developer who will quickly come up to speed with the new changes, but the developer just starting out ends up falling into the trap of obsolete code.

There are a lot of code snippets, example programs and forums talking about how to use the Android SDK but so much of it is out of date. The rapidly changing SDK makes these once valuable resources a hurdle for the new developer, tripping them up until they realize that the way to do what they wanted has now changed.

Development tools

Now I’m not saying that XCode is the greatest development environment out there, it has its own problems, but for the developer just starting out, XCode becomes immensely valuable. Contrast this to the Eclipse integration that Android has. The editor is slow, the ‘interface builder’ (the bit you use to graphically layout screens) is pretty useless and the somewhat temperamental nature when compiling and running the app make it the bucking bronco of development environments. Some parts of the tool are just great, code completion, the vast amount of plugin’s you can use and auto insertion of dependencies make it something that you have to use but never really enjoy.

So whats the answer?

Being an open source developer, one never likes to complain about something without either fixing it ones self of suggesting a way of doing it. Well, this is a tough one.

Google have a tight hold on the official release of the Android platform so the rapid SDK changes aren’t going to go away. Eclipse has performance issues that I would have no idea how to fix so that leaves documentation, something I can change.

From now on there will be an Android section on this blog that will try to keep pace with the rapidly changing development side of Android whist providing some tutorials that the beginner will find helpful. So, stay tuned for more.

22
Jul
09

Maemo Summit registration is now open

Registration for the second Maemo Summit, to be held on the 9th, 10th and 11th of October at WesterGasFabriek, Amsterdam is now open. It promises to be a great event just like last year, so go register now!

On a related note, the schedule is filling up but there is still time for you to submit a talk proposal. If you have a cool subject to talk about, either in a lightning session or longer talk format then you should edit the wiki as soon as possible.

21
Jul
09

Launchpad is now Open Source!

Its been done to death already but it deserves more praise, Launchpad, the project hosting infrastructure (and so much more) utilising bazaar has been released as open source. Congratulations to the Launchpad Team!

The announcement can be found here and the new #launchpad-dev channel on freenode should be used for any Launchpad code questions.

This really is a massive move by Canonical and lets hope this furthers the adoption of Linux by making development so much easier.

07
Jul
09

Qt and Nokia, the bigger plan?

So, it has been announced that Nokia is to adopt Qt as its preferred toolkit for the next-but-one iteration of the Maemo platform, Harmattan. This has stirred up a little developer concern as GTK and C developers contemplate switching to Qt and C++ but is this really warranted? and what are Nokia’s reasons for the switch? Well, it seems that Nokia has no other choice if it wants to continue to compete in a very different world from the one it has dominated for the past several years and here’s why.

Apple

No-one can deny that Apple has completely pushed the boundaries of what the smart phone users of this world expect. They want bling, they want pizazz and most importantly they want it all to work with their PC (or Mac). The iPhone ecosystem ‘just works’. Its pretty robust and offers a rich user interface-come-desktop-tie-in that no other mobile device can compete with at the moment. I met with a very ambitious start-up today that are banking a large proportion of their future business on the iPhone but yet hate the development experience. How can a platform that its developers really don’t like succeed and succeed to the extent that the Apple model does? The development rewards, that’s how!

Although pretty slim, there is a chance that “your cool app (TM)” will succeed in the app store and make you a small fortune and believe it or not, you lottery playing skeptics, this is a big incentive for developers. Nothing else competes with the low barrier for entry and the potential rewards at the moment. The hardware is great, especially the new iPhone S, and the development has the XCode eco-system behind it meaning that, while not straightforward, development is seldom insurmountable.

The down-trade for these riches? You sell your soul to Apple (maybe, I haven’t read through the fine print yet).

The Bigger Threat, Android

Android for me is what has got everyone scared. A free-to-license mobile operating system and SDK with the clout of Google behind it. Its like the 500lb gorilla in the corner that ‘has a pleasant nature’ but it could also rip the head of the mobile industry if it wanted, and oh how I think it wants to in 2010.

Android is the major player here. Apple may have the numbers at the moment but there is a huge amount of people who refuse to buy Apple for one reason or another and for them (some 90% of the desktop population for comparison) they need an alternative. Android will be rolled out in a scale unknown to the mobile industry. I predict that every manufacturer will have an Android based phone by the end of next year, Nokia included, and that pretty rapidly it will become an Android Vs iPhone war for the smart-phone crown. So where does Nokia’s flagship Symbian fit in?

Symbian is a transport mechanism, we sell phones!

Unfortunately for the Symbian guys (and gals) I think Nokia’s transposition to a more service and app based company will leave Symbian behind. The push to bring Qt to Symbian signals Nokia’s intent for a cross-platform ecosystem and the natural progression from this would be to completely take out the hardware below and concentrate on the higher level. Why would Nokia continue to push Symbian, and for that fact Maemo, if they could satisfy their main business objectives on any platform that Qt is available? At the moment that includes everything but the iPhone. The other telling fact is that Nokia are concentrating on bringing Qt to Android.

I believe that Nokia know that they cannot compete with Apple or in fact Google. Google have brought out “the alternative”. Motorola, LG, Samsung and other members from the LiMo Foundation have seen the writing on the wall and have concentrated their efforts on Android instead of their own Linux based solution and while Nokia continue to hold 40% of the mobile phone business, they must be looking at where they fit in for the future generation of mobile users.

Nokia’s willingness to port Qt to any and every platform gets me thinking that they know their dominance of the market is over. Their acquisition of Trolltech’s Qt software stack did have me wondering what they were hoping to achieve at the time of purchase but for me its clear now that Nokia are “betting the farm” on Qt’s success on every platform.

Whether that happens of not, we will just have to see.

06
Jul
09

Call for Content, a Reminder

The 2009 Maemo Summit call for content has been open now for a few weeks and we have been receiving some good suggestions but we need more!

Currently Dave Neary, Valério Valério and myself have been going over the submissions, ironing out the details and approving (mostly) the talks but the schedule still has plenty room for more. If you have a suggestion for a cool talk, a lightning session or would like to speak but need help, then make yourself heard now!

Make a suggestion with your subject being pitched to either Users, App Developers, or Platform Developers. It doesn’t have to be a full 25 minute talk, it can also be a 5 minute Lightning session.

So what are you waiting for?

10
Jun
09

Speed test

It seems all the cool kids are doing it so here’s mine, results from SpeedTest.net.

09
Jun
09

Fear, uncertainty, doubt (FUD)

(EDIT: planet.maemo.org I apologize for the seemingly personal post but it has other connotations, honest).

It would be a little pompous of me to say, today we should all be living in a fearful community where as part of the employed masses, we should contemplate our job futures. But with the same token it would predominately be true. Every day it seems we are bombarded with news that company x, multi-conglomerate y, is venting a whole host of talent that are shell shocked at being relieved of their livelihood. A whole host of talent seemingly gone to short-term waste and although we are sympathetic, its a little ‘off the radar’.

Well, what if every unemployed person was given a FLOSS course and assigned a project to either document, use and report bugs on, or even contribute code to? Not only would it give the individual a valuable means of education, it would benefit free software users in general. We would see unprecedented levels of contribution. Unprecedented coverage. WOW, maybe I should run for local council here in the UK and push these issues 😉

So, why do I bring this up? Well, my current company, as are many companies, are trying to find their way in a down-turn market and inevitable that means cutbacks. So I’m free for business so to speak. There are many things to pursue but some things stand out more than others. LinuxUK as an entity is great, a growing business, contractual and predominately short-term contract based, and it will continue to be that way. But I don’t think it can sustain another full-time employee, namely me.

So what would be the dream job of a 30 year old senior software engineer with 10 years commercial experience and a pretty good track record in the open source environment? Well, one just has too look at the like of InDT (WOW!), Nokia’s Maemo initiative, Openismus and CodeThink to see some very cool companies. Companies that are pushing the boat out. Companies that any FOSS developer would be proud of being a part of. So, I guess, as an out of work FOSS fanatic, there are possibilities.

So what does the future hold? I guarantee its immensely cool and productive, but lets wait and see!

26
May
09

Where will a new Maemo device fit in today?

All the talk (and sometimes ranting) about Nokia’s so called next tablet got me thinking about the state of the potential market for a device like this today.

First lets go on a trip down memory lane.

History

Nokia released their first Internet Tablet towards the end of 2005. It was announced at the LinuxWorld Summit earlier that year and was a curious device. Not quite a phone and not quite a laptop, the 770 came before the current wave of netbooks had begun descending upon us and was met with some resistance. Many complained about its apparent slowness, but looking beyond this one could see that it had potential.

The N800 came next at the beginning of 2007 to a better reception. A faster processor, more memory and greater expandability meant that the adoption rate was much higher for this device. An improved N810 came later that year which added a keyboard and GPS but by this time other devices had joined or were about to join the party.

Elephants in the Corner

June 29th 2007 saw the release of the Apple iPhone. With its tablet like dimensions and pretty UI, Apples juggernaut redefined the mobile web experience. In contrast, Nokia’s tablet seemed somewhat pedestrian. Whist the Maemo based device gained a small community of devoted followers, the iPhone market exploded.

Now lets get this straight, the iPhone isn’t a direct comparison to the Nokia tablet; they do different things but where they overlap is in the core activities of the devices and this means they are competitors. Sales figures and blogs alike prove that the iPhone was hurting Nokia’s tablet sales.

Towards the end of 2007 saw another behemoth enter this space, namely Google with their Android platform. Arguably more of a competitor than Apple, Android is designed to run on a plethora of hardware from phones to netbooks. It has since seen a wide adoption rate with many manufacturers promising or postulating on bring out devices of their own.

A little later came the netbook revolution. Cheap and small sub-notebooks with small screens and even smaller storage designed to browse the web among other things. Two things happened in respect to Nokia’s Internet Tablets when this happened, one, Nokia now had a serious problem price-wise. These netbooks are cheap, typically well under £200 ($320) which put doubt to Nokia’s £300 launch price for the N810 (it has now dropped below £200 but only because of its impending successor). The second thing that should set the warning bells off at Nokia’s headquarters is the value for money aspect. Consider this. Joe user, which I’m sure Nokia would love to sell their hardware to, walks into an electronics shop with £300 in his pocket. Does he buy the ‘mini-laptop’ with 10″ screen, 40GB SSD, 90% size keyboard and all the bells and whistles you could ask for or a nice little ‘Internet Tablet’ that runs a quirky Linux OS, a small amount of storage and a 4.1″ screen? You could argue that they serve different markets but again, the use of such devices overlaps so much its hard to dismiss these as a serious threat to the Internet Tablet.

Worried Yet?

This alone should have Nokia worried without even mentioning the likes of the iPod Touch (maybe a better comparison?), Moblin’s recent efforts in conjunction with Intel, Canonical’s (the guys funding Ubuntu) efforts with their netbook remix designed for mobile hardware, and maybe even a smudging of the Palm Pre that just screams to be put on hardware outside of the phone space. Nokia’s next tablet enters a very different environment from the one it pioneered in 2005.

Reading Between the ‘Leaked” Lines

There is a lot of talk following the ‘leaked’ information detailing the next Nokia tablet. Most of this information you would already know if you followed last years Maemo Summit coverage but here for completeness is the list in full:

Dimensions: 59.7mmx111mmx18.2mm
Weight: 180g
3.5″ 800×480 (WVGA) touchscreen
OMAP3430 500/600 Mhz processor (Fun Trivia: Same CPU as the Palm Pre)
Bands: GSM Quad-Band 850, 900, 1800, 1900. WCDMA 900, 1700/2100, 2100
5 megapixel Carl Zeiss camera with dual-LED flash, autofocus, and sliding cover
Though the renders we’ve seen show two lens-like circles near the screen, we’ve got no word on what’s behind them. However, we feel safe in assuming that its a proximity sensor and a front-facing camera.
1GB total virtual runtime memory (256MB physical RAM, 768MB virtual memory)
Wi-Fi, HSPA
32GB internal storage, expandable up to 48GB via external memory
Keyboard variants: English, Scandinavian, French, German, South European, Italian, Russia
In the box: Connectivity cable, headset, charger, battery (1320 mAh), Video-out cable, microUSB adaptor, cleaning cloth

There are a few surprises there though, one of which is the mention of a change in screen size. Some have argued quite vehemently that a smaller screen will turn them away from the device but it has to be noted that the iPhone uses a similar sized screen and others in Nokia’s smart phone line-up do aswell.

Another thing that was a little surprise was the inclusion of a 5 megapixel camera, previously a 8 megapixel had been promised but obviously something changed since then.

All in all the new specs indicate that the device will be very similar in size to an Android G1 albeit with a slightly bigger screen (3.5 inches as apposed to the G1’s 3.2 inch) and very similar to Nokia’s own N97. So are we just seeing the Linux/Maemo version of the N97?

How can it Succeed?

Well, this is a tough question. Obviously Nokia are pretty excited about this device which indicates they have something up their sleeve yet to show us. But with the impending new device from Apple widely touted to arrive July, new Android based devices on the horizon along with version 2.0 of the software, and new netbooks being released daily it seems, how can the Maemo 5 based tablet make its mark in an already impressive market?

Well the hardware specifications don’t hint at anything special so it seems we are relying on Nokia to release some exceeding good software to go along with it. Software that makes this device compelling to buy, makes the consumer want this over what the competition has to offer, and keeps evolving to meet the ever demanding needs we as consumers are placing on the mobile industry. Most importantly, will the new Maemo device succeed or become the last in a line of good, but not quite good enough mobile devices?

I guess only time will tell.

17
May
09

oFono – The future of Maemo and a few predictions

A few days ago Intel and Nokia announced that they are collaborating on an initiative to develop what seems to be an open source telephony platform named oFono. This raises a lot of questions, Why are Nokia helping to develop another open platform when they have Maemo and the newly opened Symbian OS to contend with? Why are Intel interested in anything in the open source world outside of Moblin and their netbook strategy? And in the face of the ever expanding world of Android, what does this mean for Maemo?

Well, the future isn’t exactly clear but it could mean a boost for Maemo. Exactly why is clouded in mystery somewhat.

oFono.org

Lets be clear, oFono isn’t a new operating system, it is an initiative to develop telephony solutions in an open manner. From the oFono.org about page:

oFono.org is a place to bring developers together around designing an infrastructure for building mobile telephony (GSM/UMTS) applications. oFono.org is licensed under GPLv2, and it includes a high-level D-Bus API for use by telephony applications of any license. oFono.org also includes a low-level plug-in API for integrating with open source as well as third party telephony stacks, cellular modems and storage back-ends. The plug-in API functionality is modeled on public standards, in particular 3GPP TS 27.007 “AT command set for User Equipment (UE).”

OK, with that out of the way, what does this mean for Nokia, Intel and Maemo?

Commonality

Traditionally Maemo has had nothing to do with telephony outside of implementing ‘everything but the phone’. The internet tablets have GPS, Wifi, Bluetooth, in fact one of the most common questions I get asked when I’m in public with the Internet tablet is, “what kind of phone is that?”. But with the new collaboration between Intel and Nokia there is a consensus that maybe, just maybe, the drive between the two companies could produce something special.

But the something special part is what is currently under debate. Intel are primarily a chip designer and producer. Although they have many fingers in many pies they signaled their intent by backing Moblin, a project, from their own website, described as an initiate to produce an operating system for “netbooks, MIDs, and automotive”. What does this have to do with Nokia’s Symbian phone software or their Internet tablet software? Exactly nothing. So where do the two companies potentially overlap?

Well, with a little give and take they could be shoe-horned into one other. Nokia’s internet tablet could be considered too small for a netbook but with a couple of inches screen real-estate and a better keyboard could be considered a reasonable netbook? Moblin’s OS on stripped down internet table hardware in the dashboard of you next car purchase? The heavy-weight status of Intel behind Nokia’s struggling platform ensuring a rosier future for both? Lots of questions without a lot of answers at the moment.

A Bright Future?

In the undertones of the Nokia community they see the potential. A car based solution called Canola is the perfect solution for many a car journey. It’s just waiting to be picked up by the likes of Ford or Audi. Nokia’s strides with Maemo 5 and an OpenGL ES/Clutter based interface would be wonderful on a netbook or MID. Nokia’s experience with the ever present Symbian OS gives them a huge share of the market already familiar with what they have to offer. So what is the answer and is there such an answer in existence yet?

Predictions

Here are a few bold statements. If they are wrong then its a case of 2 + 2 = 5, if they are right, and I suspect there is a lot of truth underlining this here, then a clever connection of the dots has already spelled it out. So what will happen to Nokia and Intel’s foray into the telephany, MID, automotive, internet tablet, and netbook arenas?
Crystal Ball Predictions
Here are LinuxUK’s predictions.

1) Nokia release Maemo 5 on OMAP 3 hardware. Slide out keyboard and slightly smaller but clearer screen. Clutter based interface is an instant success as Nokia demonstrate the power of 3D effects on a small but very functional device. HSPA interface is first treated with contempt as people are tied into a contract with no phone services. Nokia brag about Skype and hope the concerns go away. Camera is amazing BTW.

2) Nokia soon after announce Symbian and Maemo live happily together. Based off of their efforts with QT, they bring cross-platform to a thorny beginning with apps designed for both targets.

3) Nokia announce a partnership with a major car manufacturer to produce in-car entertainment devices using Intel based chips. Appeasing both Moblin and Maemo camps, announces that its an open platform for both parties. Open source car tech, wow!

4) Meanwhile, Intel announces a MID based on its own hardware but utilizing hildon and various parts of Maemo software. oFono telephony software slips into the MID form factor.

5) Nokia announce, in partnership with Intel, they are looking at bringing telephony to their Maemo platform. Early adopters of the Maemo 5 based hardware rejoice. They may get a phone after-all.

6) Telephony stack is ported to Maemo 5 hardware, Intel and Nokia bring out a sexy phone, much sexier than the internet tablets based on Maemo, for the masses. Internet tablet users convince themselves they bought their tablet because it didn’t have a phone but quietly admire the new device.

7) Android, looks on in disgust, quietly scared.

8) …?

Reality

I believe the the major clout of Android and Google means that they believe they will win the phone OS war. In their targets are iPhone, Blackberry and the act of converting the dumb-phone Nokia users into smart phone users. For Nokia’s sake, I hope they are wrong. I truely hope Nokia and Intel can combine to produce a platform to rival Android. Yes, internet tablets are cool, but they don’t sell units. Shifting units is what is going to win this war. Lets not forget <a href="http://www.limofoundation.org/"LiMo. An effort to bring an open source operating system to phone users. I would bet my bottom pound that most LiMo users have never hear of, let alone read the GPL.

There is a fear that Nokia will die in the age of the smart phone although Nokia has been producing smart phones for longer than any competitor. I hope for Nokia’s sake that their foray into open source, namely Maemo, combines with Intel to bring them out the other side firmly holding an open source phone/tablet to rival Apples and Google’s emerging dominance.

Update: It seems that Intel is indeed looking at the mobile space as a way of expanding its business model. A post on UMPC portal has good commentary on Intels road map which has just been leaked (Intel even use pictures of Nokia’s phones in the material).

08
May
09

Trim trailing spaces in GEdit

One item from the list of good coding standards which always seems to catch me out is that lines of code shouldn’t have trailing white space. Some editors offer functionality to prevent this, GEdit doesn’t by default. A quick search took me to a page of plugin’s including the ‘trailsave’ plugin. When enabled, this plugin trims off all white space from the end of lines; exactly what I want. One small gripe is that it trims off the last line of a file if it is empty, not ideal.

In the spirit of open source, I modified the code slightly and you can now get the remove-trailing-white-space-but-not-the-last-blank-line plugin from here.

Unpack the two files into your ~/.gnome2/gedit/plugins directory (create one if its not there) and start up GEdit. Select ‘Plugins’ from the Edit->Preferences menu and enable the “Save without trailing space’ plugin from that menu.