<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">
	<channel>
		<title>Tughi</title>
		<link>http://www.tughi.com</link>
		<description>Develop! Develop! Develop!</description>
		<language>en</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>

		
		<item>
			<title><![CDATA[Aggregator v2.1]]></title>
			<link>http://www.tughi.com/2012/02/18/aggregator-v2_1</link>
			<pubDate>Sat, 18 Feb 2012 14:08:51 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[aggregator]]></category>
			
			<guid>http://www.tughi.com/2012/02/18/aggregator-v2_1</guid>
			<description><![CDATA[<p>
Two requested features landed in this new release:
<ul>
<li>The ability to use the volume buttons to navigate between items</li>
<li>The possibility to control the feed items limit per feed</li>
</ul>
</p>
<br />

<a href="http://market.android.com/details?id=com.tughi.aggregator"><img src="http://chart.apis.google.com/chart?cht=qr&chs=500x200&chl=http://market.android.com/details?id=com.tughi.aggregator" /></a><br />
]]></description>
		</item>
		
		<item>
			<title><![CDATA[Aggregator v2.0]]></title>
			<link>http://www.tughi.com/2011/12/06/aggregator-v2_0</link>
			<pubDate>Tue, 6 Dec 2011 18:42:00 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[aggregator]]></category>
			
			<guid>http://www.tughi.com/2011/12/06/aggregator-v2_0</guid>
			<description><![CDATA[<p>
From now on Aggregator can crunch also <b>Atom</b> feeds! Starting with this release any feed (RSS/Atom) should be supported.
</p>
<br />
<p>
The most requested feature was finally added to Aggregator: <b>import</b>. Feeds can be imported from Google Reader OPML files and Aggregator's own OPML files. The import can be partial in that you can select what feeds will be imported. To make selection easier, one can invert the selection using the provided menu option.<br /> 
<img src="http://www.tughi.com/files?id=118001" />
<p/>
<br />
<p>
Aggregator can now <b>export</b> its own feeds too. The export can be done to an existing file (*.xml or *.opml) or to a newly created file.<br /> 
<img src="http://www.tughi.com/files?id=118002" />
</p>
<br />
<p>
To make the application more appealing I also added the feed's <b>icon</b> to the title bar.<br />
<img src="http://www.tughi.com/files?id=119001" />
</p>
<br />
<p>
NOTE: <b>With great power comes great responsibility.</b> Importing feeds from Google Reader is a nice thing to have, but use it wisely! With each new feed which is updated regularly in the background, the phone's battery will last less.
</p>

<a href="http://market.android.com/details?id=com.tughi.aggregator"><img src="http://chart.apis.google.com/chart?cht=qr&chs=500x200&chl=http://market.android.com/details?id=com.tughi.aggregator" /></a><br />
]]></description>
		</item>
		
		<item>
			<title><![CDATA[Aggregator v1.6]]></title>
			<link>http://www.tughi.com/2011/11/14/aggregator-v1_6</link>
			<pubDate>Mon, 14 Nov 2011 13:50:20 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[aggregator]]></category>
			
			<guid>http://www.tughi.com/2011/11/14/aggregator-v1_6</guid>
			<description><![CDATA[Version 1.6 brings colors to your <i>Unread items</i> screen.<br />
The <i>Feed preferences</i> screen has a new option: <b>Item color</b>. Use it to set custom colors for your feeds.
<br />
<img src="http://www.tughi.com/files?id=114001" />
<br />
<a href="http://market.android.com/details?id=com.tughi.aggregator"><img src="http://chart.apis.google.com/chart?cht=qr&chs=500x200&chl=http://market.android.com/details?id=com.tughi.aggregator" /></a><br />
]]></description>
		</item>
		
		<item>
			<title><![CDATA[Aggregator v1.5]]></title>
			<link>http://www.tughi.com/2011/11/06/aggregator-v1_5</link>
			<pubDate>Sun, 6 Nov 2011 10:13:18 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[aggregator]]></category>
			
			<guid>http://www.tughi.com/2011/11/06/aggregator-v1_5</guid>
			<description><![CDATA[Version 1.5 brings feed item sharing and weekly feed update interval.
<br />
<img src="http://www.tughi.com/files?id=112001" />
<br />
<a href="http://market.android.com/details?id=com.tughi.aggregator"><img src="http://chart.apis.google.com/chart?cht=qr&chs=500x200&chl=http://market.android.com/details?id=com.tughi.aggregator" /></a><br />
]]></description>
		</item>
		
		<item>
			<title><![CDATA[Aggregator v1.4]]></title>
			<link>http://www.tughi.com/2011/09/07/aggregator-v1_4</link>
			<pubDate>Wed, 7 Sep 2011 09:41:27 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[aggregator]]></category>
			
			<guid>http://www.tughi.com/2011/09/07/aggregator-v1_4</guid>
			<description><![CDATA[What's new?
<ul>
  <li>Improved HTTPS support: added option to declare a secure feed as trusted, if there are problems with the security certificates</li>
  <li>Improved feed auto-discovery: faster discovery with less memory usage</li>
  <li>Smaller package size</li>
  <li>Fixed "New Feed" activity behavior on device rotation</li>
</ul>
<br />
<br />
<a href="http://market.android.com/details?id=com.tughi.aggregator"><img src="http://chart.apis.google.com/chart?cht=qr&chs=500x200&chl=http://market.android.com/details?id=com.tughi.aggregator" /></a><br />
]]></description>
		</item>
		
		<item>
			<title><![CDATA[Aggregator v1.2]]></title>
			<link>http://www.tughi.com/2011/05/12/aggregator-v1_2</link>
			<pubDate>Thu, 12 May 2011 09:56:45 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[aggregator]]></category>
			
			<guid>http://www.tughi.com/2011/05/12/aggregator-v1_2</guid>
			<description><![CDATA[Prior to this version, if you had many feed items (2000+ in my case), the item lists required some time for loading the content before appearing on the screen.<br />
<b>Now</b> the activities appear instant and while the content is still loading a progress view is displayed. Also, to improve the loading time, the storage has been redesigned.<br />
<br />
So this release is about <b>speed</b> and <b>responsiveness</b>!
<br />
<br />
<i>Important</i>: If you upgrade from a prior version, the first run can take some time while upgrading the storage. It all depends on how many feed items you have.<br />
<br />
<a href="http://market.android.com/details?id=com.tughi.aggregator"><img src="http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl=http://market.android.com/details?id=com.tughi.aggregator" /></a><br />
]]></description>
		</item>
		
		<item>
			<title><![CDATA[Aggregator v1.1]]></title>
			<link>http://www.tughi.com/2011/04/19/aggregator-v1_1</link>
			<pubDate>Tue, 19 Apr 2011 20:07:10 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[aggregator]]></category>
			
			<guid>http://www.tughi.com/2011/04/19/aggregator-v1_1</guid>
			<description><![CDATA[New features:
<ul>
  <li>New 'Unread items' activity</li>
  <li>Configurable notification sound</li>
</ul>
<br />
<br />
Feedback is always welcomed!<br />
<a href="http://market.android.com/details?id=com.tughi.aggregator"><img src="http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl=http://market.android.com/details?id=com.tughi.aggregator" /></a><br />
]]></description>
		</item>
		
		<item>
			<title><![CDATA[Aggregator v1.0]]></title>
			<link>http://www.tughi.com/2011/03/31/aggregator-v1_0</link>
			<pubDate>Thu, 31 Mar 2011 15:47:06 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[aggregator]]></category>
			
			<guid>http://www.tughi.com/2011/03/31/aggregator-v1_0</guid>
			<description><![CDATA[Version 1.0 is finally out!<br />
<br />
The embedded viewer suffered the most important changes since version 0.9:
<ul>
  <li>the item title and date are embedded now at the top of the item content</li>
  <li>navigation buttons have been included for walking the feed up and down</li>
  <li>the item read state is represented by a toggle button</li>
</ul>
<img src="http://www.tughi.com/files?id=89001" />
<br />
<br />
Since this application has to refresh its database at scheduled times, it comes in handy to have a way to see if the selected update interval is optimal.<br .>
For this case, the <b>feed update monitor</b> can be helpful. If activated, you get a clickable history graph of the last feed updates at the top of the items list.<br />
<br />
<img src="http://www.tughi.com/files?id=91001" />
<br />
<br />
Feedback is always welcomed!<br />
<a href="http://market.android.com/details?id=com.tughi.aggregator"><img src="http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl=http://market.android.com/details?id=com.tughi.aggregator" /></a><br />
]]></description>
		</item>
		
		<item>
			<title><![CDATA[Aggregator v0.9]]></title>
			<link>http://www.tughi.com/2011/03/04/aggregator-v0_9</link>
			<pubDate>Fri, 4 Mar 2011 14:03:21 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[aggregator]]></category>
			
			<guid>http://www.tughi.com/2011/03/04/aggregator-v0_9</guid>
			<description><![CDATA[New features:
<ul>
  <li>improved feed auto discovery (using TagSoup)</li>
  <li>compression support for HTTP requests</li>
  <li>notification and feed items limit preferences</li>
  <li>menu option to show read items for a feed</li>
</ul>

<a href="http://market.android.com/details?id=com.tughi.aggregator"><img src="http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl=http://market.android.com/details?id=com.tughi.aggregator" /></a>]]></description>
		</item>
		
		<item>
			<title><![CDATA[Aggregator v0.8]]></title>
			<link>http://www.tughi.com/2011/02/23/aggregator-v0_8</link>
			<pubDate>Wed, 23 Feb 2011 21:15:51 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[aggregator]]></category>
			
			<guid>http://www.tughi.com/2011/02/23/aggregator-v0_8</guid>
			<description><![CDATA[New features:
<ul>
  <li>feeds auto discovery</li>
  <li>new option to open feed items directly in the browser</li>
  <li>shorter connection timeouts for background updates</li>
  <li>redesigned feed properties activity</li>
  <li>simpler error messages</li>
</ul>

<a href="http://market.android.com/details?id=com.tughi.aggregator"><img src="http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl=http://market.android.com/details?id=com.tughi.aggregator" /></a>]]></description>
		</item>
		
		<item>
			<title><![CDATA[Aggregator Filters]]></title>
			<link>http://www.tughi.com/2011/02/20/aggregator-filters</link>
			<pubDate>Sun, 20 Feb 2011 13:39:37 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[aggregator]]></category>
			
			<guid>http://www.tughi.com/2011/02/20/aggregator-filters</guid>
			<description><![CDATA[One of <a href="http://market.android.com/details?id=com.tughi.aggregator">Aggregator</a>'s main features is the ability to filter feed items.<br />
<br />
Feed filters allow you to read only the feed items that you are interested in.<br />
<br />
You can change the feed filter mode using the <<b>Filter Mode</b>> menu option.<br />
<img alt="change filter mode" src="http://www.tughi.com/files?id=73001" width="500px" /><br />
Feed filters are a set of rules that are applied on each feed item. You can use feed filters to show or hide feed items.<br />
From the example above, to hide all the <i>movie trailer</i> items, you select <<b>Show unmatched items</b>> option and create a filter by long pressing any <i>movie trailer</i> item.<br />
<img alt="create filter" src="http://www.tughi.com/files?id=74001" width="500px" /><br />
More filter rules can be added by following the same steps.<br />
<br />
To view all filters for a feed you must open the filter manager.<br />
<img alt="open filter manager" src="http://www.tughi.com/files?id=75001" width="500px" /><br />
]]></description>
		</item>
		
		<item>
			<title><![CDATA[Aggregator v0.7]]></title>
			<link>http://www.tughi.com/2011/02/19/aggregator-v0_7</link>
			<pubDate>Sat, 19 Feb 2011 21:24:11 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[aggregator]]></category>
			
			<guid>http://www.tughi.com/2011/02/19/aggregator-v0_7</guid>
			<description><![CDATA[Aggregator is a feed aggregator with filtering support.<br />
<br />
Version 0.7 brings:
<ul>
	<li>RSS 2.0 support</li>
	<li>Background feed updates</li>
	<li>Feed filters</li>
	<li>Android 1.6+ support</li>
</ul>
<a href="http://market.android.com/details?id=com.tughi.aggregator"><img src="http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl=http://market.android.com/details?id=com.tughi.aggregator" /></a>]]></description>
		</item>
		
		<item>
			<title><![CDATA[RON Exchange Rates v3.8]]></title>
			<link>http://www.tughi.com/2010/12/07/ron-exchange-rates-v38</link>
			<pubDate>Tue, 7 Dec 2010 16:15:45 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[nbrfxrates]]></category>
			
			<guid>http://www.tughi.com/2010/12/07/ron-exchange-rates-v38</guid>
			<description><![CDATA[At last, the application has been translated to Romanian. :-)<br />
The currencies have translations for German and French too, but I still need to ask my friends for help with the rest of the application.<br />
<br />
Other notable changes to the application:
<ul>
  <li>updated the tabs to look better on Gingerbread</li>
  <li>fixed application crash when the user clicked the history while still loading</li>
</ul>
]]></description>
		</item>
		
		<item>
			<title><![CDATA[RON Exchange Rates v3.7]]></title>
			<link>http://www.tughi.com/2010/06/26/ron-exchange-rates-v37</link>
			<pubDate>Sat, 26 Jun 2010 00:08:00 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[nbrfxrates]]></category>
			
			<guid>http://www.tughi.com/2010/06/26/ron-exchange-rates-v37</guid>
			<description><![CDATA[These days I had some free time to work on my hobby application again.<br />
<br />
Thanks to the new error reporting feature in the Android Market, I got the chance to fix 3 bugs. Although the error console doesn't give as much information I would like to have about the devices on which the error occurred it is still a very welcomed feature. Thanks Google!<br />
<br />
Besides bug fixes, I decided to reenable the landscape mode for the currencies lists and converter. This should be a good thing especially for the users that are interested in acquiring a device like <a href="http://www.gsmarena.com/acer_betouch_e130-3373.php">Acer beTouch E130</a>.<br />
<br />
Under the hood now the application makes use now of compression for loading the rates from the server to minimize the time the radio is used. This is a hint I learned from the Google IO Android sessions that should improve battery life.<br />
<br />
For the next release I'm thinking on adding some translations. Currently only English is supported, but I'm planning to add Romanian and German. I also accept other language suggestions.<br />
<br />
That's all for now.]]></description>
		</item>
		
		<item>
			<title><![CDATA[RON Exchange Rates v3.6]]></title>
			<link>http://www.tughi.com/2010/04/16/ron-exchange-rates-v36</link>
			<pubDate>Fri, 16 Apr 2010 20:59:13 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[nbrfxrates]]></category>
			
			<guid>http://www.tughi.com/2010/04/16/ron-exchange-rates-v36</guid>
			<description><![CDATA[While using the converter I found out that having the favorites on top of the currencies picker improves the usability.<br />
<br />
The widgets got some attention too:
<ul>
  <li>new look</li>
  <li>values for HUF, JPY and KRW are now divided by 100</li>
</ul><br />
<br />
<a href="http://www.tughi.com/exchange-rates"><img src="http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl=market://search?q=pname:com.tughi.nbrfxrates" /></av>]]></description>
		</item>
		
		<item>
			<title><![CDATA[RON Exchange Rates v3.5]]></title>
			<link>http://www.tughi.com/2010/03/31/ron-exchange-rates-v35</link>
			<pubDate>Wed, 31 Mar 2010 23:32:06 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[nbrfxrates]]></category>
			
			<guid>http://www.tughi.com/2010/03/31/ron-exchange-rates-v35</guid>
			<description><![CDATA[This version changes the way the users get notified about application updates.<br />
From now on, if a new version is available, the user will be presented with a notification in the status bar. If this is too noisy, it can be deactivated from within the application preferences.<br />
<br />
The decision was made based on the poor update rate from the last release which fixed a severe bug.<br />
There are two other reasons:
<ul>
  <li>there are many users that use very old versions</li>
  <li>I met some users that don't know how to update the application</li>
</ul>
<p>
<b>The application has now a little over 1000 active users!<br />
Thanks guys!</b>
</p>
]]></description>
		</item>
		
		<item>
			<title><![CDATA[RON Exchange Rates v3.4]]></title>
			<link>http://www.tughi.com/2010/03/30/ron-exchange-rates-v34</link>
			<pubDate>Tue, 30 Mar 2010 23:17:59 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[nbrfxrates]]></category>
			
			<guid>http://www.tughi.com/2010/03/30/ron-exchange-rates-v34</guid>
			<description><![CDATA[This version fixes a very severe bug that made the application use a lot of CPU even if the user didn't use it.<br />
<br />
<br />
For the developers interested in how I found it:<br />
<br />
The <b>Battery use</b> tool from Android 1.6 reported my application as having the <i>CPU total</i> around 13 minutes, which is a huge amount for an application that usually does only one update over a day, and that update is done in under one seconds.<br />
First thing I did was to inspect the <i>logcat</i>. After staring at my process, for a very long while, I noticed that the GC was invoked every 4 minutes and reported collecting 13k objects. That was odd.<br />
Next thing, I fired the <b>DDMS</b> tool and used the <i>Allocation Tracker</i> to collect data for one minute. It turned out the I had a message dispatcher that was not stopped after the activity was paused. Bam!
<br /><br /><br />
Thanks <b>DDMS</b>, you saved important battery life! :-)]]></description>
		</item>
		
		<item>
			<title><![CDATA[RON Exchange Rates v3.3]]></title>
			<link>http://www.tughi.com/2010/03/27/ron-exchange-rates-v33</link>
			<pubDate>Sat, 27 Mar 2010 15:40:08 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[nbrfxrates]]></category>
			
			<guid>http://www.tughi.com/2010/03/27/ron-exchange-rates-v33</guid>
			<description><![CDATA[This version fixes a bug that made the application update the rates two times in case of manual refresh or in case of device reboot.<br />
<br />
Besides the bugfix there's also a small enhancement. The application now listens to connectivity changes only if an update failed because there was no connectivity. This feature was introduced to improve the battery life, since less executed tasks means longer battery life.<br />
<br />
The <a href="market://search?q=pname:com.tughi.nbrfxrates">update</a> is available on the Market.
]]></description>
		</item>
		
		<item>
			<title><![CDATA[RON Exchange Rates v3.2]]></title>
			<link>http://www.tughi.com/2010/03/16/ron-exchange-rates-v32</link>
			<pubDate>Tue, 16 Mar 2010 21:09:53 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[nbrfxrates]]></category>
			
			<guid>http://www.tughi.com/2010/03/16/ron-exchange-rates-v32</guid>
			<description><![CDATA[After I read the comments where the users complained about the missing values in the new history activity, I had no other choice but to add them back.<br />
So this new version is about the history values:
<ul>
	<li>use the touchscreen, the DPAD or the trackball to walk through the history values</li>
        <li>min and max values are now placed at the bottom of the screen</li>
        <li>mean (average) and median values are also visible for the users that need them</li>
</ul>
<br />
<p>
Go and grab it from the Market using this <a href="market://search?q=pname:com.tughi.nbrfxrates">link</a>.<br />
</p>]]></description>
		</item>
		
		<item>
			<title><![CDATA[RON Exchange Rates v3.0]]></title>
			<link>http://www.tughi.com/2010/02/28/ron-exchange-rates-v30</link>
			<pubDate>Sun, 28 Feb 2010 21:15:52 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[nbrfxrates]]></category>
			
			<guid>http://www.tughi.com/2010/02/28/ron-exchange-rates-v30</guid>
			<description><![CDATA[After almost 4 months, a new update is available on the market (<a href="market://search?q=pname:com.tughi.nbrfxrates">install link</a>).<br />
The new version has a brand new user interface with a bunch of new features:
<ul>
	<li>tabbed interface</li>
        <li>detailed currency names</li>
        <li>favorite currencies</li>
	<li>redesigned history activity</li>
        <li>redesigned converter activity</li>
	<li>configurable default actions for lists and widgets</li>
</ul>
<br />
<p>
The product <a href="http://www.tughi.com/exchange-rates">page</a> was updated too.<br />
<br />
This time I asked a friend to help me with the user interface and the website. Without his help these wouldn't have looked this good. Thanks Mr. Designer! ;-)
</p>]]></description>
		</item>
		
		<item>
			<title><![CDATA[HTC Tattoo Skin]]></title>
			<link>http://www.tughi.com/2010/01/23/htc-tattoo-skin</link>
			<pubDate>Sat, 23 Jan 2010 10:46:14 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[android]]></category>
			
			<category><![CDATA[emulator-skin]]></category>
			
			<guid>http://www.tughi.com/2010/01/23/htc-tattoo-skin</guid>
			<description><![CDATA[I use this skin to test my apps with it.<br />
It gives a better view on how the app would look on a device with this screen size.<br />
<br />
Download link: <a href="http://www.tughi.com/files?id=18009">htc-tattoo-skin.zip</a><br />


<img src="http://www.tughi.com/files?id=18006" alt="htc-tattoo-screenshot" title="htc-tattoo-screenshot" class="image" />]]></description>
		</item>
		
		<item>
			<title><![CDATA[Nexus One Skin]]></title>
			<link>http://www.tughi.com/2010/01/19/nexus-one-skin</link>
			<pubDate>Tue, 19 Jan 2010 18:20:51 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[android]]></category>
			
			<category><![CDATA[emulator-skin]]></category>
			
			<guid>http://www.tughi.com/2010/01/19/nexus-one-skin</guid>
			<description><![CDATA[A friend of mine asked for this one.<br />
Feel free to download it: <a href="http://www.tughi.com/files?id=19009">nexus-one-skin.zip</a><br />

<img class="image" title="nexus-one-skin" src="http://www.tughi.com/files?id=19005" alt="nexus-one" />]]></description>
		</item>
		
		<item>
			<title><![CDATA[RON Exchange Rates v2.2]]></title>
			<link>http://www.tughi.com/2009/10/04/ron-exchange-rates-v22</link>
			<pubDate>Sun, 4 Oct 2009 10:58:40 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[nbrfxrates]]></category>
			
			<guid>http://www.tughi.com/2009/10/04/ron-exchange-rates-v22</guid>
			<description><![CDATA[A new update is available on the market (<a href="market://search?q=pname:com.tughi.nbrfxrates">install link</a>).<br />
This version comes with:
<ul>
	<li>support for different screen resolutions (Donut)</li>
	<li>removed error notifications caused by a missing internet connection</li>
	<li>history caching</li>
</ul>]]></description>
		</item>
		
		<item>
			<title><![CDATA[Send SMS using an Intent]]></title>
			<link>http://www.tughi.com/2009/10/03/send-sms-using-an-intent</link>
			<pubDate>Sat, 3 Oct 2009 16:29:54 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[android]]></category>
			
			<guid>http://www.tughi.com/2009/10/03/send-sms-using-an-intent</guid>
			<description><![CDATA[I know this is a common topic but this solution actually worked for me.
<pre lang="java">
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.putExtra("address", "XXXXXXXXXX"); // phone number
    intent.putExtra("sms_body", "..."); // message
    intent.setType("vnd.android-dir/mms-sms");
    startActivity(intent);
</pre>

It's a nice thing when you have access to source code. I'm talking about the Mms.app in this case. ;-)]]></description>
		</item>
		
		<item>
			<title><![CDATA[RON Exchange Rates v2.1]]></title>
			<link>http://www.tughi.com/2009/09/18/ron-exchange-rates-v21</link>
			<pubDate>Fri, 18 Sep 2009 16:25:35 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[nbrfxrates]]></category>
			
			<guid>http://www.tughi.com/2009/09/18/ron-exchange-rates-v21</guid>
			<description><![CDATA[Initially I thought I would be the only user for this application. It turns out that I was wrong. And because of this I just had to improve it.<br />
<br />
Some of the highlights of this new version:<br />
<ul>
	<li>enhanced client-server transport</li>
	<li>first-time-use downloads the currency list faster</li>
	<li>the update is always done in the background</li>
	<li>history activity with progress monitor</li>
	<li>new feature: currency converter based on the current values</li>
</ul>
<br />
<p>If you are interested in the RON currency give it a try: <a href="market://search?q=pname:com.tughi.nbrfxrates">install link</a></p>]]></description>
		</item>
		
		<item>
			<title><![CDATA[RON Exchange Rates]]></title>
			<link>http://www.tughi.com/2009/08/22/ron-exchange-rates</link>
			<pubDate>Sat, 22 Aug 2009 09:04:12 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[nbrfxrates]]></category>
			
			<guid>http://www.tughi.com/2009/08/22/ron-exchange-rates</guid>
			<description><![CDATA[My first free application: <a href="http://www.tughi.com/exchange-rates">RON Exchange Rates</a>]]></description>
		</item>
		
		<item>
			<title><![CDATA[Compact Android Emulator Skin]]></title>
			<link>http://www.tughi.com/2009/06/30/compact-android-emulator-skin</link>
			<pubDate>Tue, 30 Jun 2009 18:51:41 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[android]]></category>
			
			<category><![CDATA[emulator-skin]]></category>
			
			<guid>http://www.tughi.com/2009/06/30/compact-android-emulator-skin</guid>
			<description><![CDATA[Since I don't have two displays I find it hard to monitor the logs or debug the application while using the emulator. The reason for this is that the emulator skins require too much display space. I created an emulator skin that is just a little taller than the HVGA resolution.

If you have the same problem you can use this skin too: <a href="http://www.tughi.com/files?id=1010">download</a>

<img src="http://www.tughi.com/files?id=1008" />

<img src="http://www.tughi.com/files?id=1009" />]]></description>
		</item>
		
		<item>
			<title><![CDATA[Samsung i7500 Skin]]></title>
			<link>http://www.tughi.com/2009/04/27/samsung-i7500-skin</link>
			<pubDate>Mon, 27 Apr 2009 19:43:18 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[android]]></category>
			
			<category><![CDATA[emulator-skin]]></category>
			
			<guid>http://www.tughi.com/2009/04/27/samsung-i7500-skin</guid>
			<description><![CDATA[Now I'm not sure for which phone should I wait! :D
Feel free to download the skin: <a href="http://www.tughi.com/files?id=2005">download</a>

<img src="http://www.tughi.com/files?id=1007" />]]></description>
		</item>
		
		<item>
			<title><![CDATA[The Friends List]]></title>
			<link>http://www.tughi.com/2009/03/21/the-friends-list</link>
			<pubDate>Sat, 21 Mar 2009 12:02:49 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[android]]></category>
			
			<guid>http://www.tughi.com/2009/03/21/the-friends-list</guid>
			<description><![CDATA[Sometimes you need to manage a list of friends inside your <a href="http://www.android.com">Android</a> application. In my case the friends list is a list of contacts entries.

Using a contacts entry as a friend is a good idea for your application because:
<ul>
	<li>the user has to use a well known activity (the <em>Edit Contact</em> activity) to edit the friend's contact details</li>
	<li>you don't have to write the code for that part :)</li>
</ul>

I use a table called <em>friends</em> that is kept in-sync with <em>content://contacts/people</em> so that it always contains an entry for each contact.
<pre lang="JAVA">
public final class FriendsColumns implements BaseColumns {
  public static final String PERSON_ID = "person";
  public static final String IS_FRIEND = "is_friend";

  // cached details from contacts
  public static final String DISPLAY_NAME = "display_name";

  // additional application-related columns
}
</pre>
The column <em>is_friend</em> is a boolean column that marks the contact as a friend.
The column <em>display_name</em> is filled with the contact's display name while synchronizing the table. It's purpose is only to remove the need for additional queries while rendering the list activity.

For synchronization I created service that runs in a background thread and makes use of the <a href="http://developer.android.com/reference/android/database/CursorJoiner.html">CursorJoiner</a> class.
<pre lang="JAVA">
  Cursor peopleCursor = contentResolver.query(Contacts.People.CONTENT_URI,
      new String[] {Contacts.People._ID, Contacts.People.DISPLAY_NAME},
      null,
      null,
      Contacts.People._ID);
  Cursor friendsCursor = contentResolver.query(Friends.CONTENT_URI,
      new String[] {Friends._ID, Friends.PERSON_ID, Friends.DISPLAY_NAME},
      null,
      null,
      Friends.PERSON_ID);

  CursorJoiner joiner = new CursorJoiner(peopleCursor,
      new String[] {Contacts.People._ID},
      friendsCursor,
      new String[] {Friends.PERSON_ID});
  Uri friendUri;
  for (CursorJoiner.Result result : joiner) {
    switch (result) {
    case LEFT:
      ContentValues insertValues = new ContentValues();
      insertValues.put(Friends.PERSON_ID, peopleCursor.getLong(0));
      insertValues.put(Friends.IS_FRIEND, 0); // false
      insertValues.put(Friends.DISPLAY_NAME, peopleCursor.getString(1));
      contentResolver.insert(Friends.CONTENT_URI, insertValues);
      break;
    case RIGHT:
      friendUri = ContentUris.withAppendedId(Friends.CONTENT_URI,
          friendsCursor.getLong(0));
      contentResolver.delete(friendUri, null, null);
      break;
    case BOTH:
      ContentValues updateValues = new ContentValues();
      updateValues.put(Friends.DISPLAY_NAME, peopleCursor.getString(1));
      friendUri = ContentUris.withAppendedId(Friends.CONTENT_URI,
          friendsCursor.getLong(0));
      contentResolver.update(friendUri, updateValues, null, null);
      break;
    }
  }
            
  friendsCursor.close();
  peopleCursor.close();
</pre>

The synchronization service is started when the friends list activity is created and when the contents of <em>content://contacts/people</em> changed.
<pre lang="JAVA">
public void onCreate(Bundle savedInstanceState) {
  // ...

  synchronizeFriendsWithContacts();
  ContentObserver contentObserver = new ContentObserver(null) {
    @Override
    public void onChange(boolean selfChange) {
      synchronizeFriendsWithContacts();
    }
  }
  getContentResolver().registerContentObserver(Contacts.People.CONTENT_URI,
      true,
      contentObserver);

  // ...
}

private void synchronizeFriendsWithContacts() {
  startService(new Intent(this, FriendsSynchronizer.class));
}
</pre>

By using this approach I achieved:
<ul>
	<li>great performance in rendering the list activity, because of the local copies from contacts</li>
	<li>when adding a new friend to the list I already have a list of remaining contacts, by using <em>is_friend</em> as false</li>
	<li>removing a friend from the list is done by just setting <em>is_friend</em> to false</li>
	<li>when the user removes a contact the friends list is automaticaly cleaned too</li>
	<li>I don't need to write a new activity that edits the friend's contact details :)</li>
</ul>

]]></description>
		</item>
		
		<item>
			<title><![CDATA[Black Magic Skin]]></title>
			<link>http://www.tughi.com/2009/03/09/black-magic-skin</link>
			<pubDate>Mon, 9 Mar 2009 18:58:13 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[android]]></category>
			
			<category><![CDATA[emulator-skin]]></category>
			
			<guid>http://www.tughi.com/2009/03/09/black-magic-skin</guid>
			<description><![CDATA[After some <a href="http://www.gimp.org">Gimp</a>-ing I managed to make also a black skin. You can <a href="http://www.tughi.com/files?id=2004">download</a> this one too.

Mandatory screenshot:

<img src="http://www.tughi.com/files?id=1006" />]]></description>
		</item>
		
		<item>
			<title><![CDATA[HTC Magic Skin]]></title>
			<link>http://www.tughi.com/2009/03/06/htc-magic-skin</link>
			<pubDate>Fri, 6 Mar 2009 08:37:36 +0000</pubDate>
			<dc:creator>Tughi</dc:creator>
			
			<category><![CDATA[android]]></category>
			
			<category><![CDATA[emulator-skin]]></category>
			
			<guid>http://www.tughi.com/2009/03/06/htc-magic-skin</guid>
			<description><![CDATA[This will be my next phone... Because I like it so much, I created this android skin to feel much better while developing on the emulator.<br />
<br />
This skin is available for <a href="http://www.tughi.com/files?id=2003">download</a>.<br />
<br />
What other better way to demonstrate the skin than using some screenshots?<br />
<br />
Emulator screenshot:<br />
<br />
<img src="http://www.tughi.com/files?id=2002" /><br />
<br />
Phone buttons:<br />
<br />
<img src="http://www.tughi.com/files?id=2001" /><br />]]></description>
		</item>
		

	</channel>
</rss>
