<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Damian Flannery&#039;s Blog</title>
	<atom:link href="http://damianflannery.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://damianflannery.wordpress.com</link>
	<description>Blogposts from a developer &#38; entrepreneur working in the mobile/html5 space</description>
	<lastBuildDate>Mon, 30 Jan 2012 14:23:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='damianflannery.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Damian Flannery&#039;s Blog</title>
		<link>http://damianflannery.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://damianflannery.wordpress.com/osd.xml" title="Damian Flannery&#039;s Blog" />
	<atom:link rel='hub' href='http://damianflannery.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Architecting a single apk app to handle phones and tablets on Android</title>
		<link>http://damianflannery.wordpress.com/2011/10/16/architecting-a-single-apk-app-to-handle-phones-and-tablets-on-android/</link>
		<comments>http://damianflannery.wordpress.com/2011/10/16/architecting-a-single-apk-app-to-handle-phones-and-tablets-on-android/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 22:29:33 +0000</pubDate>
		<dc:creator>damianflannery</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://damianflannery.wordpress.com/?p=272</guid>
		<description><![CDATA[I already created a tablet app a while back when Honeycomb was first released but since then I&#8217;ve been working on phone only applications. Between then and now, the compatibility library has been released and a new way of handling screen sizes has been introduced into the Android framework. Below is a recipe on how to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=272&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I already created a tablet app a while back when Honeycomb was first released but since then I&#8217;ve been working on phone only applications. Between then and now, the compatibility library has been released and a new way of handling screen sizes has been introduced into the Android framework. Below is a recipe on how to use these features to architect a single apk app that will run on both phone and tablets. Credit to <a title="Excellence in the Android User Experience" href="http://uk.droidcon.com/programme/day-2#butcher-ui">Nick Butcher for inspiration from his talk at Droidcon UK 2011</a>.</p>
<p><strong>1) Encapsulate the functionality that you had (or would have) in your activities into Fragments<br />
</strong>A Fragment is, generally, a chunk of a user interface with it&#8217;s own lifecycle.  This sounds similar to how you might describe an activity doesn&#8217;t it? In fact, if you&#8217;re adapting an existing app, you can pretty much cut and paste your code from your old activity into your new Fragment. Then your old activity is only responsible for instantiating your new Fragment and listening to any events that it might trigger.</p>
<p><strong>2) Create completely separate Activities to handle single pane layouts vs dual pane layouts (i.e. phone vs tablet)<br />
</strong>Don&#8217;t think about hdpi, large or xlarge buckets any more. Think more like a responsive web designer e.g. here is my single pane layout for screens less than 600dp and here is my dual pane layout for screens wider than 600dp.</p>
<p>By way of example, an imdb style app might have two fragments: MovieListFragment (to show a list of movies) and MovieDetailFragment (to show the movie detail).</p>
<p>When designing for the single pane layout (e.g. for phones) you would most likely have two activities:</p>
<ul>
<li>SingleMovieListActivity &#8211; which is where the MovieListFragment would live and</li>
<li>SingleMovieDetailActivity - which is where the MovieDetailFragment would live</li>
</ul>
<p>Pretty simple eh? For the dual pane layout (e.g. tablets) you would have something like:</p>
<ul>
<li>DualHomeActivity &#8211; which would house both Fragments; MovieListFragment (on the left) and MovieDetailFragment (on the right).</li>
</ul>
<p>Keeping them separate means that you don&#8217;t have messy code within your activites to detect which screen mode you are in before you can show or act on anything.</p>
<p><strong>3) Use the <del>(force)</del> framework</strong><br />
You don&#8217;t need a splash activity to detect how many pixels are on screen before you forward to an appropriate starter activity. Simply add something like <strong>android:enabled=&#8221;@bool/single_pane&#8221;</strong> to any single pane activity elements within your Android Manifest. Then create the file <strong>res/values/bools.xml</strong> with the following contents:</p>
<p><pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;resources&gt;
&lt;bool name=&quot;dual_pane&quot;&gt;false&lt;/bool&gt;
&lt;bool name=&quot;single_pane&quot;&gt;true&lt;/bool&gt;
&lt;/resources&gt;
</pre></p>
<p>Handling the dual screen activities is also quite simple. Add <strong>android:enabled=&#8221;@bool/dual_pane&#8221; </strong>to any dual screen activity elements within your Android manifest. Then create the file <strong>res/values-sw600dp/bools.xml</strong> with the following contents:</p>
<p><pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;resources&gt;
&lt;bool name=&quot;dual_pane&quot;&gt;true&lt;/bool&gt;
&lt;bool name=&quot;single_pane&quot;&gt;false&lt;/bool&gt;
&lt;/resources&gt;
</pre></p>
<p>Now if your app is started on a device that has a width of at least 600dp (e.g. a tablet) then the framework will enable all of your dual pane activities and disable all of the single pane ones. Conversely, if your app is started on a device with less than 600dp then all single pane activities will be enabled and the dual pane ones will be disabled.</p>
<p>Note that the sw600dp modifier will only work for Android 3.2 and above so you should also copy the above <strong>bools.xml</strong> to <strong>res/values-xlarge/bools.xml</strong> to cater for the extra large screens in older versions of Android.</p>
<p><strong>4) Decouple communication<br />
</strong>So you have all these reusable fragments&#8230;but they can exist in different activities depending on whether you&#8217;re running on a device that has a width of more or less than 600dp. How does your fragment know whether to transition to a new screen or whether to animate in a new fragment when a movie is selected? The answer of course is that it doesn&#8217;t and shouldn&#8217;t.</p>
<p>The enclosing activity knows whether you are in single vs dual pane mode so you need a clean way to communicate your event (e.g. movie selected) to this enclosing activity. There are a few ways to do this but my favoured way is to use Broadcast Intents. Your enclosing activity (which is listening for these defined events) can intercept a broadcast intent and associated parameters and then decide whether to transition to a new activity (if in a single pane activity) or whether to replace the currently showing MovieDetailFragment (if in a dual pane activity).</p>
<p>Simples.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/damianflannery.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/damianflannery.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/damianflannery.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/damianflannery.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/damianflannery.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/damianflannery.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/damianflannery.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/damianflannery.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/damianflannery.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/damianflannery.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/damianflannery.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/damianflannery.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/damianflannery.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/damianflannery.wordpress.com/272/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=272&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://damianflannery.wordpress.com/2011/10/16/architecting-a-single-apk-app-to-handle-phones-and-tablets-on-android/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e997e8d7aee8ffbd192220257e5027be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">damianflannery</media:title>
		</media:content>
	</item>
		<item>
		<title>Show right-to-left Activity Animation when you click Home icon in your Android App (Dashboard Pattern)</title>
		<link>http://damianflannery.wordpress.com/2011/09/06/show-right-to-left-activity-animation-when-you-click-home-icon-in-your-android-app-dashboard-pattern/</link>
		<comments>http://damianflannery.wordpress.com/2011/09/06/show-right-to-left-activity-animation-when-you-click-home-icon-in-your-android-app-dashboard-pattern/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 12:22:25 +0000</pubDate>
		<dc:creator>damianflannery</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[dashboard]]></category>

		<guid isPermaLink="false">http://damianflannery.wordpress.com/?p=262</guid>
		<description><![CDATA[Want to animate your activity from right to left when you click the home icon in the top left corner of your app? Simples:<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=262&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Want to animate your activity from right to left when you click the home icon in the top left corner of your app?</p>
<p>Simples:</p>
<p><pre class="brush: java;">

public static void goHomeTop(Activity context) {

final Intent intent = new Intent(context, HomeActivity.class);

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

context.startActivity(intent);

context.overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);

}

</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/damianflannery.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/damianflannery.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/damianflannery.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/damianflannery.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/damianflannery.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/damianflannery.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/damianflannery.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/damianflannery.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/damianflannery.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/damianflannery.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/damianflannery.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/damianflannery.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/damianflannery.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/damianflannery.wordpress.com/262/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=262&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://damianflannery.wordpress.com/2011/09/06/show-right-to-left-activity-animation-when-you-click-home-icon-in-your-android-app-dashboard-pattern/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e997e8d7aee8ffbd192220257e5027be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">damianflannery</media:title>
		</media:content>
	</item>
		<item>
		<title>Resetting OS X Lion back to factory settings</title>
		<link>http://damianflannery.wordpress.com/2011/08/16/resetting-os-x-lion-back-to-factory-settings/</link>
		<comments>http://damianflannery.wordpress.com/2011/08/16/resetting-os-x-lion-back-to-factory-settings/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 20:17:17 +0000</pubDate>
		<dc:creator>damianflannery</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://damianflannery.wordpress.com/?p=256</guid>
		<description><![CDATA[There seems to be a lot of confusion about how do this. Actually it&#8217;s pretty easy: Reboot your machine and hold down CMD+R. Choose the option relating to Disk Utility and erase the Macintosh HD. Close Disk Utility and from the list of options, reinstall Lion. (Note, you&#8217;ll need to hook up your machine to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=256&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There seems to be a lot of confusion about how do this. Actually it&#8217;s pretty easy:</p>
<ol>
<li>Reboot your machine and hold down CMD+R.</li>
<li>Choose the option relating to Disk Utility and erase the Macintosh HD.</li>
<li>Close Disk Utility and from the list of options, reinstall Lion.</li>
</ol>
<p>(Note, you&#8217;ll need to hook up your machine to a wifi Hotspot so that it can download the entire Lion image from the internet&#8230;zzzzzzz)</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/damianflannery.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/damianflannery.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/damianflannery.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/damianflannery.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/damianflannery.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/damianflannery.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/damianflannery.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/damianflannery.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/damianflannery.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/damianflannery.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/damianflannery.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/damianflannery.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/damianflannery.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/damianflannery.wordpress.com/256/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=256&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://damianflannery.wordpress.com/2011/08/16/resetting-os-x-lion-back-to-factory-settings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e997e8d7aee8ffbd192220257e5027be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">damianflannery</media:title>
		</media:content>
	</item>
		<item>
		<title>Install sqlite3 on your rooted Google Nexus One / Nexus S</title>
		<link>http://damianflannery.wordpress.com/2011/08/05/install-sqlite3-on-your-rooted-google-nexus-one-nexus-s/</link>
		<comments>http://damianflannery.wordpress.com/2011/08/05/install-sqlite3-on-your-rooted-google-nexus-one-nexus-s/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 10:57:05 +0000</pubDate>
		<dc:creator>damianflannery</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://damianflannery.wordpress.com/?p=251</guid>
		<description><![CDATA[Please note that all credit goes to Sun Chen for this solution (blogpost here: http://chensun.net/android-development/install-sqlite3-on-google-nexus-one/54/). I simply applied the same technique to my Nexus S and have reproduced the steps below for my own future benefit. [Notice! You must have root access on your Nexus One / Nexus S.] 1. Download sqlite3, which comes with SuperOneClickv1.7-ShortFuse, and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=251&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Please note that all credit goes to Sun Chen for this solution (blogpost here: http://chensun.net/android-development/install-sqlite3-on-google-nexus-one/54/).</p>
<p>I simply applied the same technique to my Nexus S and have reproduced the steps below for my own future benefit.</p>
<p><em>[Notice! You must have root access on your Nexus One / Nexus S.]</em></p>
<p>1. Download <a href="http://dl.dropbox.com/u/23162341/sqlite/sqlite3">sqlite3</a>, which comes with <a href="http://forum.xda-developers.com/showthread.php?t=803682" target="_blank">SuperOneClickv1.7-ShortFuse</a>, and copy it to your SD card.</p>
<p>2. Connect your phone to your computer. Open a Command Prompt, and type the following commands:</p>
<p><code>adb shell<br />
$ su<br />
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system<br />
# dd if=/sdcard/sqlite3 of=/system/bin/sqlite3<br />
# chmod 4755 /system/bin/sqlite3<br />
# mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system</code></p>
<p>Done! Now you can use sqlite3 to <a href="http://developer.android.com/guide/developing/tools/adb.html#sqlite" target="_blank">examine database</a> on your Nexus One / Nexus S from a Remote Shell or even from an Android Terminal Emulator.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/damianflannery.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/damianflannery.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/damianflannery.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/damianflannery.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/damianflannery.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/damianflannery.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/damianflannery.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/damianflannery.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/damianflannery.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/damianflannery.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/damianflannery.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/damianflannery.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/damianflannery.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/damianflannery.wordpress.com/251/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=251&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://damianflannery.wordpress.com/2011/08/05/install-sqlite3-on-your-rooted-google-nexus-one-nexus-s/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e997e8d7aee8ffbd192220257e5027be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">damianflannery</media:title>
		</media:content>
	</item>
		<item>
		<title>Integrate zxing barcode scanner into your Android app natively using Eclipse</title>
		<link>http://damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-natively-using-eclipse/</link>
		<comments>http://damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-natively-using-eclipse/#comments</comments>
		<pubDate>Mon, 13 Jun 2011 11:35:14 +0000</pubDate>
		<dc:creator>damianflannery</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[barcode]]></category>
		<category><![CDATA[native]]></category>
		<category><![CDATA[zxing]]></category>

		<guid isPermaLink="false">http://damianflannery.wordpress.com/?p=211</guid>
		<description><![CDATA[Edit: Sean Owen, one of the developers for ZXing has posted a comment to this blog warning of the pitfalls of integrating ZXing into your own app; doing so just to avoid having your users take that extra step of installing from the market is not a good reason. I completely agree with this. There [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=211&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="text-decoration:underline;">Edit: Sean Owen, one of the developers for ZXing has <a title="Sean's comment" href="http://damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-natively-using-eclipse/#comment-159">posted a comment</a> to this blog warning of the pitfalls of integrating ZXing into your own app; doing so just to avoid having your users take that extra step of installing from the market is not a good reason.<strong> I completely agree with this.</strong> There are many advantages to using the intent based approach as outlined in his comments. My motivation is for an enterprise app that does not have access to the Android market and involves my client installing zxing manually on thousands of devices before they are able to distribute to its business customers. </span></p>
<p><span style="text-decoration:underline;">So to be clear, do not use this method unless it is absolutely necessary, and if you do have to &#8211; make sure that override your intent filters so that other apps that want to use zxing do not end up calling your modified version. Also, if zxing is already installed, then you should use that by default instead of your modified version.<br />
</span><a title="Comment from Sean Owen" href="http://damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-natively-using-eclipse/#comment-159"><br />
<span class="Apple-style-span" style="color:#000000;">ZXing is one of the most popular barcode scanning applications on the market. They make it very easy for you to integrate into your application via an intent but this means that your users must manually install the application from the market.</span></a></p>
<p>Fortunately, the app is also open source so I will show you how to cleanly build this capability into your project.</p>
<p>Please note that the awesome developers of this product have released the src under the Apache v2.o license so please be sure to adhere to the terms of this license and give them full credit for their work. <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a></p>
<p><strong>Step One: Obtain the zxing src code<br />
</strong>The src can be found at <a href="http://code.google.com/p/zxing/source/browse/trunk">http://code.google.com/p/zxing/source/browse/trunk</a>. Specifically you only need the android/ and the core/ projects. Use svn to checkout these to your local hard-drive.</p>
<p><strong>Step Two: Build zxing core using Apache Ant</strong><br />
You will need to build the core project into a jar file using apache ant (download from here <a href="http://ant.apache.org/ivy/download.cgi">http://ant.apache.org/ivy/download.cgi</a>). Using a shell or cmd prompt navigate to the root directory of the downloaded zxing src and execute &#8221;ant -f core/build.xml&#8221;. This will produce a file core/core.jar which we will use in the next step.</p>
<p><strong>Step Three: Build ZXing Android using Eclipse</strong><br />
Create a New Android Project (File &#8211;&gt; New &#8211;&gt; Android Project).<br />
Set the project name to ZXing (or similar).<br />
Select the &#8220;Create project from existing source&#8221; radio button<br />
Click &#8220;Browse&#8221; and navigate to the android project that you downloaded from zxing and click &#8220;OK&#8221;<br />
Select &#8220;Finish&#8221;</p>
<p>The project will not currently build. We need to add the core.jar file (that we produced in the previous step) into our project. Right-click on ZXing project &#8211;&gt; properties &#8211;&gt; Java Build Path &#8211;&gt; Add External Jars &#8211;&gt; Navigate to and select core.jar &#8211;&gt; Open &#8211;&gt; OK.</p>
<p>Actually, while we&#8217;re here we should do one more very important thing! Right-click on ZXing project &#8211;&gt; properties &#8211;&gt; Android &#8211;&gt; Scroll down and check/tick the &#8220;Is Library&#8221; checkbox &#8211;&gt; OK.</p>
<p><strong>Step 4: Include ZXing Android into your project.<br />
</strong>Within Eclipse,  Right-click on YOURPROJECTNAMEHERE project &#8211;&gt; properties &#8211;&gt;Android &#8211;&gt; Scroll down to Libraries section &#8211;&gt; Click Add &#8211;&gt; Select ZXing (which should appear as an option as a result of completing previous step).</p>
<p>Next, in some trigger function e.g. button press within your code you should add:</p>
<p><pre class="brush: java;">
Intent intent = new Intent(&quot;com.google.zxing.client.android.SCAN&quot;);
intent.putExtra(&quot;SCAN_MODE&quot;, &quot;QR_CODE_MODE&quot;);
startActivityForResult(intent, 0);
</pre></p>
<p>In the same activity you&#8217;ll need the following to retrieve the results:</p>
<p><pre class="brush: java;">
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
   if (requestCode == 0) {
      if (resultCode == RESULT_OK) {
         String contents = intent.getStringExtra(&quot;SCAN_RESULT&quot;);
         String format = intent.getStringExtra(&quot;SCAN_RESULT_FORMAT&quot;);
         // Handle successful scan
      } else if (resultCode == RESULT_CANCELED) {
         // Handle cancel
      }
   }
}
</pre></p>
<p>Almost there! One of the current limitations of Android Library projects is that it will not pull anything from AndroidManifest.xml into your project.<br />
So if we try to invoke the above code we will receive a runtime exception because your Android app has no idea how to handle the scan intent.<br />
To fix this you just need to copy the following into your AndroidManifest.xml:</p>
<p><pre class="brush: xml;">
&lt;activity android:name=&quot;com.google.zxing.client.android.CaptureActivity&quot;
   android:screenOrientation=&quot;landscape&quot;
   android:configChanges=&quot;orientation|keyboardHidden&quot;
   android:theme=&quot;@android:style/Theme.NoTitleBar.Fullscreen&quot;
   android:windowSoftInputMode=&quot;stateAlwaysHidden&quot;&gt;
   &lt;intent-filter&gt;
      &lt;action android:name=&quot;android.intent.action.MAIN&quot;/&gt;
      &lt;category android:name=&quot;android.intent.category.DEFAULT&quot;/&gt;
   &lt;/intent-filter&gt;
   &lt;intent-filter&gt;
      &lt;action android:name=&quot;com.google.zxing.client.android.SCAN&quot;/&gt;
      &lt;category android:name=&quot;android.intent.category.DEFAULT&quot;/&gt;
    &lt;/intent-filter&gt;
&lt;/activity&gt;
</pre></p>
<p>And as Columbo would say, &#8220;Just one more thing!&#8221;. Add this permission to the top of your AndroidManifest.xml:</p>
<p><pre class="brush: xml;">
&lt;uses-permission android:name=&quot;android.permission.CAMERA&quot;/&gt;
</pre></p>
<p><strong>EDIT:</strong> You need to do yet one more thing! You need to add the core.jar (produced in Step two) to your new project (Right-click your project &#8211;&gt; Properties &#8211;&gt; Java Build Path &#8211;&gt; Add External JARS&#8230; &#8211;&gt; Select core.jar &#8211;&gt; OK). Thanks to Marco and Markosys in the comments for spotting and pointing out the omission!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/damianflannery.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/damianflannery.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/damianflannery.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/damianflannery.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/damianflannery.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/damianflannery.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/damianflannery.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/damianflannery.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/damianflannery.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/damianflannery.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/damianflannery.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/damianflannery.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/damianflannery.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/damianflannery.wordpress.com/211/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=211&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-natively-using-eclipse/feed/</wfw:commentRss>
		<slash:comments>144</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e997e8d7aee8ffbd192220257e5027be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">damianflannery</media:title>
		</media:content>
	</item>
		<item>
		<title>Start animation in onCreate or onResume on Android?</title>
		<link>http://damianflannery.wordpress.com/2011/06/08/start-animation-in-oncreate-or-onresume-on-android/</link>
		<comments>http://damianflannery.wordpress.com/2011/06/08/start-animation-in-oncreate-or-onresume-on-android/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 12:01:07 +0000</pubDate>
		<dc:creator>damianflannery</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[delay]]></category>
		<category><![CDATA[onCreate]]></category>
		<category><![CDATA[onResume]]></category>
		<category><![CDATA[onWindowFocusChanged]]></category>
		<category><![CDATA[timer]]></category>

		<guid isPermaLink="false">http://damianflannery.wordpress.com/?p=240</guid>
		<description><![CDATA[Maybe you&#8217;d like to perform a nice subtle animation such as fading some text in as soon as your activity launches? If you try to start this animation in onCreate() or onResume() you&#8217;ll be sorely dissapointed. One possible solution is to set a timer in one of these methods so that the animation will spawn after [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=240&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Maybe you&#8217;d like to perform a nice subtle animation such as fading some text in as soon as your activity launches? If you try to start this animation in onCreate() or onResume() you&#8217;ll be sorely dissapointed.</p>
<p>One possible solution is to set a timer in one of these methods so that the animation will spawn after a fixed interval.  This approach is problematic because if the delay is too short the animation won&#8217;t start (as before) and if it&#8217;s too long then the user experience will drop. Furthermore, such a delay might not behave quite the same on a G1 compared to a spanking new Samsung Galaxy S II for example.</p>
<p>A better way is to start the animation in the onWindowFocussedChanged method which is called when the current window of the activity gains or loses focus and gives the best indicator whether the activity is visible to the user. You can use the *hasFocus* parameter to distinguish between gaining or losing focus. Example below:</p>
<p><pre class="brush: java;">
   private TextView myTextView;

   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);

        myTextView= (TextView)findViewById(R.id.my_textview);

        anim = AnimationUtils.loadAnimation(this, R.anim.fade_in);
    }

   @Override
   public void onWindowFocusChanged (boolean hasFocus) {
      super.onWindowFocusChanged(hasFocus);
      if (hasFocus)
         myTextView.startAnimation(anim);
   }

</pre></p>
<p>The animation itself is defined in an xml file in res/anim/fade_in.xml:</p>
<p><pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;alpha xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
       android:interpolator=&quot;@android:anim/accelerate_interpolator&quot;
       android:fromAlpha=&quot;0.0&quot; android:toAlpha=&quot;1.0&quot;
       android:duration=&quot;1500&quot; /&gt;
</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/damianflannery.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/damianflannery.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/damianflannery.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/damianflannery.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/damianflannery.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/damianflannery.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/damianflannery.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/damianflannery.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/damianflannery.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/damianflannery.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/damianflannery.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/damianflannery.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/damianflannery.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/damianflannery.wordpress.com/240/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=240&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://damianflannery.wordpress.com/2011/06/08/start-animation-in-oncreate-or-onresume-on-android/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e997e8d7aee8ffbd192220257e5027be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">damianflannery</media:title>
		</media:content>
	</item>
		<item>
		<title>Alternative to strings.xml for storing settings values in Android</title>
		<link>http://damianflannery.wordpress.com/2011/06/06/alternative-to-strings-xml-for-storing-settings-values-in-android/</link>
		<comments>http://damianflannery.wordpress.com/2011/06/06/alternative-to-strings-xml-for-storing-settings-values-in-android/#comments</comments>
		<pubDate>Mon, 06 Jun 2011 14:02:12 +0000</pubDate>
		<dc:creator>damianflannery</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[android settings strings.xml alternative]]></category>

		<guid isPermaLink="false">http://damianflannery.wordpress.com/?p=236</guid>
		<description><![CDATA[This may be obvious to some but not me. .. Like a good little programmer, I use strings.xml all the time in my Android applications which means that this file can get quite large. For a customer that wanted to be able to modify some settings before recompiling and distributing to their customers, I wanted [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=236&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This may be obvious to some but not me. ..</p>
<p>Like a good little programmer, I use strings.xml all the time in my Android applications which means that this file can get quite large. For a customer that wanted to be able to modify some settings before recompiling and distributing to their customers, I wanted to extract those variable &#8220;settings&#8221; into a different file for clarity.</p>
<p>It&#8217;s actually extremely easy to do. So easy that I thought it couldn&#8217;t possibly be that easy and started exploring more complicated routes.</p>
<p>All you have to do is create a new xml file e.g. &#8220;settings.xml&#8221; and then move your string value (e.g. &lt;string name=&#8221;default_retry_time_value&#8221;&gt;10&lt;/string&gt;) from &#8220;strings.xml&#8221; into this new file.  That&#8217;s it!</p>
<p>You <span style="text-decoration:underline;">don&#8217;t</span> need to update any views in your layouts to do to something like this android:text=&#8221;@settings/default_mcode_value&#8221;.</p>
<p>You just need to make sure that your settings.xml file is in res/values (same place as strings.xml) and Android will pick it up.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/damianflannery.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/damianflannery.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/damianflannery.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/damianflannery.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/damianflannery.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/damianflannery.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/damianflannery.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/damianflannery.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/damianflannery.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/damianflannery.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/damianflannery.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/damianflannery.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/damianflannery.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/damianflannery.wordpress.com/236/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=236&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://damianflannery.wordpress.com/2011/06/06/alternative-to-strings-xml-for-storing-settings-values-in-android/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e997e8d7aee8ffbd192220257e5027be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">damianflannery</media:title>
		</media:content>
	</item>
		<item>
		<title>Filling in W-8BEN as a UK Ltd company for software development services to a U.S. corporation</title>
		<link>http://damianflannery.wordpress.com/2011/05/05/filling-in-w-8ben-as-a-uk-ltd-company-for-software-development-services-to-a-u-s-corporation/</link>
		<comments>http://damianflannery.wordpress.com/2011/05/05/filling-in-w-8ben-as-a-uk-ltd-company-for-software-development-services-to-a-u-s-corporation/#comments</comments>
		<pubDate>Thu, 05 May 2011 21:56:18 +0000</pubDate>
		<dc:creator>damianflannery</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[EIN]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[U.S.]]></category>
		<category><![CDATA[UK]]></category>
		<category><![CDATA[W-8BEN]]></category>

		<guid isPermaLink="false">http://damianflannery.wordpress.com/?p=199</guid>
		<description><![CDATA[So, if you want to get paid by a U.S. company and you don&#8217;t want the U.S. government withholding 30% of it &#8211; then you need to fill out two forms: W-8BEN (to declare to the U.S. why you shouldn&#8217;t be taxed at 30%) SS-4 (to get an Employer Identification Number [EIN] which is used [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=199&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So, if you want to get paid by a U.S. company and you don&#8217;t want the U.S. government withholding 30% of it &#8211; then you need to fill out two forms:</p>
<ul>
<li>W-8BEN (to declare to the U.S. why you shouldn&#8217;t be taxed at 30%)</li>
<li>SS-4 (to get an Employer Identification Number [EIN] which is used in your W-8BEN)</li>
</ul>
<div>The EIN number is relatively easy to obtain. Simply fill out the SS-4 form here <a href="http://www.irs.gov/pub/irs-pdf/fss4.pdf">http://www.irs.gov/pub/irs-pdf/fss4.pdf</a>  (detailed instructions are here <a href="http://www.irs.gov/pub/irs-pdf/iss4.pdf" target="_blank">http://www.irs.gov/pub/irs-pdf/iss4.pdf</a>).</div>
<p></p>
<div>You can then call the IRS on a special number for international applicants on 001 267 941 1099 and a little old lady will guide you through the form.  She will give you your EIN number there and then although the paperwork will take three weeks to arrive in the post.</div>
<p></p>
<div>For the W-8BEN form (<a href="http://www.irs.gov/pub/irs-pdf/fw8ben.pdf">http://www.irs.gov/pub/irs-pdf/fw8ben.pdf</a>), here is a cheat sheet:</div>
<p></p>
<div><span style="text-decoration:underline;">Part I</span></div>
<p></p>
<div>1. &lt;Your Company Name&gt;</div>
<div>2. United Kingdom</div>
<div>3. Tick &#8220;Corporation&#8221;</div>
<div>4 &lt;Your Company Address&gt;</div>
<div>5. Postal Address (if different from above)</div>
<div>6. Your EIN number (as obtained from the little old lady) and tick the &#8220;EIN&#8221; box</div>
<div>7. Optional (I ignored this)</div>
<div>8. Ignore</div>
<p></p>
<div><span style="text-decoration:underline;">Part II</span></div>
<p></p>
<div>9a &#8211; Tick and enter &#8220;United Kingdom&#8221; in the space provided</div>
<div>9b &#8211; Tick</div>
<div>9c &#8211; Tick</div>
<div>Ignore the rest.</div>
<p></p>
<div><span style="text-decoration:underline;">Part III</span></div>
<p></p>
<div>Ignore</div>
<p></p>
<div><span style="text-decoration:underline;">Part IV</span></div>
<p></p>
<div>Sign, date (in U.S. format MM-DD-YYYY) and enter &#8220;Director&#8221; as capacity in which acting</div>
<div>That&#8217;s it. Write me a nice message if I saved you a shed load of time <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/damianflannery.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/damianflannery.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/damianflannery.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/damianflannery.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/damianflannery.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/damianflannery.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/damianflannery.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/damianflannery.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/damianflannery.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/damianflannery.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/damianflannery.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/damianflannery.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/damianflannery.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/damianflannery.wordpress.com/199/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=199&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://damianflannery.wordpress.com/2011/05/05/filling-in-w-8ben-as-a-uk-ltd-company-for-software-development-services-to-a-u-s-corporation/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e997e8d7aee8ffbd192220257e5027be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">damianflannery</media:title>
		</media:content>
	</item>
		<item>
		<title>Some suggested improvements for the new Android market</title>
		<link>http://damianflannery.wordpress.com/2011/02/03/some-suggested-improvements-for-the-new-android-market/</link>
		<comments>http://damianflannery.wordpress.com/2011/02/03/some-suggested-improvements-for-the-new-android-market/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 11:18:48 +0000</pubDate>
		<dc:creator>damianflannery</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[market]]></category>

		<guid isPermaLink="false">http://damianflannery.wordpress.com/?p=193</guid>
		<description><![CDATA[The new Android market is a great step forward. Finally, we are able to provide links to our apps on the web, customers can browse and search for applications and install them directly to their devices from the web.  Overall, it looks great. There are some improvements that could be made though and I&#8217;m sure [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=193&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The new Android market is a great step forward. Finally, we are able to provide links to our apps on the web, customers can browse and search for applications and install them directly to their devices from the web.  Overall, it looks great.</p>
<p>There are some improvements that could be made though and I&#8217;m sure that Google will iterate on the user experience over the coming months. Here are some constructive criticisms / suggestions for improvements that I hope they will take into consideration</p>
<ol>
<li>The beautiful styling of the page is somewhat ruined by the default Google navbar at the top of the page which looks like it was constructed in FrontPage.</li>
<li>When viewing a screenshot for an app, I would like to be able to view the next image in the sequence without having to close the one that I&#8217;m currently looking at and manually selecting the next image! That is a useability fail.</li>
<li>I know (because I&#8217;m a savvy Android user/developer) that the Square app (squareup.com) is only available in the U.S. With the new market, I can search and view details for the square app but I&#8217;m not able to install it. For a general user I think that it would be nice if an explanation was given as to why this app is not available for installation rather than a bog standard message that says &#8220;This item is not available on your carrier&#8221;. Or better yet, since I&#8217;m logged in and you already know that I can&#8217;t download the app &#8211; why not just hide it from my search results like you do on the phone?</li>
<li>Android buyer currency support is most welcome, but I feel that Google are trying to be too flexible. Apple have really nailed this one by providing tiers of charges so if you set your price at £0.59 then in the U.S. it will be charged at $0.99 and so on.  Enabling Android devs to set their own prices for each country gives total flexibility but adds way too much complexity.</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/damianflannery.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/damianflannery.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/damianflannery.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/damianflannery.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/damianflannery.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/damianflannery.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/damianflannery.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/damianflannery.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/damianflannery.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/damianflannery.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/damianflannery.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/damianflannery.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/damianflannery.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/damianflannery.wordpress.com/193/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=193&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://damianflannery.wordpress.com/2011/02/03/some-suggested-improvements-for-the-new-android-market/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e997e8d7aee8ffbd192220257e5027be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">damianflannery</media:title>
		</media:content>
	</item>
		<item>
		<title>A beginners guide to freelancing</title>
		<link>http://damianflannery.wordpress.com/2010/10/13/a-beginners-guide-to-freelancing/</link>
		<comments>http://damianflannery.wordpress.com/2010/10/13/a-beginners-guide-to-freelancing/#comments</comments>
		<pubDate>Wed, 13 Oct 2010 11:44:25 +0000</pubDate>
		<dc:creator>damianflannery</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[freelancing]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://damianflannery.wordpress.com/?p=188</guid>
		<description><![CDATA[I&#8217;ve been toying with the idea of writing a blogpost about my experience of freelancing over the past few months but this morning I stumbled across this fantastic post and I don&#8217;t think I could capture the wit or sentiment any better so enjoy: http://mocko.org.uk/b/2010/10/11/so-you-want-to-go-freelance/<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=188&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been toying with the idea of writing a blogpost about my experience of freelancing over the past few months but this morning I stumbled across this fantastic post and I don&#8217;t think I could capture the wit or sentiment any better so enjoy:</p>
<p><a href="http://mocko.org.uk/b/2010/10/11/so-you-want-to-go-freelance/">http://mocko.org.uk/b/2010/10/11/so-you-want-to-go-freelance/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/damianflannery.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/damianflannery.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/damianflannery.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/damianflannery.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/damianflannery.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/damianflannery.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/damianflannery.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/damianflannery.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/damianflannery.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/damianflannery.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/damianflannery.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/damianflannery.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/damianflannery.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/damianflannery.wordpress.com/188/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damianflannery.wordpress.com&amp;blog=11167258&amp;post=188&amp;subd=damianflannery&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://damianflannery.wordpress.com/2010/10/13/a-beginners-guide-to-freelancing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e997e8d7aee8ffbd192220257e5027be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">damianflannery</media:title>
		</media:content>
	</item>
	</channel>
</rss>
