<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>linuxuk.org &#187; Development</title>
	<atom:link href="http://www.linuxuk.org/tag/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.linuxuk.org</link>
	<description>Adventures in Linux Land</description>
	<lastBuildDate>Wed, 07 Jul 2010 10:24:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ubuntu Lucid Lynx on ARM</title>
		<link>http://www.linuxuk.org/2010/05/ubuntu-lucid-lynx-on-arm/</link>
		<comments>http://www.linuxuk.org/2010/05/ubuntu-lucid-lynx-on-arm/#comments</comments>
		<pubDate>Tue, 11 May 2010 19:53:11 +0000</pubDate>
		<dc:creator>Jamie Bennett</dc:creator>
				<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[canonical]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.linuxuk.org/?p=490</guid>
		<description><![CDATA[What a fantastic release Ubuntu 10.04, aka Lucid Lynx was. Many, many people helped to make 10.04 rock and as some of them attend the Ubuntu Developer Summit (UDS) this week to thrash out the roadmap for Maverick Meerkat, its a good time to look back at what happened to the ARM version of Lucid [...]]]></description>
			<content:encoded><![CDATA[<p>What a fantastic release <a href="http://www.ubuntu.com/products/whatisubuntu/1004features">Ubuntu 10.04</a>, aka Lucid Lynx was. Many, many people helped to make 10.04 rock and as some of them attend the <a href="https://wiki.ubuntu.com/UDS-M">Ubuntu Developer Summit</a> (UDS) this week to thrash out the roadmap for <a href="http://www.markshuttleworth.com/archives/336">Maverick Meerkat</a>, its a good time to look back at what happened to the ARM version of Lucid this cycle.<br />
<span id="more-490"></span></p>
<h3>A new user interface</h3>
<p>One of the most obvious changes is the user interface. The ARM version of Ubuntu&#8217;s previous release, Karmic Koala, booted to the default Ubuntu desktop. For some this was fine but typically today&#8217;s ARM devices tend to be different. At present, they tend to have smaller screens, less resources and little in the way of graphics acceleration. To overcome some of these limitations in the x86 netbook world, the <a href="https://wiki.ubuntu.com/UNR">netbook-launcher</a> user interface was created. Based on <a href="http://www.clutter-project.org/">Clutter</a>, netbook-launcher could not run on the ARM devices Ubuntu was targeting due to a lack of 3D acceleration. Enter netbook-launcher-efl, a 2D version of the x86 netbook interface written using EFL packages.</p>
<p><a href="http://www.linuxuk.org/2010/02/the-new-ui-for-arm-based-ubuntu-devices/">Read more about the 2D EFL based launcher</a>.</p>
<p><img src="http://www.linuxuk.org/images/ARM-UNE-Default-Screenshot-small.jpg" alt="netbook-launcher-efl using the older karmic theme" /></p>
<h3>Faster Live CD boots</h3>
<p>Booting a Live CD is something that most new Ubuntu users do (and many existing users too). Its often their first experience of an Ubuntu release and should give a good impression. Well, on some ARM hardware, booting this Live CD image took over 3 minutes, not exactly the impression we would hope. So investigations happened into what was causing this slowness. In the end the final boot time was reduced by around 35% on all Ubuntu Live images, not just ARM ones.</p>
<p><a href="http://www.linuxuk.org/2010/02/ubuntu-live-cds-now-33-faster/">Read more about the Live CD boot time improvements.</a></p>
<h3>Web Office and Web Mail integration</h3>
<p>Open Office on a resource limited platform isn&#8217;t the greatest experience and to make matters worse, on the ARM architecture there are issues building it correctly. A new way of viewing, editing and saving office documents was needed and for the Lucid cycle a web-based solution was integrated into the desktop called webservice-office-zoho.</p>
<p><a href="http://www.linuxuk.org/2010/04/ubuntus-new-web-office-integration/">Read more about the web office integration.</a></p>
<p>Similarly, Evolution could be considered too heavy-weight for ARM device needs. A solution was implemented to enable integration with several online mail providers.</p>
<p><a href="http://castrojo.wordpress.com/2010/04/14/better-webmail-integration/">Read more about the web mail integration.</a></p>
<h3>Optimized Tool Chain Defaults</h3>
<p>This release includes a complete archive rebuild using more modern tool chain defaults that the latest ARM hardware can take advantage of. As of Lucid Lynx, packages are built using <a href="http://www.arm.com/products/processors/technologies/instruction-set-architectures.php">Thumb-2</a> to reduce code size and improve performance, <a href="http://www.arm.com/products/processors/technologies/neon.php">NEON</a> for accelerate multimedia and signal processing, and are optimized for <a href="http://www.arm.com/products/processors/index.php">ARMv7A</a> based chips. Although this means that some older hardware will not work with the latest Ubuntu release it does mean that the images perform much better on modern hardware.</p>
<h3>Other Improvements</h3>
<p>Much bug fixing went on this cycle. The <a href="http://qa.ubuntuwire.com/ftbfs/lucid.html">fail to build list</a> (FTBFS), a list of packages that fail to build on a given architecture, was a focal point of activity. For the first time ever, the number of packages that failed to build on ARM from the main archive was zero (apart from libx86 which refuses to leave the build queue for ARM due to a bug), a great achievement.</p>
<p>The <a href="http://code.google.com/chromium/">Chromium</a> browser <a href="https://edge.launchpad.net/ubuntu/lucid/armel/chromium-browser">now works</a> on ARM, <a href="https://edge.launchpad.net/project-rootstock">rootstock</a>, the tool to build ARM rootfs tarballs gained a gui frontend, we added support for the very popular OMAP platform (<a href="http://beagleboard.org/">beagle board</a>) and many small improvements were implemented, making this the best Ubuntu ARM release ever.</p>
<p>We here at Canonical are very proud of the Lucid Lynx on ARM and are extremely excited at what future releases will bring.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuk.org/2010/05/ubuntu-lucid-lynx-on-arm/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>The New UI for ARM Based Ubuntu Devices</title>
		<link>http://www.linuxuk.org/2010/02/the-new-ui-for-arm-based-ubuntu-devices/</link>
		<comments>http://www.linuxuk.org/2010/02/the-new-ui-for-arm-based-ubuntu-devices/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 09:38:05 +0000</pubDate>
		<dc:creator>JamieBennett</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu Netbook Remix]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[canonical]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[UNR]]></category>

		<guid isPermaLink="false">http://www.linuxuk.org/?p=411</guid>
		<description><![CDATA[ARM based platforms traditionally have a problem with graphics drivers and free software. Encumbered by licensing issues, many platforms only ship with 2D based drivers whilst the 3D driver-enabled offerings only frequent the poshest of circles such as Nokia&#8217;s N900. There are exceptions, but its a painful reality at the moment. 
Vendors are trying to [...]]]></description>
			<content:encoded><![CDATA[<p>ARM based platforms traditionally have a problem with graphics drivers and free software. Encumbered by licensing issues, many platforms only ship with 2D based drivers whilst the 3D driver-enabled offerings only frequent the poshest of circles such as <a href="http://maemo.nokia.com/n900/">Nokia&#8217;s N900</a>. There are exceptions, but its a painful reality at the moment. </p>
<p>Vendors are trying to work around it, especially as there is the expectation of a ramp-up in the availability of ARM based hardware. Super <a href="http://aolstandard.sandbox.engadget.com/2010/01/07/freescale-smartbook-prototype-is-a-dockable-tablet-we-go-hands/">long-life netbooks</a>, low powered <a href="http://aolstandard.sandbox.engadget.com/2010/01/04/freescale-reveals-7-inch-smartbook-reference-design-hopes-to-se/">touch based computers</a>, and even a flurry of smaller <a href="http://www.engadget.com/2010/01/05/marvell-plug-computer-3-0-packs-in-wifi-bluetooth-and-2ghz-arma/">embedded devices</a> are forecast to hit the market this year, many of which will be based on the Linux operating system. Ubuntu would be a great match for this.<br />
<span id="more-411"></span></p>
<h3>Ubuntu and ARM</h3>
<p>Ubuntu runs very well on some ARM based platforms and there is a sustained effort to make it work more <a href="http://www.linuxuk.org/docs/elce2009/elc2009-device-trees-for-arm/">ubiquitously</a> across many more. To that end our goal is to have Ubuntu running on <u>any</u> ARM based device (as long as there is hardware available). A lofty goal but one which we would like to see happen.</p>
<p>So what can we do about the 3D graphics licensing issue? Legally not very much. The companies that own the IP (<a href="http://en.wikipedia.org/wiki/Intellectual_property">Intellectual Property</a>) rights to these drivers often want large licensing fees for their technology. This is a model for single product lines (take the Nokia N900 for instance) but for Ubuntu where we are targeting a more broad approach, this isn&#8217;t ideal. </p>
<p>So when you buy your new, ARM based netbook that has an obscene amount of battery life and you just want to install the 3D clutter based, wonderfully rich UI that<a href="http://www.canonical.com/projects/ubuntu/unr"> Ubuntu Netbook Edition</a> offers, what do you do?</p>
<p>Well Ubuntu recognizes this problem and as part of the Lucid Lynx release there is an effort to bring a similarly wonderfully rich UI to  non-3D-accelerated hardware.</p>
<h3>The new 2D EFL based Launcher</h3>
<p><a href="http://www.linuxuk.org/images/ARM-UNE-Default-Screenshot.jpg"><img alt="Default ARM 2D Launcher" src="http://www.linuxuk.org/images/ARM-UNE-Default-Screenshot-small.jpg" class="aligncenter" width="500" height="393" style="border:0;"/></a></p>
<p>Above you can see the default UI for Ubuntu&#8217;s ARM based releases starting from Lucid (10.04). It&#8217;s a direct clone of the UI found in the 9.10 Karmic release on i386 although this one is based on EFL (<a href="http://www.enlightenment.org/">Enlightenment Foundation Libraries</a>) meaning that its fast on non-accelerated platforms. If there is 3D hardware available it can use that but it works perfectly fine without.</p>
<p>Another great thing about the 2D launcher is that isn&#8217;t not restricted to ARM hardware only, in fact if you have Lucid installed now, getting the launcher couldn&#8217;t be simpler. At the command prompt just type the following (make sure you have the universe repository enabled):</p>
<blockquote><p>
sudo apt-get install netbook-launcher-efl
</p></blockquote>
<p>and voila, your UI switches to the new launcher. Of course a simple:</p>
<blockquote><p>
sudo apt-get remove netbook-launcher-efl
</p></blockquote>
<p>will remove it if you decide its not what you want.</p>
<h3>Beyond Netbook Launcher</h3>
<p><a href="http://www.linuxuk.org/images/ARM-UNE-Alternate-Screenshot.jpg"><img alt="Default ARM 2D Launcher" src="http://www.linuxuk.org/images/ARM-UNE-Alternate-Screenshot-small.jpg" class="aligncenter" width="500" height="393" style="border:0;"/></a><br />
Another of the great things about this launcher, as apposed to the 3D launcher shipped with Karmic, is that its extremely theme-able. The theme file is contained in:</p>
<blockquote><p>
/usr/share/netbook-launcher-efl/data/themes/default.edj
</p></blockquote>
<p>Theme files use the <a href="http://wiki.enlightenment.org/index.php/Edje">edje</a> declarative layout format. By changing this file you can completely change the way the UI looks. For example, see the alternate UI screenshot above, both are based on the same code, the only difference is that they have a different theme file.</p>
<p>So if you have ARM based hardware but no 3D acceleration, fear not, you can get the same great user experience that your i386 cousins have in Ubuntu Netbook Remix.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuk.org/2010/02/the-new-ui-for-arm-based-ubuntu-devices/feed/</wfw:commentRss>
		<slash:comments>54</slash:comments>
		</item>
		<item>
		<title>Ubuntu live cd&#8217;s, now 33% faster</title>
		<link>http://www.linuxuk.org/2010/02/ubuntu-live-cds-now-33-faster/</link>
		<comments>http://www.linuxuk.org/2010/02/ubuntu-live-cds-now-33-faster/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 02:27:02 +0000</pubDate>
		<dc:creator>JamieBennett</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[canonical]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[harware]]></category>

		<guid isPermaLink="false">http://www.linuxuk.org/?p=394</guid>
		<description><![CDATA[One of the goals for the Lucid cycle was to investigate why it took so long to boot an Ubuntu live cd session. Why is this important I hear you ask? Well the live cd is usually the first thing a potential new Ubuntu user sees. They get an Ubuntu Desktop (or other flavour) cd [...]]]></description>
			<content:encoded><![CDATA[<p>One of the goals for the Lucid cycle was to investigate why it took so long to boot an Ubuntu live cd session. Why is this important I hear you ask? Well the live cd is usually the first thing a potential new Ubuntu user sees. They get an Ubuntu Desktop (or other flavour) cd from their friend/colleague/random person, insert it into their machine, wait for a while and are then presented with a live session. All well and good but if your running on slower hardware, even a different architecture such as ARM, this initial slowness can be orders of magnitude more than a fast desktop/laptop. For example, the ARM images we shipped for Karmic took over 3 minutes to boot into a live desktop session.<br />
<span id="more-394"></span></p>
<h3>How do you boot a live cd session?</h3>
<p>The first thing to do was find out <u>why</u> it was slow. There are a few ways to do this but I chose to first use simple time-stamping methods and afterwards, the much prettier <a href="http://www.bootchart.org/">bootchart</a> package.</p>
<p>A bit of background on how the live cd session is booted. There are two broad steps in the process of booting a live cd, the first is setting up the environment ready for the session, and the second, you guessed it, is actually booting into the session. Initial hunches were that the first step, setting up the session, was the major cause of slowness so investigations started there.</p>
<h3>Casper</h3>
<p>Setting up the session is the responsibility of a project called <a href="https://edge.launchpad.net/casper">casper</a>. Casper is a set of scripts that are run on boot to do such things as unpack the initial filesystem, add a dummy user, setup languages and keyboard layouts and so forth. Its mainly written in perl. </p>
<p>The time-stamping stage of investigates confirmed that casper was indeed <a href="https://wiki.ubuntu.com/ARM/CasperSpeedup">slower than it should be</a>. I&#8217;ll skip ahead to the bootchart part of the story as thats much more visually interesting.</p>
<h3>Casper before</h3>
<p><a href="http://www.linuxuk.org/images/bootchart-zoomed-before.png"><img src="http://www.linuxuk.org/images/bootchart-zoomed-before-small.png" style="float: top;"></a><br />
Above you can see the casper section of the live cd boot process. I&#8217;ve highlighted the bits that immediately stand out. The overall boot was 3 minutes and 15 seconds with casper responsible for around 2 minutes of that.</p>
<p>The highlighted bits seemed to have one thing in common, they all interacted with the <a href="http://www.fifi.org/doc/debconf-doc/tutorial.html">debconf</a> database. From the debconf programmers tutorial document: </p>
<blockquote><p>
&#8220;debconf is a backend database, with a frontend that talks to it and presents an interface to the user. There can be many different types of frontends, from plain text to a web frontend. The frontend also talks to a special config script in the control section of a debian package, and it can talk to postinst scripts and other scripts as well, all using a special protocol. These scripts tell the frontend what values they need from the database, and the frontend asks the user questions to get those values if they aren&#8217;t set.&#8221;
</p></blockquote>
<p>So communicating with the debconf database was slowing the boot. Initiating the call, sending the data and receiving a response, was taking up to 4 seconds at a time and when there are many of these calls, they all soon add up.</p>
<p>After many a head-scratching moment it was decided that the best way to solve this would be to initiate the communication once and keep it open so that when debconf was needed, the overhead in setting it up was removed. The implementation details are all in the <a href="http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/lucid/casper/lucid/revision/751">code history</a> but the results are much easier to show.</p>
<h3>Casper after</h3>
<p><a href="http://www.linuxuk.org/images/bootchart-zoomed-after.png"><img src="http://www.linuxuk.org/images/bootchart-zoomed-after-small.png" style="float: top;"></a><br />
With a couple of other tweaks besides the debconf one, the boot is now down to 1 minute 53 seconds and casper takes just under 50 seconds of that. There is more room for improvement, pre-generating a default locale (although which locale that would be is a tough choice), pre-generating fonts and looking into SSL, but for now, this is a big win.</p>
<p>The bootcharts above are for the ARM based <a href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX515">iMX51</a> device made by Freescale which is only just beginning to proliferate onto the market. Intel/AMD based machines show an equivalent speed-up.</p>
<h3>Conclusion</h3>
<p>So there you have it. The next time you boot into a Lucid live cd session it shouldn&#8217;t take quite so long, and now you know why.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuk.org/2010/02/ubuntu-live-cds-now-33-faster/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Why I lo(ve)athe the n900</title>
		<link>http://www.linuxuk.org/2009/12/why-i-loathe-the-n900/</link>
		<comments>http://www.linuxuk.org/2009/12/why-i-loathe-the-n900/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 23:16:48 +0000</pubDate>
		<dc:creator>JamieBennett</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[maemo]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.linuxuk.org/?p=339</guid>
		<description><![CDATA[Edited to include some of my gripes, if you just want to see the list, scroll to the bottom
This is going to get an instant dismissal from the Nokia faithful, but bear with me and I guarantee you will see what I see in some capacity. 
Lets get one thing straight first, I love what [...]]]></description>
			<content:encoded><![CDATA[<p><em>Edited to include some of my gripes, if you just want to see the list, scroll to the bottom</em></p>
<p>This is going to get an instant dismissal from the Nokia faithful, but bear with me and I guarantee you will see what I see in some capacity. </p>
<p>Lets get one thing straight first, I <strong>love</strong> what Nokia have done for Linux, from their first offerings pre-770 to what they do today, they do a great job. I know many of the current (and past) team that care so much about how Linux will someday become the default smart-phone choice that I somewhat feel a little sorry that they pioneered a route that may be occupied by others.<br />
<span id="more-339"></span><br />
Nokia was there way before Google decided to bring Linux to a phone-sized device, Nokia was there long before Internet tablets were considered a cool technology, and Nokia continue to fund many of the projects that matter for Linux users so its with a heavy heart that I declare my dislike for the n900.</p>
<p>When Nokia had a Linux based tablet, it was consider unique and very cool for the geeks that used Linux. It was a great playground for developers and a marketing tool to inform people just what <strong>could</strong> be done with innovation and a lot of hard work. Fast forward to today and we have Google bringing a Linux based phone OS to the mass market, ARM challenging for supremacy using Linux, and even Palm resurrected their business based on Linux, so what is Nokia&#8217;s reply, the n900.</p>
<p>Lets not doubt that the device is a great attempt to bring a full operating system to a smart phone. But it fails so miserably on many occasions. Nokia had such a head start that the likes of Google and Palm should of gone to Nokia to license their stack because of their years of maturity, but no, they thought 9 to 12 months of in house R&#038;D could better what Nokia had to offer and guess what, that turned out right.</p>
<p>So when Nokia bring out something resembling a phone that plays in the Google Android, Apple iPhone, Palm Pre and even other &#8220;dumb phone&#8221; eco-sphere you instantly compare them. I really want to like this phone but at every opportunity it does something that isn&#8217;t what I want. Email (modest) is terrible (bugs, slowness, imap headaches), the browser is fast but back navigation is form over function and zoom in/out tends to be random, the calendar app never syncs past my initial Google calendar sync, screen presses are hit and miss &#8230; I have a list longer than both my arms [1]. Software faults, hardware incumbency, complete failure in some cases leave this device not on a par with its predecessors but behind because of its lofty ambitions.</p>
<p>Some things are great, the keyboard is surprisingly good, the screen has a great resolution, media playback is excellent, the camera is second to none for a phone but I simply can&#8217;t use it as a day to day device, and believe me I&#8217;ve tried. I&#8217;ve put my sim in the the n900 more than a dozen times and kept it there for periods of time but I have to swap it back out every time. Coming from a professional Linux developer (an ARM developer at that) this isn&#8217;t good and on more than a few occasions people have asked me whether or not they should purchase a n900. I have had to say &#8220;not yet&#8221;.</p>
<p>I know what Nokia and Maemo are capable of but the n900 fall&#8217;s frustratingly short. Its a step too far for Nokia and I&#8217;m sure that the next iteration of devices will be great, but will that be too late? </p>
<p>[1] Some bugs/problems I&#8217;ve encountered:</p>
<ul>
<li>imap folders not cached so each mail check takes *minutes*</li>
<li>modest email client capitalizes inbox to INBOX randomly on one of my accounts making the folder inaccessable</li>
<li>imap changes not registered sometimes, i.e. I read an email on the n900, its still unread when I check with another client.</li>
<li>n900 is practically impossible to use one-handed</li>
<li>lack of portrait mode really is a problem</li>
<li>maps application is near useless, often can&#8217;t find the current location and its really slow</li>
<li>some calls get routed straight to answer phone even though I have a signal</li>
<li>some calls don&#8217;t connect (i.e. I get network failure) and checking the number with another phone is fine</li>
<li>browser back button (not keyboard back button) brings up a UI history of your browsing which is form over function, makes going back a frustrating experience</li>
<li>device is <b>heavy</b> and sometimes cumbersome to use (try lying on your back and operating it with keyboard open)</li>
<li>screen touches sometimes don&#8217;t register even though you get the &#8216;click&#8217; sound of a press being made</li>
<li>zoom on the browser (little circles with your finger) can be quite random</li>
<li>scroll bars are not shown by default meaning options that are off the screen can be difficult to spot (I have to always try to scroll just in case there are more option)</li>
<li>Google calendar can sync via the exchange setting, I find it sync&#8217;s once and never again</li>
<li>&#8230;</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuk.org/2009/12/why-i-loathe-the-n900/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>The State of Android Development, the way I see it</title>
		<link>http://www.linuxuk.org/2009/08/the-state-of-android-development-the-way-i-see-it/</link>
		<comments>http://www.linuxuk.org/2009/08/the-state-of-android-development-the-way-i-see-it/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 12:32:28 +0000</pubDate>
		<dc:creator>Jamie Bennett</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://linuxuk.wordpress.com/2009/08/20/the-state-of-android-development-the-way-i-see-it/</guid>
		<description><![CDATA[The past couple of weeks I&#8217;ve been learning how to develop apps for Google&#8217;s Android platform. I&#8217;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 [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float:right;" src="http://www.linuxuk.org/images/android-logo.png" alt="" />The past couple of weeks I&#8217;ve been learning how to develop apps for Google&#8217;s <a href="http://www.android.com">Android platform</a>. I&#8217;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?</p>
<p><b><span id="more-122"></span></b></p>
<h2>A future conquer?</h2>
<p>Well its obvious that this platform has some serious potential. The promise of an embedded Linux platform that is tailored for the mobile, <a href="http://en.wikipedia.org/wiki/Mobile_Internet_Device">MID</a> and even the net book markets gives a sense of the scale of what Android is trying to achieve. It can look <a href="http://www.engadget.com/2009/07/23/htc-hero-review/">very slick</a>, it can do some really <a href="http://www.junauza.com/2008/09/8-killer-android-apps.html">cool things</a> but yet it is distinctly lacking in key areas.<br />
<!--break--></p>
<h2>So whats the problem?</h2>
<p>There are three major area&#8217;s where Android falls behind the likes of the iPhone platform (discounting the terrible state of the Android Market but that&#8217;s something else entirely), they are documentation, a stable API, and development tools.</p>
<h3>Documentation</h3>
<p>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 <a href="http://developer.android.com/reference/packages.html">official documentation</a> 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.</p>
<p>One notable example here is the online books from <a href="http://commonsware.com/books.html">CommonsWare</a>. 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 &#8230;</p>
<h3>A stable API</h3>
<p>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.</p>
<p>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.</p>
<h3>Development tools</h3>
<p>Now I&#8217;m not saying that <a href="http://developer.apple.com/TOOLS/Xcode/">XCode</a> 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 <a href="http://developer.apple.com/TOOLS/Xcode/">Eclipse</a> integration that Android has. The editor is slow, the &#8216;interface builder&#8217; (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 <a href="http://en.wikipedia.org/wiki/Bronco">bucking bronco</a> of development environments. Some parts of the tool are just great, code completion, the vast amount of plugin&#8217;s you can use and auto insertion of dependencies make it something that you <strong>have to use but never really enjoy.</strong></p>
<h2><strong>So whats the answer?</strong></h2>
<p>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.</p>
<p>Google have a tight hold on the official release of the Android platform so the rapid SDK changes aren&#8217;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.</p>
<p>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.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxuk.org/2009/08/the-state-of-android-development-the-way-i-see-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
