<?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>www.vegard.net &#187; Android</title>
	<atom:link href="http://www.vegard.net/archives/tag/android/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vegard.net</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sat, 04 Feb 2012 20:26:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Challenge.</title>
		<link>http://www.vegard.net/archives/4892/</link>
		<comments>http://www.vegard.net/archives/4892/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 19:50:57 +0000</pubDate>
		<dc:creator>Vegard Skjefstad</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.vegard.net/?p=4892</guid>
		<description><![CDATA[My employer encourages their employees to participate in some sort of activity outside of normal office hours to keep learning new skills. For me, cracking code is both my job and a spare time hobby, but after eight hours at work it&#8217;s often hard to find the motivation to sit down to fix even more [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.vegard.net/wp-content/uploads/2012/02/5690861354_e849a0d0be_b.jpg"><img src="http://www.vegard.net/wp-content/uploads/2012/02/5690861354_e849a0d0be_b-650x487.jpg" alt="" title="Android by neko neko nya (http://www.flickr.com/photos/62397886@N07/5690861354/)" width="650" height="487" class="aligncenter size-medium wp-image-4898" /></a>My employer encourages their employees to participate in some sort of activity outside of normal office hours to keep learning new skills. For me, cracking code is both my job and a spare time hobby, but after eight hours at work it&#8217;s often hard to find the motivation to sit down to fix even more bugs or open a dry book on patterns. But this year &#8211; just like last year &#8211; I plan to make a simple Android app in my spare time. As it turns out there&#8217;s an internal contest at work starting these days that involves mobile application development. Convenient for me, since it means that I can, at least in theory, use some of my working hours to work on the Android application.</p>
<p><span id="more-4892"></span></p>
<p>Whoever wins gets to go on a conference of their choice. My choice, should the grand price mysteriously fall into my lap? <a href="http://www.blackhat.com/" rel="external">Black Hat USA</a>. Some of the greatest minds in IT security come together to share some of the most impressive hacks you&#8217;ll see that year. Who would not want to go to a conference where they recommend that you to leave all your gadgets at home and just bring a notebook and a pen? If you bring any gadgets you can be pretty sure they are hacked beyond all recognition when you leave the conference. Sounds like fun to me!</p>
<p>But to win an app contest where the competitors are the &#8220;best consultants in the universe&#8221;<sup>1)</sup> can be challenging and a killer app is required. Unfortunately, I have no idea what to develop. I <em>did</em> have a pretty good concept outlined, but it turned out the data required isn&#8217;t public and collecting the data myself is impossible, or at least not very practical. Also, all the killer applications are already developed. But the thing is that most these killer applications are based on an idea so simple and trivial any idiot could come up with them. Another option is to take a great concept and do it better. But how many flashlight applications are there room for? <a href="https://market.android.com/search?q=flashlight">At least 1000</a>.</p>
<p>During the last couple of days I&#8217;ve worked really hard to come up with a good concept. I&#8217;ve even brought out that pen and paper all the creative people recommend. I&#8217;m <em>this</em> close to starting to write on Anniken&#8217;s napkins and I have still not had a great idea that hasn&#8217;t already been done. I&#8217;ve given myself a deadline until next week to come up with something. If that doesn&#8217;t happen, I&#8217;ll just have to leech off of someone else&#8217;s great idea.</p>
<p><a href="http://www.youtube.com/watch?v=iDuMp2kDxos">The Simpsons did it</a>.</p>
<p><span class="footnote">1) Totally unbiased management quote.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vegard.net/archives/4892/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>24/7/365.</title>
		<link>http://www.vegard.net/archives/4757/</link>
		<comments>http://www.vegard.net/archives/4757/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 20:02:03 +0000</pubDate>
		<dc:creator>Vegard Skjefstad</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.vegard.net/?p=4757</guid>
		<description><![CDATA[Another thing I like about the Android platform, in addition to it being incredibly customizable, is that it supports some amazingly powerful applications. Tasker (website) is a very good example of an app so powerful you can do almost everything you can imagine with your phone. Yes, it&#8217;s not exactly intuitive and has a learning [...]]]></description>
			<content:encoded><![CDATA[<p>Another thing I like about the Android platform, in addition to it being <a title="Minimalistic Mobile." href="/archives/4742/">incredibly customizable</a>, is that it supports some amazingly powerful applications. <a href="https://market.android.com/details?id=net.dinglisch.android.taskerm" rel="external">Tasker</a> (<a href="http://tasker.dinglisch.net/" rel="external">website</a>) is a very good example of an app so powerful you can do almost everything you can imagine with your phone. Yes, it&#8217;s not exactly intuitive and has a learning curve, but if you have a little programming experience or just some patience, you can set up some really useful tasks.</p>
<p>Here are a few of the profiles I&#8217;ve created so far:</p>
<ul>
<li>If I&#8217;m at work (location based), turn on Wi-Fi, and set the phone to vibrate. When I leave work, the Wi-Fi turns off again.</li>
<li>If I&#8217;m at home (location based), also turn on Wi-Fi, but turn up the volume on the phone. If I leave the apartment, the Wi-Fi turns off again. Both of these profiles help me save a lot of battery.</li>
<li>If I send a text message with a code word, the phone will will get the current coordinates from GPS or the cellular network, depending on what&#8217;s currently turned on. It&#8217;s not possible to turn on the GPS without human confirmation, which is a bummer, but mobile data is turned on if it&#8217;s not already turned on. The coordinates, together with accuracy and information about the latest lock and the current phone time is sent back to the phone number that initially sent the text message with the code word. This profile comes in handy if I misplace my phone.</li>
<li>Flight mode is automatically turned on at night and turned off again in the morning. The actually time it&#8217;s turn on and off depends on if it&#8217;s a weekday or not. Saves a lot of battery.</li>
<li>If I plug in my headset, and I&#8217;m not at work (my work profile is active), I&#8217;m not about to answer an incoming call or I&#8217;m not already talking on the phone, Spotify is launched and the media volume is turn half-way up. Very, very convenient.</li>
<li>If Spotify is launched manually, the media volume is also turned half-way up. Just because I&#8217;m lazy.</li>
</ul>
<p><span id="more-4757"></span></p>
<p>The last thing I&#8217;ve added so far is a very nifty little thing: Every tenth minute, every hour, every day, my phone contacts a server and posts all kinds of information about itself: Current location, location accuracy, battery status, uptime, the ID of the cellular tower the phone is currently connected to, signal strength, roaming status, screen status, and so on and so forth. In addition to the information from the phone, the receiving server also adds a little bit of information, like the current weather in Oslo and the current weather wherever the phone is. This happens even if the phone is currently in flight mode; flight mode is simply turned off and turned back on again when the post has been sent to the server.</p>
<p>Why am I doing all this? It&#8217;s all about the data. At the end of the year I will have roughly 50,000 data points and this will hopefully enable me to extract some interesting statistics.</p>
<p>Other examples of things people are doing with Tasker includes:</p>
<ul>
<li> Auto Respond to Received SMS while driving and at night.</li>
<li>Speak Weather in the Morning.</li>
<li>Battery Full Alert.</li>
<li>LocateMe Log, Track And Emergency Button.</li>
<li>Automatically Send an &#8220;I&#8217;ll be Home Soon&#8221; SMS.</li>
<li>Changing background image depending on current weather.</li>
<li>Automatically use the camera flash as a flash light if the phone is moved at night.</li>
</ul>
<p>There&#8217;s a reason why Tasker is one of the highest rated applications in Android Market. It&#8217;s well worth the money.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vegard.net/archives/4757/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minimalistic Mobile.</title>
		<link>http://www.vegard.net/archives/4742/</link>
		<comments>http://www.vegard.net/archives/4742/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 15:35:02 +0000</pubDate>
		<dc:creator>Vegard Skjefstad</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.vegard.net/?p=4742</guid>
		<description><![CDATA[One of the thing I enjoy the most about the Android platform is how incredibly versatile and customizable it is. With a few clicks and a little imagination you can change the look of your phone from whatever the manufacturer thought was great to something you personally think is even better. Here&#8217;s my first serious [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.vegard.net/wp-content/uploads/2012/01/Minimalistic-Text-Bonanza-on-Android-MyColorscreen-Where-Technology-Meets-Art.jpg" alt="" title="Minimalistic Text Bonanza on Android MyColorscreen, Where Technology Meets Art" width="437" height="708" class="aligncenter size-full wp-image-4753" /></p>
<p>One of the thing I enjoy the most about the <a href="http://www.android.com/" rel="external">Android</a> platform is how incredibly versatile and customizable it is. With a few clicks and a little imagination you can change the look of your phone from whatever the manufacturer thought was great to something you personally think is even better. Here&#8217;s my first serious attempt on doing just that.</p>
<p>To set this up I used a cropped version of <a href="/archives/img/2L8EW.jpg">this</a> wallpaper and four different Android apps created by some very smart people. More information and plenty more inspiration are available on <a href="http://mycolorscreen.com/2011/12/31/minimalistic-text-bonanza/" rel="external">myColorscreen</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vegard.net/archives/4742/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 Billion.</title>
		<link>http://www.vegard.net/archives/4624/</link>
		<comments>http://www.vegard.net/archives/4624/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 21:28:28 +0000</pubDate>
		<dc:creator>Vegard Skjefstad</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.vegard.net/?p=4624</guid>
		<description><![CDATA[Google is celebrating that the Android Market has exceeded 10 billion app downloads. And they are celebrating with some insane offers: Selected high quality paid apps for 10 cent a pop. If you have an Android phone, you should really have a look at what Google is pulling out of the hat. Yesterday you could [...]]]></description>
			<content:encoded><![CDATA[<p>Google is celebrating that the <a href="https://market.android.com/apps" rel="external">Android Market</a> has exceeded 10 billion app downloads. And they are celebrating with some <em>insane</em> offers: Selected high quality paid apps for 10 cent a pop. If you have an Android phone, you should really have a look at what Google is pulling out of the hat.</p>
<p>Yesterday you could get apps like <a href="https://market.android.com/details?id=com.gameloft.android.ANMP.GloftA6HP" rel="external">Asphalt 6 HD</a>, <a href="https://market.android.com/details?id=tipitap.coloring.phones" rel="external">Color &#038; Draw for Kids</a>, <a href="https://market.android.com/details?id=com.endomondo.android.pro" rel="external">Endomondo Sports Tracker Pro</a>, <a href="https://market.android.com/details?id=com.subatomicstudios" rel="external">Fieldrunners HD</a>, <a href="https://market.android.com/details?id=com.rubicon.dev.glwg" rel="external">Great Little War Game</a>, <a href="https://market.android.com/details?id=com.mojang.minecraftpe" rel="external">Minecraft</a>, <a href="https://market.android.com/details?id=com.dama.papercamera" rel="external">Paper Camera</a>, <a href="https://market.android.com/details?id=com.sketchbook" rel="external">Sketchbook Mobile</a>, <a href="https://market.android.com/details?id=com.melodis.midomiMusicIdentifier" rel="external">Soundhound Infinity</a> and <a href="https://market.android.com/details?id=com.touchtype.swiftkey" rel="external">SwiftKey X</a>. If you didn&#8217;t get any of them, that&#8217;s a shame.</p>
<p>But you&#8217;re not too late yet. Today&#8217;s selection is <a href="https://market.android.com/details?id=com.halfbrick.fruitninja&#038;feature=apps_timed_promotion" rel="external">Fruit Ninja</a>, <a href="https://market.android.com/details?id=com.oceanhouse_media.bookbbbedtimebattle_app&#038;feature=apps_timed_promotion"  rel="external">BB &#8211; Bedtime Battle</a>, <a href="https://market.android.com/details?id=com.doubleTwist.androidPlayerProKey&#038;feature=apps_timed_promotion"  rel="external">AirSync by doubleTwist</a>, <a href="https://market.android.com/details?id=com.fullfat.android.flickgolf&#038;feature=apps_timed_promotion" rel="external">Flick Golf!</a>, <a href="https://market.android.com/details?id=com.escapistgames.starchart&#038;feature=apps_timed_promotion" rel="external">Star Chart</a>, <a href="https://market.android.com/details?id=com.polarbit.RecklessRacing&#038;feature=apps_timed_promotion" rel="external">Reckless Racing</a>, <a href="https://market.android.com/details?id=com.polarbit.RecklessRacingPlay&#038;feature=apps_timed_promotion" rel="external">Reckless Racing PLAY</a>, <a href="https://market.android.com/details?id=com.dualboot.apps.christmas&#038;feature=apps_timed_promotion" rel="external">Christmas HD</a>, <a href="https://market.android.com/details?id=com.naturalmotion.nflrivals&#038;feature=apps_timed_promotion" rel="external">NFL Rivals</a>, <a href="https://market.android.com/details?id=com.levelup.beautifulwidgets&#038;feature=apps_timed_promotion" rel="external">Beautiful Widgets</a> and <a href="https://market.android.com/details?id=com.ideashower.readitlater.pro&#038;feature=apps_timed_promotion" rel="external">Read It Later Pro</a>.</p>
<p>And this will go on for another 8 days. Not bad.</p>
<p>Either open the Android Market app on your phone, or browse the market on your computer by going to <a href="https://market.android.com/apps" rel="external">market.android.com</a>. If you log in on the website, you can buy the apps right there and have them automatically downloaded to your phone. A really great feature that&#8217;s probably also a gigantic security hole that will some day be exploited to send malicious software to every single Android phone.</p>
<p>You heard it here first.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vegard.net/archives/4624/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building a Twitter Reader With Titanium Mobile.</title>
		<link>http://www.vegard.net/archives/4277/</link>
		<comments>http://www.vegard.net/archives/4277/#comments</comments>
		<pubDate>Sat, 08 Oct 2011 18:34:55 +0000</pubDate>
		<dc:creator>Vegard Skjefstad</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Titanium]]></category>

		<guid isPermaLink="false">http://www.vegard.net/?p=4277</guid>
		<description><![CDATA[There are a lot of mobile platforms out there: iOS, Android, Windows Phone, webOS, BlackBerry and Symbian, just to mention a few. In my honest opinion, there are way too many and a good thing at least two of these, webOS and Symbian, will disappear off the face of the Earth in the not-so-distant future. [...]]]></description>
			<content:encoded><![CDATA[<p>There are a lot of mobile platforms out there: iOS, Android, Windows Phone, webOS, BlackBerry and Symbian, just to mention a few. In my honest opinion, there are way too many and a good thing at least two of these, webOS and Symbian, will disappear off the face of the Earth in the not-so-distant future. Looking into the crystal ball, I&#8217;d say that the future for Windows Phone also looks bleak: Windows Phone 7 sales numbers are, to put it mildly, disappointing and if it wasn&#8217;t for the fact that Microsoft can bleed pile upon pile of cash before they have to throw in the towel, the Windows Phone platform would have been taken behind the barn a long time ago. It was a great leap from the unbelievably crappy Windows Mobile platform, but as long as you don&#8217;t sell any handsets you&#8217;re not making any money, no matter how huge the potential is. What might turn the tide for Windows Phone, though, is Microsoft&#8217;s partnership with Nokia, which is also getting pretty desperate not to get completely squeezed out of the smart phone market, or that Windows Phone 7.5 Mango is some sort of magic money making wand, or that Steve Jobs turned out to mean more to Apple&#8217;s success than he should or that the Android platform continues to dig itself into a segmentation hole. Didn&#8217;t we learn anything at all from J2ME?</p>
<p>But I digress already.</p>
<p><span id="more-4277"></span></p>
<p>Out of all the available platforms, two stick out: iOS and Android. If we look at the US market only, they have a combined market share of 71 percent (comScore, <a href="http://www.hindustantimes.com/technology/Technology-IndustryTrends/Android-and-iOS-rule-US-smartphone-market/SP-Article1-754542.aspx" rel="external">October 2011</a>). This means that if you build your mobile applications for these two platforms, you have covered a lot of end users. The problem is, however, that iOS and Android are two very, very different platforms. Everything from native language support to the application distribution ecosystem is different. To support both platforms you&#8217;ll need a team of Java developers for Android and a team of Objective C developers for iOS and virtually nothing they do will benefit both teams.</p>
<p>Luckily, there are options that can help you: Frameworks that aim to bridge the gap between the different mobile platforms. In this entry, we&#8217;ll look at <a href="http://www.appcelerator.com/products/titanium-mobile-application-development/" rel="external">Titanium Mobile</a> from <a href="http://www.appcelerator.com/" rel="external">Appcellerator</a>. Using the Titanium framework and common technologies like JavaScript, HTML and CSS, you can create applications that are run on both iOS and Android without the need to touch any native code. We&#8217;ll create a small application that has become the de facto &#8220;Hello, World&#8221; application for testing frameworks; a simple Twitter client. Our client will query Twitter for the latest tweets by a given username and display them on the screen.</p>
<p>I&#8217;ve never used Titanium before, so this will be a write-blog-entry-as-I-learn-experience. Also, in spite of being a software professional for almost ten years now, I&#8217;ve got very little experience with JavaScript. The reason for this is that when I first started to look at JavaScript many years ago it was a immense mess of spaghetti code that had to be tailored for every single browser and the experience gave me headaches and high blood pressure. So, for me, learning to use Titanium will be a real <a href="http://www.youtube.com/watch?v=OQSNhk5ICTI" rel="external">double rainbow</a> because it&#8217;ll allow me to play around with not just one, but two new toys.</p>
<p>Everything in this entry assumes that you have you&#8217;ve already got Titanium Studio and all of it&#8217;s prerequisites installed, configured and up and running. Another assumption is that you have an Android device available that you can use to test our application. To be honest, getting Titanium ready was a major pain because there are a lot of applications that have to be installed. If you are, like me, developing on Windows 7, you can use <a href="http://wiki.appcelerator.org/display/guides/Installing+on+Windows+7" rel="external">this somewhat outdated guide</a> written by Appcelerator themselves for installation instructions. Note that you will not be able to create an iOS version of our application when you are developing on Windows. Unfortunate, but it&#8217;s the harsh reality when working with Apple technologies. Why, then, even bother using Windows when developing using the Titanium framework? Good question. Since the source code we&#8217;ll write is platform agnostic &#8211; it&#8217;s JavaScript, not native code &#8211; it should, at least in theory, be possible to import our Twitter client project in Titanium Studio on a Mac and create an iOS version there. This enables each developer to use their preferred work environment to create applications. In my case, that is Windows 7. But it would have been Ubuntu if my employer&#8217;s VPN login supported more browsers than IE. Honestly.</p>
<p>Anyway. Let&#8217;s get started, already!</p>
<p>If you&#8217;re having problems with any of the code below, you can download the complete Titanium Studio project <a href="/archives/TwitterReader.zip">here</a>.</p>
<ol>
<li>In Titanium Studio, press Alt+Shift+N and select &#8220;Titanium Mobile Project&#8221; from the popup menu. Name the project &#8220;Twitter Reader&#8221; (without the quotes), enter &#8220;com.test.twitterreader&#8221; as App Id and click the Finish button. Titanium Studio creates a skeleton project that will be the basis for our Twitter client.</li>
<li>Now would be a good time to connect your Android device to your computer. Make sure it is configured for application debugging (settings-&gt;Applications-&gt;Development-&gt;check USB debugging) and that you have proper USB drivers for your device installed.</li>
<li>In the App Explorer on the left hand of the screen you&#8217;ll see a &#8220;Play&#8221;-button (upper left). Click on the arrow to the right of the button and select &#8220;Android Device&#8221;. The Titanium Studio will now compile and install our skeleton application on the device. When it&#8217;s ready, you&#8217;ll find the application &#8220;Twitter Reader&#8221; together with the rest of your applications on the connected device. Open it and marvel at your first Titanium application, created in a matter of minutes (not counting the hours you used to install Titanium).</li>
<li>
<p>The next step is to replace everything in the app.js file with the following code. This will strip the skeleton further, and the only thing being displayed if you install and start the application again will be a black main window with the title &#8220;Twitter Reader&#8221;.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">Titanium.<span style="color: #660066;">UI</span>.<span style="color: #660066;">setBackgroundColor</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#000'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> twitterWindow <span style="color: #339933;">=</span> Titanium.<span style="color: #660066;">UI</span>.<span style="color: #660066;">createWindow</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>  
    title<span style="color: #339933;">:</span><span style="color: #3366CC;">'Twitter Reader'</span><span style="color: #339933;">,</span>
    backgroundColor<span style="color: #339933;">:</span><span style="color: #3366CC;">'#fff'</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

</p>
</li>
<li>
<li>
<p>Titanium has a lot of built in libraries we can utilize to quickly do a lot of things that might have been a bit of a hassle if we were coding in Java or Objective C. One of those libraries provide an HTTP client that we will use to query Twitter for the most recent tweets by a given username. Add the following to app.js:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>7
8
9
10
11
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> twitterUserName <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;vegardskjefstad&quot;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> httpClient <span style="color: #339933;">=</span> Ti.<span style="color: #660066;">Network</span>.<span style="color: #660066;">createHTTPClient</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
httpClient.<span style="color: #660066;">timeout</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">10000</span><span style="color: #339933;">;</span>
httpClient.<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;GET&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;http://api.twitter.com/1/statuses/&quot;</span> <span style="color: #339933;">+</span> 
	<span style="color: #3366CC;">&quot;user_timeline.json?count=10&amp;screen_name=&quot;</span> <span style="color: #339933;">+</span> twitterUserName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>This will create an HTTP client that connects to Twitter and asks for the user timeline of my Twitter account in JSON format. If you want to use another Twitter account, simply change the value of the twitterUserName variable. on line 7.</p>
</li>
<li>
<p>
Next we have to do something with the response from the Twitter server. First, we create an array, twitterData, where we&#8217;ll store a selection of the data in the response. Then we tell the HTTP client we use what to do when it receives a successful response from the Twitter server:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> twitterData <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
httpClient.<span style="color: #000066;">onload</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> tweets <span style="color: #339933;">=</span> JSON.<span style="color: #660066;">parse</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">responseText</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> tweets.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>E<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>E<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>This block of code will serve as the basis for our processing of the data from Twitter. It splits the response into pieces that can be handled by the code and then loops through all the data. It doesn&#8217;t do anything with the data yet, but that will change soon as we start to add code in the body of the for-loop on line 17.
</p>
</li>
<li>
<p>
First, we add code that extract the tweet text, username, avatar URL and tweet date from the response. We also create a table view row where we&#8217;ll eventually display the data for a particular tweet:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>16
17
18
19
20
21
22
23
24
25
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">		...
		<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> tweets.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
			<span style="color: #003366; font-weight: bold;">var</span> tweetText <span style="color: #339933;">=</span> tweets<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">text</span><span style="color: #339933;">;</span>
			<span style="color: #003366; font-weight: bold;">var</span> user <span style="color: #339933;">=</span> tweets<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">user</span>.<span style="color: #660066;">screen_name</span><span style="color: #339933;">;</span>
			<span style="color: #003366; font-weight: bold;">var</span> avatar <span style="color: #339933;">=</span> tweets<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">user</span>.<span style="color: #660066;">profile_image_url</span><span style="color: #339933;">;</span>
			<span style="color: #003366; font-weight: bold;">var</span> created_at <span style="color: #339933;">=</span> tweets<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">created_at</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #003366; font-weight: bold;">var</span> row <span style="color: #339933;">=</span> Ti.<span style="color: #660066;">UI</span>.<span style="color: #660066;">createTableViewRow</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>hasChild<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
				height<span style="color: #339933;">:</span><span style="color: #3366CC;">'auto'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

</p>
</li>
<li>
<p>
Next we take the data we just extracted and insert them into visual elements defined by Titanium like views, image views and labels. This is quite a lot of code, but I suspect still not as much as if you&#8217;d done this in either Java or Objective C.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">			...
			<span style="color: #003366; font-weight: bold;">var</span> postView <span style="color: #339933;">=</span> Ti.<span style="color: #660066;">UI</span>.<span style="color: #660066;">createView</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
				height<span style="color: #339933;">:</span><span style="color: #3366CC;">'auto'</span><span style="color: #339933;">,</span>
				layout<span style="color: #339933;">:</span><span style="color: #3366CC;">'vertical'</span><span style="color: #339933;">,</span>
				left<span style="color: #339933;">:</span><span style="color: #CC0000;">5</span><span style="color: #339933;">,</span>
				top<span style="color: #339933;">:</span><span style="color: #CC0000;">5</span><span style="color: #339933;">,</span>
				bottom<span style="color: #339933;">:</span><span style="color: #CC0000;">5</span><span style="color: #339933;">,</span>
				right<span style="color: #339933;">:</span><span style="color: #CC0000;">5</span>
			<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #003366; font-weight: bold;">var</span> avatarImageView <span style="color: #339933;">=</span> Ti.<span style="color: #660066;">UI</span>.<span style="color: #660066;">createImageView</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
				image<span style="color: #339933;">:</span>avatar<span style="color: #339933;">,</span>
				left<span style="color: #339933;">:</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>
				top<span style="color: #339933;">:</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>
				height<span style="color: #339933;">:</span><span style="color: #CC0000;">48</span><span style="color: #339933;">,</span>
				width<span style="color: #339933;">:</span><span style="color: #CC0000;">48</span>
			<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			postView.<span style="color: #660066;">add</span><span style="color: #009900;">&#40;</span>avatarImageView<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #003366; font-weight: bold;">var</span> userLabel <span style="color: #339933;">=</span> Ti.<span style="color: #660066;">UI</span>.<span style="color: #660066;">createLabel</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
				text<span style="color: #339933;">:</span>user<span style="color: #339933;">,</span>
				left<span style="color: #339933;">:</span><span style="color: #CC0000;">54</span><span style="color: #339933;">,</span>
				width<span style="color: #339933;">:</span><span style="color: #CC0000;">120</span><span style="color: #339933;">,</span>
				top<span style="color: #339933;">:-</span><span style="color: #CC0000;">48</span><span style="color: #339933;">,</span>
				bottom<span style="color: #339933;">:</span><span style="color: #CC0000;">2</span><span style="color: #339933;">,</span>
				height<span style="color: #339933;">:</span><span style="color: #CC0000;">16</span><span style="color: #339933;">,</span>
				textAlign<span style="color: #339933;">:</span><span style="color: #3366CC;">'left'</span><span style="color: #339933;">,</span>
				color<span style="color: #339933;">:</span><span style="color: #3366CC;">'#444444'</span><span style="color: #339933;">,</span>
				font<span style="color: #339933;">:</span><span style="color: #009900;">&#123;</span>fontFamily<span style="color: #339933;">:</span><span style="color: #3366CC;">'Trebuchet MS'</span><span style="color: #339933;">,</span>fontSize<span style="color: #339933;">:</span><span style="color: #CC0000;">14</span><span style="color: #339933;">,</span>
					fontWeight<span style="color: #339933;">:</span><span style="color: #3366CC;">'bold'</span><span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			postView.<span style="color: #660066;">add</span><span style="color: #009900;">&#40;</span>userLabel<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #003366; font-weight: bold;">var</span> dateLabel <span style="color: #339933;">=</span> Ti.<span style="color: #660066;">UI</span>.<span style="color: #660066;">createLabel</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
				text<span style="color: #339933;">:</span>created_at<span style="color: #339933;">,</span>
				right<span style="color: #339933;">:</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>
				top<span style="color: #339933;">:-</span><span style="color: #CC0000;">18</span><span style="color: #339933;">,</span>
				bottom<span style="color: #339933;">:</span><span style="color: #CC0000;">2</span><span style="color: #339933;">,</span>
				height<span style="color: #339933;">:</span><span style="color: #CC0000;">14</span><span style="color: #339933;">,</span>
				textAlign<span style="color: #339933;">:</span><span style="color: #3366CC;">'right'</span><span style="color: #339933;">,</span>
				width<span style="color: #339933;">:</span><span style="color: #CC0000;">110</span><span style="color: #339933;">,</span>
				color<span style="color: #339933;">:</span><span style="color: #3366CC;">'#444444'</span><span style="color: #339933;">,</span>
				font<span style="color: #339933;">:</span><span style="color: #009900;">&#123;</span>fontFamily<span style="color: #339933;">:</span><span style="color: #3366CC;">'Trebuchet MS'</span><span style="color: #339933;">,</span>fontSize<span style="color: #339933;">:</span><span style="color: #CC0000;">12</span><span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			postView.<span style="color: #660066;">add</span><span style="color: #009900;">&#40;</span>dateLabel<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #003366; font-weight: bold;">var</span> tweetTextLabel <span style="color: #339933;">=</span> Ti.<span style="color: #660066;">UI</span>.<span style="color: #660066;">createLabel</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
				text<span style="color: #339933;">:</span>tweetText<span style="color: #339933;">,</span>
				left<span style="color: #339933;">:</span><span style="color: #CC0000;">54</span><span style="color: #339933;">,</span>
				top<span style="color: #339933;">:</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>
				bottom<span style="color: #339933;">:</span><span style="color: #CC0000;">2</span><span style="color: #339933;">,</span>
				height<span style="color: #339933;">:</span><span style="color: #3366CC;">'auto'</span><span style="color: #339933;">,</span>
				width<span style="color: #339933;">:</span><span style="color: #CC0000;">236</span><span style="color: #339933;">,</span>
				textAlign<span style="color: #339933;">:</span><span style="color: #3366CC;">'left'</span><span style="color: #339933;">,</span>
				font<span style="color: #339933;">:</span><span style="color: #009900;">&#123;</span>fontSize<span style="color: #339933;">:</span><span style="color: #CC0000;">14</span><span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			postView.<span style="color: #660066;">add</span><span style="color: #009900;">&#40;</span>tweetTextLabel<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			row.<span style="color: #660066;">add</span><span style="color: #009900;">&#40;</span>postView<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			twitterData<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> row<span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

</p>
</li>
<li>
<p>
The last thing we&#8217;ll do inside the body of the try-block (but outside the body of the for-loop) is to add a table view with all the Twitter data we&#8217;ve processed to the main window of our application.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>88
89
90
91
92
93
94
95
96
97
98
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">			...
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #003366; font-weight: bold;">var</span> tableview <span style="color: #339933;">=</span> Titanium.<span style="color: #660066;">UI</span>.<span style="color: #660066;">createTableView</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>data<span style="color: #339933;">:</span>twitterData<span style="color: #339933;">,</span>
			minRowHeight<span style="color: #339933;">:</span><span style="color: #CC0000;">58</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		twitterWindow.<span style="color: #660066;">add</span><span style="color: #009900;">&#40;</span>tableview<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		twitterWindow.<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>E<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>E<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

</p>
</li>
<li>
<p>All the code that process the data is of no use if we don&#8217;t get any data from the Twitter server. There&#8217;s only one thing left to do to get our Twitter client operational and that&#8217;s to request data from Twitter:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>99
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">httpClient.<span style="color: #660066;">send</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

</p>
<li>
<li>Now once more tell Titanium Studio to install Twitter Reader on your connected device and open it when it&#8217;s installed. A window should open and you should shortly see the 10 latest tweets by me.</li>
</ol>
<p>So, there you have it: A Twitter client in less than 100 lines of code. Pretty amazing. Since I don&#8217;t have the iOS simulator or an actual iOS device available for testing, I can only confirm that the client is working on Android. We&#8217;ll just have to trust Appcelerator in their claim that everything will work on iOS as well.</p>
<p>This should be enough for proof for everyone that Titanium Mobile is great and that we should never ever again have to code anything using a native language. Or maybe not. Before you go nuts and throw away all your Java and Objective C books, there are a few things you should consider.</p>
<p>Firstly, frameworks like Titanium are nice, but you lose control of the native code. You can never be sure if the framework converts its code to the most efficient version of the native code. Secondly, frameworks will always lag behind the release versions of the native platforms they support in terms of available features. Thirdly, you will soon find yourself in situations where you have to customize parts of the code for specific mobile platforms. Frameworks are not he holy grail of mobile applications, but they can be very helpful in certain cases. Titanium Mobile is certainly worth considering if you are going to make an application that has to work on both iOS and Android.</p>
<p>Sources:<br />
<a href="http://wiki.appcelerator.org/display/guides/Installing+on+Windows+7" rel="external">Titanium Mobile: Installing on Windows 7</a><br />
<a href="http://developer.appcelerator.com/documentation" rel="external">Appcelerator Documentation Center &#8211; Documentation</a><br />
<a href="http://wiki.appcelerator.org/display/guides/Getting+Started+with+Kitchen+Sink" rel="external">Getting Started with Kitchen Sink</a>.<br />
<a href="https://github.com/appcelerator/KitchenSink" rel="external">appcelerator/KitchenSink &#8211; GitHub</a></p>
<p>A slimmed down version of this entry is available at <a href="http://open.bekk.no/building-a-twitter-reader-with-titanium-mobile" rel="external">BEKK Open</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vegard.net/archives/4277/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Around the Neighborhood.</title>
		<link>http://www.vegard.net/archives/3808/</link>
		<comments>http://www.vegard.net/archives/3808/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 20:26:58 +0000</pubDate>
		<dc:creator>Vegard Skjefstad</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://www.vegard.net/?p=3808</guid>
		<description><![CDATA[After I got together with Anniken I&#8217;ve been on what I guess is about a million walks. We&#8217;re a bit different when it comes to being in the apartment. I can stay inside for a whole weekend, no problem. For her, however, sitting in the apartment can make her rather restless and going for a [...]]]></description>
			<content:encoded><![CDATA[<p>After I got together with Anniken I&#8217;ve been on what I guess is about a million walks. We&#8217;re a bit different when it comes to being in the apartment. I can stay inside for a whole weekend, no problem. For her, however, sitting in the apartment can make her rather restless and going for a walk is a good cure for restlessness. I tag along, and I&#8217;ve learned to like it: Partly because it&#8217;s nice to get out every once in a while, partly because I know she gets less restless. And of course I really enjoy her company.</p>
<p>After I did the <a href="/archives/3634/">Android Camera App Review</a> and bought and installed <a href="https://market.android.com/details?id=uk.co.neilandtheresa.VignetteNewDemo" rel="external">Vignette</a>, I&#8217;ve brought my &#8220;phone&#8221; with me and shot a few pictures on our walks. Here are a couple of them, and I got to say that Vignette really puts that final, magical touch to most of them.</p>
<p><a href="http://www.vegard.net/wp-content/uploads/2011/07/2011-07-03-16-43-20-925.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/07/2011-07-03-16-43-20-925-216x216.jpg" alt="" title="The railroad that goes by our apartment. Right now it&#039;s closed for traffic because they are doing maintenance work about a kilometer down the track. So no pictures of trains. I like trains." width="200" height="200" class="alignleft size-thumbnail wp-image-3822" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/07/2011-07-06-19-52-17-661.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/07/2011-07-06-19-52-17-661-216x216.jpg" alt="" title="One of the many new buildings down in Bjørvika, Oslo. The area is called The Bar Code and has a lot of great architecture. Worth a visit." width="200" height="200" class="alignleft size-thumbnail wp-image-3827" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/07/2011-07-06-19-51-10-419.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/07/2011-07-06-19-51-10-419-216x216.jpg" alt="" title="The Bar Code, Bjørvika, Oslo, Norway." width="200" height="200" class="alignleft size-thumbnail wp-image-3826" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/07/2011-07-06-19-49-43-865.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/07/2011-07-06-19-49-43-865-216x216.jpg" alt="" title="The Bar Code, Bjørvika, Oslo, Norway." width="200" height="200" class="alignleft size-thumbnail wp-image-3825" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/07/2011-07-03-19-00-49-744.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/07/2011-07-03-19-00-49-744-216x216.jpg" alt="" title="Brynseng metro station. A new acquaintance for many commuters these days." width="200" height="200" class="alignleft size-thumbnail wp-image-3824" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/07/2011-07-03-18-55-18-884.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/07/2011-07-03-18-55-18-884-216x216.jpg" alt="" title="The offices of the mobile phone operator Tele2 at Brynseng, Oslo, Norway." width="200" height="200" class="alignleft size-thumbnail wp-image-3823" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vegard.net/archives/3808/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Time-lapse.</title>
		<link>http://www.vegard.net/archives/3729/</link>
		<comments>http://www.vegard.net/archives/3729/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 18:51:32 +0000</pubDate>
		<dc:creator>Vegard Skjefstad</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://www.vegard.net/?p=3729</guid>
		<description><![CDATA[After finishing the Android Camera App Review entry, I bought Vignette. One of the many features of the application is time-lapse photography. Yesterday I set up the Galaxy Tab in the window sill and went to the gym. Three hours later, the camera had shot 1440 pictures that I slapped together in Windows Live Movie [...]]]></description>
			<content:encoded><![CDATA[<p>After finishing the <a href="/archives/3634/">Android Camera App Review</a> entry, I bought <a href="https://market.android.com/details?id=uk.co.neilandtheresa.NewVignette" rel="external">Vignette</a>. One of the many features of the application is time-lapse photography. Yesterday I set up the Galaxy Tab in the window sill and went to the gym. Three hours later, the camera had shot 1440 pictures that I slapped together in Windows Live Movie Maker and this is the end result.</p>
<p><iframe src="http://player.vimeo.com/video/25515966?byline=0&amp;portrait=0" width="651" height="366" frameborder="0"></iframe></p>
<p>Not too bad, except for a few details. The end result at Vimeo gets stretched. The preview image is fine, but the video is not. I have no idea why. Also, the camera really can&#8217;t cope with the changing light conditions, but that is to be expected. It&#8217;s not high quality optics. The last little annoyance is my fault: Vignette was configured to handle the white balance by itself, something that results in some rather funky color changes towards the end of the video.</p>
<p>Still, I think the video is all right all things considered.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vegard.net/archives/3729/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Android Camera App Review.</title>
		<link>http://www.vegard.net/archives/3634/</link>
		<comments>http://www.vegard.net/archives/3634/#comments</comments>
		<pubDate>Sat, 18 Jun 2011 15:54:11 +0000</pubDate>
		<dc:creator>Vegard Skjefstad</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://www.vegard.net/?p=3634</guid>
		<description><![CDATA[There are loads and loads of camera applications available for the Android platform. The question is; which one is the right one for me? By &#8220;me&#8221; I mean a fairly tech savvy person with a fluctuating interest for photography who wants an application on his or her Android phone that can take high quality images [...]]]></description>
			<content:encoded><![CDATA[<p>There are loads and loads of <a href="http://market.android.com/apps/PHOTOGRAPHY" rel="external">camera applications</a> available for the Android platform. The question is; which one is the right one for <em>me</em>? By &#8220;me&#8221; I mean a fairly tech savvy person with a fluctuating interest for photography who wants an application on his or her Android phone that can take high quality images with on-the-fly effects.</p>
<p>When I started to look for a camera application, I focused on support for large screens (I&#8217;m using a Samsung Galaxy Tab), support for the Toy Camera and Polaroid effects (everything else is just a bonus, really), a way to turn off the horrible shutter sound and a no-fuzz interface. I looked both at free and paid apps, but all the testing is based on free versions of the paid apps: I don&#8217;t mind paying for an app that I use frequently, but I&#8217;m not going to throw money at you to properly test drive your software.</p>
<p>In case you&#8217;re a bit confused about the weird square art to the right of each logo: These are QR codes. If you download a QR code reader from the Android Market, for instance <a href="https://market.android.com/details?id=com.google.zxing.client.android&#038;feature=search_result" rel="external">Barcode Scanner</a>, you will be able to use the camera on your phone to read the QR codes straight off the screen and go directly to the applications in Android Market.<span id="more-3634"></span></p>
<h3>FxCamera</h3>
<p><img src="http://www.vegard.net/wp-content/uploads/2011/06/fxcamera-logo.jpg-e1308074818342.jpeg" alt="" title="FxCamera Logo" width="62" height="62" class="alignleft size-full wp-image-3638" /><img src="http://www.vegard.net/wp-content/uploads/2011/06/fxcamera-qr.png" alt="" title="FxCamera QR code" width="60" height="60" class="alignleft size-full wp-image-3642" />I&#8217;ve used <a href="https://market.android.com/details?id=ymst.android.fxcamera" rel="external">FxCamera</a> on all my Android phones. It&#8217;s a nice, free (ad supported), little app, with support for both the Toy Camera and Polaroid effects. It worked great on both my HTC Hero and HTC Desire, but does not use all the screen on my Galaxy Tab. And what&#8217;s the use of having a large screen if the application only uses parts of it?</p>
<p>The app also supports Fisheye, SymmetriCam, AndyWarholzier and plain shooting with no effects. All the effects have their own, easy-to-use settings and there is also a limited set of common settings, like flash control and auto rotate. FxCamera used to have a terribly annoying shutter sound, but as far as I can tell, that is gone now. It might have been removed in a previous version, or perhaps it might surface again without notice.</p>
<p>Pros: Free (ad supported), simple interface, no shutter sound, fast, home screen shortcuts for direct access to available effects.<br />
Cons: Does not support the Galaxy Tab screen size, few effects, low picture resolution: 960 x 640 is max, and the Galaxy Tab supports up to 2048 x 1536. Bummer. No geotagging support.</p>
<p><a href="http://www.vegard.net/wp-content/uploads/2011/06/FxCam_1308392694695.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/FxCam_1308392694695-150x150.jpg" alt="" title="FxCamera ToyCam" width="150" height="150" class="alignleft size-thumbnail wp-image-3684" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/06/FxCam_1308392711721.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/FxCam_1308392711721-150x150.jpg" alt="" title="FxCamera Polaroid" width="150" height="150" class="alignleft size-thumbnail wp-image-3685" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/06/FxCam_1308394020319.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/FxCam_1308394020319-150x150.jpg" alt="" title="FxCamera Fisheye" width="150" height="150" class="alignleft size-thumbnail wp-image-3686" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/06/FxCam_1308397477205.png"><img src="http://www.vegard.net/wp-content/uploads/2011/06/FxCam_1308397477205-150x150.png" alt="" title="FxCamera AnyWarholizer" width="150" height="150" class="alignleft size-thumbnail wp-image-3687" /></a></p>
<h3>Retro Camera</h3>
<p><img src="http://www.vegard.net/wp-content/uploads/2011/06/retrocamera-logo-e1308075980712.jpeg" alt="" title="Retro Camera Logo" width="62" height="62" class="alignleft size-full wp-image-3648" /><img src="http://www.vegard.net/wp-content/uploads/2011/06/retrocamera-qr.png" alt="" title="Retro Camera QR code" width="60" height="60" class="alignleft size-full wp-image-3649" /><a href="https://market.android.com/details?id=org.urbian.android.tools.vintagecam" rel="external">Retro Camera</a> has another approach to the effects thing. By simulating classic cameras, like the Bärbl and the Orange Box together with what I can only assume are make-believe cameras, like the FudgeCan, you get a lot of cool effects by taking the picture with the actual camera. Sort of.</p>
<p>The app has a fine selection of settings, for instance the option to turn off all camera sounds, macro photography (not tested) and geotagging. There is no way to tell what resolutions Retro Camera supports, however, the only option is to turn on and off &#8220;high resolution&#8221;.</p>
<p>Like FxCamera, Retro Camera does not support the full size of the Galaxy Tab screen, and together with the fact that only 1/8 of the screen is used to preview what you will actually capture in your photo, makes this application very hard to use. The application also uses a lot of graphics for its interface, and this makes it unbearably slow at times. Chose a camera, wait 10 seconds and you can finally take a picture. With it&#8217;s toy-like interface, Retro Camera is probably best suited for kids.</p>
<p>Pros: Free (ad supported, paid version available), useful common settings.<br />
Cons: Slow, clumsy interface, few effects, does not support the Galaxy Tab screen size, unclear maximum picture resolution, very small image preview.</p>
<p><a href="http://www.vegard.net/wp-content/uploads/2011/06/shot_1308392359111.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/shot_1308392359111-150x150.jpg" alt="" title="Retro Camera FudgeCan" width="150" height="150" class="alignleft size-thumbnail wp-image-3689" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/06/shot_1308392397494.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/shot_1308392397494-150x150.jpg" alt="" title="Retro Camera Xolaroid 2000" width="150" height="150" class="alignleft size-thumbnail wp-image-3690" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/06/shot_1308393901891.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/shot_1308393901891-150x150.jpg" alt="" title="Retro Camera Bärbl" width="150" height="150" class="alignleft size-thumbnail wp-image-3691" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/06/shot_1308397367338.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/shot_1308397367338-150x150.jpg" alt="" title="Retro Camera FudgeCan" width="150" height="150" class="alignleft size-thumbnail wp-image-3692" /></a></p>
<h3>Pudding Camera</h3>
<p><img src="http://www.vegard.net/wp-content/uploads/2011/06/puddingcamera-logo-e1308079154525.png" alt="" title="Pudding Camera Logo" width="62" height="62" class="alignleft size-full wp-image-3653" /><img src="http://www.vegard.net/wp-content/uploads/2011/06/puddingcamera-qr.png" alt="" title="Pudding Camera QR code" width="60" height="60" class="alignleft size-full wp-image-3654" /><a href="https://market.android.com/details?id=com.kth.PuddingCamera" rel="external">Pudding Camera</a> is a free app with a high quality interface that manages to use all of the screen estate available on the Galaxy Tab &#8211; at least for the image preview, the image buttons are somewhat misaligned with the rest of the screen. There is no menu associated with Pudding Camera, if you hit the usual Menu button on your Android phone, nothing will happen. Instead, you have to use the setting button provided by the application.</p>
<p>The application let&#8217;s you choose from a six cameras with various modes, like Panorama, Motion 2&#215;2 (4 shots in one picture) and Fisheye. In this camera you can install eight different films, for instance Vintage Blue, Mono and Vivid. This gives you a wide verity of combinations, and each combination has a small preview picture that will give you an idea of how you final photo will look. None of the combinations, however, will enable you to create the Toy Camera or Polaroid effects.</p>
<p>Pudding Camera is the only application I&#8217;ve tested that support the Galaxy Tab&#8217;s front-facing camera, which is great for self shots. I take <em>a lot</em> of self shots in the bathroom mirror, so this is a feature that will come in handy for me. Especially right after I&#8217;ve done my bi-weekly spray tan.</p>
<p>The application has one great flaw, though, but it&#8217;s still one that can be addressed quite easily by the developer: Pudding Camera only supports what I suspect is Korean, so navigating the menus can be a little bit tricky.</p>
<p>Pros: Free, very nice looking interface, supports both primary and secondary camera, decent collection of effects.<br />
Cons: Only available in Korean, does not support the Toy Camera and Polaroid effects, interface can be somewhat slow at times.</p>
<p><a href="http://www.vegard.net/wp-content/uploads/2011/06/20110618122257.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/20110618122257-150x150.jpg" alt="" title="Pudding Camera" width="150" height="150" class="alignleft size-thumbnail wp-image-3694" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/06/20110618122327.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/20110618122327-150x150.jpg" alt="" title="Pudding Camera" width="150" height="150" class="alignleft size-thumbnail wp-image-3695" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/06/20110618122428.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/20110618122428-150x150.jpg" alt="" title="Pudding Camera" width="150" height="150" class="alignleft size-thumbnail wp-image-3696" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/06/20110618124619.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/20110618124619-150x150.jpg" alt="" title="Pudding Camera" width="150" height="150" class="alignleft size-thumbnail wp-image-3697" /></a></p>
<h3>Vignette</h3>
<p><img src="http://www.vegard.net/wp-content/uploads/2011/06/vignette-logo-e1308079294467.png" alt="" title="Vignette Logo" width="62" height="62" class="alignleft size-full wp-image-3655" /><img src="http://www.vegard.net/wp-content/uploads/2011/06/vignette-qr.png" alt="" title="Vignette QR code" width="60" height="60" class="alignleft size-full wp-image-3661" /><a href="https://market.android.com/details?id=uk.co.neilandtheresa.VignetteNewDemo" rel="external">Vignette</a> comes in both free and paid versions. The free version has all the features of the paid version, with one major limitation: The maximum quality of the free version is 0.3 megapixels &#8211; very, very limited. The maximum quality in the paid version, however, is 3.1 megapixels.</p>
<p>The application is very easy to use and the interface is straight forward and gives you all the information you need on screen as you take the picture: Zoom, shooting mode, flash, focus, quality and effects currently turned on. Vignette has a very wide range of different options, from time lapse shooting to macro photography, It&#8217;s also possible to turn off the shutter sound and use the front facing camera on my Galaxy Tab. Vignette also use all of the screen estate, which is very convenient. The menus can be a little confusing to navigate, though, it&#8217;s not that obvious that you have to enter the focus options to turn off the shutter sound.</p>
<p>In terms of effect, Vignette separates them into two categories; effects and frames. These can be combined as you like and saved into favorites. It&#8217;s also possible to create shortcuts on your home screen for easy access to predefined effect and frame combinations. Shooting and processing is very quick compared to some of the other applications, and it&#8217;s possible to change the effect and frame after the picture is taken. There&#8217;s also an option to save copy, and then change the effect and frame to create another version of the same picture. On top of this you can configure Vignette to save a clean version of the original image so you can apply effects later &#8211; the application allows you to import pictures from your gallery and add effects and frames to these as well.</p>
<p>It&#8217;s like the developer thought of everything and then some.</p>
<p>Pros: Free and paid versions, extensive help available on every option screen, tons of shooting modes, supports both primary and secondary camera, possible to turn off shutter sound, geotagging support, option to save original image, images can be imported and edited, almost unlimited number of effect and frame combinations.<br />
Cons: Very limited quality on the free version.</p>
<p><a href="http://www.vegard.net/wp-content/uploads/2011/06/1308409818720.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/1308409818720-150x150.jpg" alt="" title="Vignette SX-70 effect and instant classic frame" width="150" height="150" class="alignleft size-thumbnail wp-image-3698" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/06/1308409849477-copy-1.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/1308409849477-copy-1-150x150.jpg" alt="" title="Vignette Toy camera BW with film grain and overexpose, square black frame" width="150" height="150" class="alignleft size-thumbnail wp-image-3699" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/06/1308409849477.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/1308409849477-150x150.jpg" alt="" title="Vignette Toy camera with film grain and light leaks, square bordered frame" width="150" height="150" class="alignleft size-thumbnail wp-image-3700" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/06/1308409941440.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/1308409941440-150x150.jpg" alt="" title="Vignette" width="150" height="150" class="alignleft size-thumbnail wp-image-3701" /></a></p>
<h3>Camera360</h3>
<p><img src="http://www.vegard.net/wp-content/uploads/2011/06/camera360-logo-e1308079424653.png" alt="" title="Camera360 Logo" width="62" height="62" class="alignleft size-full wp-image-3658" /><img src="http://www.vegard.net/wp-content/uploads/2011/06/camera360-qr.png" alt="" title="Camera360 QR code" width="60" height="60" class="alignleft size-full wp-image-3659" /><a href="https://market.android.com/details?id=vStudio.Android.Camera360" rel="external">Camera360</a> also comes in two flavors, free and paid. The free version comes with a splash screen, which can be very inconvenient if you&#8217;re trying to get a picture taken quickly. Leaving the first splash screen takes you to yet another menu, but this one can thankfully be turned off. The main focus when you use a camera app is to take a picture, but it doesn&#8217;t look like this was the main focus of the developers.</p>
<p>Camera360 does not support the big Galaxy Tab screen and using the back button when using the camera actually quits the application, it does not take you back to the menu like you would expect. The number of effects available in the application is somewhat limited; there is a Toy Camera option, but no way to simulate a Polaroid camera. On the plus side, though Camera360 supports <a href="http://en.wikipedia.org/wiki/Tilt-shift_photography" rel="external">tilt-shift photography</a> and the result is absolutely stunning. HDR is also available, but I&#8217;ve not had the opportunity to test this mode myself.</p>
<p>The application also have other unique features, like the options to add scenery to your photo. You can for instance place your picture inside the advertisement frame of a bus stop. Great entertainment for some, I&#8217;m sure, but not my cup of tea. The quality settings of Camera360 are the best of the bunch, with the option to select sizes of up to 2048 x 1536 on my Galaxy Tab. Great stuff.</p>
<p>Pros: Paid and free versions, tilt-shift mode, HDR mode, great advanced quality settings, geotagging, option to turn off shutter sound, can save the original image.<br />
Cons: Polaroid effect is missing, does not use all of the available Galaxy tab screen estate, not possible to create home screen shortcut on the home screen in free version, inconsistent use of the back-button, some weird English translations.</p>
<p><a href="http://www.vegard.net/wp-content/uploads/2011/06/C360_2011-06-18-12-28-38.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/C360_2011-06-18-12-28-38-150x150.jpg" alt="" title="Camera 360 Dreamlike effect" width="150" height="150" class="alignleft size-thumbnail wp-image-3703" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/06/C360_2011-06-18-12-44-30.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/C360_2011-06-18-12-44-30-150x150.jpg" alt="" title="Camera 360 Retro" width="150" height="150" class="alignleft size-thumbnail wp-image-3704" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/06/C360_2011-06-18-13-01-01.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/C360_2011-06-18-13-01-01-150x150.jpg" alt="" title="Camera 360 tilt-shift" width="150" height="150" class="alignleft size-thumbnail wp-image-3705" /></a><a href="http://www.vegard.net/wp-content/uploads/2011/06/C360_2011-06-18-13-41-55.jpg"><img src="http://www.vegard.net/wp-content/uploads/2011/06/C360_2011-06-18-13-41-55-150x150.jpg" alt="" title="Camera 360 Back to 1839" width="150" height="150" class="alignleft size-thumbnail wp-image-3706" /></a></p>
<h3>Conclusion</h3>
<p>Before we move on to the verdict, I should point out that the reviews are based on fifteen to twenty minutes of playing around with each application. With prolonged usage, some of the cons might turn into pros and vice versa. Hidden features and bugs can suddenly surface and turn a perfectly good application into crap or perhaps turn crap into gold.</p>
<p>But based on my experience so far, I would probably spend a little money and get the paid version of <a href="https://market.android.com/details?id=uk.co.neilandtheresa.NewVignette" rel="external">Vignette</a>. With all the features and the extremely versatile effect and frame combination system, you can play around with this application for ever and probably never get tired of it. If you feel Vignette&#8217;s vast number of features is a bit overwhelming, however, consider <a href="https://market.android.com/details?id=ymst.android.fxcamera" rel="external">FxCamera</a> instead. It&#8217;s a great application that I&#8217;ve used a lot myself and I&#8217;m very pleased with it. The only drawback is the low picture resolution.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vegard.net/archives/3634/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where am I?</title>
		<link>http://www.vegard.net/archives/3334/</link>
		<comments>http://www.vegard.net/archives/3334/#comments</comments>
		<pubDate>Sun, 20 Feb 2011 14:01:57 +0000</pubDate>
		<dc:creator>Vegard Skjefstad</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.vegard.net/?p=3334</guid>
		<description><![CDATA[We all know of the feeling of suddenly waking up and having no idea where we are. Right? But that all change now with the release of the Where am I?-application, a one-click, no-fuss tool that will tell you what you need to know; where you are. The application can be particularly useful if you&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.vegard.net/wp-content/uploads/2011/02/search.png" alt="" title="Where am I?-logo from the Smashing Retro Icon Set: http://www.smashingmagazine.com/2009/02/12/smashing-retro-icon-set/" width="72" height="72" class="alignleft size-full wp-image-3335" /> We all know of the feeling of suddenly waking up and having no idea where we are. Right? But that all change now with the release of the Where am I?-application, a one-click, no-fuss tool that will tell you what you need to know; where you are.</p>
<p>The application can be particularly useful if you&#8217;re Narcoleptic and have friends that take advantage of this by moving you halfway across the country before you wake up.</p>
<p>Disclaimer: GPS or network location required. Might not work too well in all areas around the globe. You should not rely on this application for anything.</p>
<p><a href="https://market.android.com/details?id=com.buingo" rel="external">Download from Android Market</a>.</p>
<p>Scan the following QR code with your Android phone for a direct link to the market (<a href="https://market.android.com/details?id=com.google.zxing.client.android" rel="external">Barcode scanner</a> is a great tool for this):<br />
<img src="http://www.vegard.net/wp-content/uploads/2011/02/whereami-barcode.png" alt="" title="Where am I? QR code" width="111" height="111" class="size-full wp-image-3341" style="border:none" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vegard.net/archives/3334/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus One?</title>
		<link>http://www.vegard.net/archives/2378/</link>
		<comments>http://www.vegard.net/archives/2378/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 18:37:58 +0000</pubDate>
		<dc:creator>Vegard Skjefstad</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Gadgets]]></category>

		<guid isPermaLink="false">http://www.vegard.net/?p=2378</guid>
		<description><![CDATA[Google recently unveiled the HTC built Nexus One, an Android phone poised to challenge even the mighty iPhone. I have praised Android in the past, and is the happy owner of an HTC Hero. I have even been talking about starting to create applications for the Android platform, but that is yet to happen. Even [...]]]></description>
			<content:encoded><![CDATA[<p>Google recently unveiled the HTC built <a href="http://www.google.com/phone/" rel="external">Nexus One</a>, an Android phone poised to challenge even the mighty iPhone. I have praised <a href="/archives/tag/android/">Android</a> in the past, and is the happy owner of an HTC Hero. I have even been talking about starting to create applications for the Android platform, but that is yet to happen. Even though the Hero is a great phone, it has a few shortcomings compared to the iPhone and the screen is what comes to mind first. The camera also sucks monkey balls and it doesn&#8217;t come with a flash. Neither does the iPhone, though, and I don&#8217;t really use my phone as a camera that much, but every time I do, I wish the Android camera was a little better, at least when there is not much ambient light around.</p>
<p><img src="/img/google-nexus-one-flat.jpg" width="550" height="309" alt="Nexus One" class="centerimg"/></p>
<p>So, what about it? Should I ditch my HTC Hero in favor of a brand new Nexus One? It&#8217;s an impressive piece of hardware that is crammed with lots of equally impressive software and with the recent update from Google, it has also got multitouch support. The screen is huge, the Snapdragon processor is lightning fast and the phone has even got a &#8220;<a href="http://www.google.com/phone/static/en_US-nexusone_tech_specs.html" rel="external">Tri-color clickable trackball</a>&#8220;. Come on, what more can you possible ask for!?<span id="more-2378"></span></p>
<p>Well, with impressive hardware usually comes a notable price tag and the Nexus One is no exception. I don&#8217;t live in the US, so getting a T-Mobile subsidized version is not an option. I doubt that it would have been an option even if I&#8217;ve lived in the US of A since locking yourself to a provider for an extended period of time can be a serious pain in the ass. The price without selling your soul to T-Mobile is a massive $529, which is a lot of money for a phone. But the Nexus One can, like most other phones with that price tag, also double as a camera, an MP3 player, a GPS navigator and probably a lot more that I can&#8217;t think of right now.</p>
<p>What do other people think of the Nexus one? I know two people who have already bought the phone and they are generally very pleased with it. Even though the phone is not for sale here in Norway, there are ways. You can buy the phone through a web proxy, have it sent to a post box in the US and then moved by air mail to Norway. It&#8217;s really easy, I did this when I bought my first generation iPhone using <a href="http://www.jetcarrier.com/">JetCarrier</a>. They come highly recommended if you need anything sent from the United States to Norway, Sweden or Denmark.</p>
<p>The internet also likes the Nexus One. The only real biggie I&#8217;ve seen is poor 3G data connection and a lot of fall back to EDGE. This will most likely not be a problem in Norway, where the 3G coverage is excellent &#8211; at least in the areas I go. It can&#8217;t sync Exchange calendars, but my guess is that this feature will be added in a software update. Google was pretty quick to release multitouch support when people started to complain about that and I can&#8217;t see why they should not add Exchange calendar support. The general consensus seems to be that the Nexus One is a great handset, capable of going head-to-head with the iPhone and without doubt the best Android phone available today.</p>
<p>If you look at the big picture, $529 might not be <em>that</em> much money. But then again, why should I spend anything at all on something that I get for free at work? That phone is not my personal phone, but it doesn&#8217;t really make any difference if it&#8217;s my personal phone or not because I&#8217;m using it as it was. The Hero covers my day-to-day needs well enough for me to keep the money in my wallet. To be honest, I&#8217;d rather buy some something for you-know-who.</p>
<p>There you go, in just a few minutes I&#8217;ve talked myself out of spending my hard earned cash on something I don&#8217;t really need. This is a great way to save money!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vegard.net/archives/2378/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

