<?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>Web Niraj</title>
	<atom:link href="http://www.webniraj.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webniraj.com</link>
	<description>Senior PHP &#38; Facebook App Developer</description>
	<lastBuildDate>Thu, 17 May 2012 08:20:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>WordPress Loop – Include / Exclude Tags Globally</title>
		<link>http://www.webniraj.com/2012/05/16/wordpress-loop-include-exclude-tags-globally/</link>
		<comments>http://www.webniraj.com/2012/05/16/wordpress-loop-include-exclude-tags-globally/#comments</comments>
		<pubDate>Wed, 16 May 2012 15:33:34 +0000</pubDate>
		<dc:creator>Niraj Shah</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.webniraj.com/?p=401</guid>
		<description><![CDATA[Show or Hide posts on your Blog using Tags (or Categories) using this Plugin. But be warned, it even affects the Admin Areas.]]></description>
			<content:encoded><![CDATA[<p>After my post about filtering certain posts by tags, I wondered how you could hide / show posts globally across WordPress. For example, I wanted to show all the posts tagged as &#8216;PlayStation Vita&#8217; on my XTREME PSVita website. Why? The XTREME PSVita website uses the same database as XTREME PSP, but I didn&#8217;t want the posts to appear in both areas at once.</p>
<p><span id="more-401"></span></p>
<p>I created a simple plugin that only showed tagged posts on one website, and not the other. This plugin works on a global level, so even posts in the WordPress Admin area are filtered, and it will continue to work if you change or update your theme too.</p>
<h2>Solution</h2>
<pre>// function to filter tags
function filter_xtreme_tags( $query ) {

    // determine which website we are on
    if ( isset( $_SERVER['HTTP_HOST'] ) &amp;&amp; strstr( $_SERVER['HTTP_HOST'], 'xtremepsvita.com' ) ) {
        // are we looking at a post? this bit is important
	if ( $query-&gt;is_post ) {
             // only show posts tagged as 'PlayStation Vita'
             $query-&gt;set( 'tag__in', array(163) );
        }
    } else {
        // we are on xtremepsp.com
        // don't show posts tagged as 'not-xtremepsp'
        $query-&gt;set( 'tag__not_in', array(200) );
    }
}

// add the filter to wordpress
add_action( 'pre_get_posts', 'filter_xtreme_tags' );</pre>
<h2>Modification</h2>
<p>The <code>tag__in</code> an <code>tag__not_in</code> parameters only accept arrays, so you can easily include or exclude multiple tags from your blog.</p>
<p>If you want to filter by categories instead, replace the $query-set part of the code to something like:</p>
<pre>// only show posts from cat 3
$query-&gt;set( 'cat', '3' );

// hide posts from cat 3
$query-&gt;set( 'cat', '-5' );</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.webniraj.com/2012/05/16/wordpress-loop-include-exclude-tags-globally/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Forcing Your Facebook App To Run In An iFrame</title>
		<link>http://www.webniraj.com/2012/05/09/forcing-your-facebook-app-to-run-in-an-iframe/</link>
		<comments>http://www.webniraj.com/2012/05/09/forcing-your-facebook-app-to-run-in-an-iframe/#comments</comments>
		<pubDate>Wed, 09 May 2012 15:02:51 +0000</pubDate>
		<dc:creator>Niraj Shah</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.webniraj.com/?p=345</guid>
		<description><![CDATA[If you want to force your user to use your application within in an iFrame (either as a canvas app or as a fan page application), the only way to do so is using JavaScript. Here is some sample code you can use.]]></description>
			<content:encoded><![CDATA[<p>If you want to force your user to use your application within in an iFrame (either as a canvas app or as a fan page application), the only way to do so is using JavaScript. We can use JavaScript to see if the app is being run inside of a frame, and if it&#8217;s not, we can redirect the user to the framed version of the page.</p>
<p><span id="more-345"></span></p>
<p>Sample Code:</p>
<pre>if ( top === self ) {
     window.top.location = '&lt;?php echo $fb_url; ?&gt;';
}</pre>
<p>The <code>$fb_url</code> variable should point the user to your Canvas App or Fan Page App URL (i.e., the iFramed version of the page). You can check this further by detecting the <code>$_POST</code> data Facebook adds to the page on first load, but this information is lost if you redirect the user to another page in the iFrame.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webniraj.com/2012/05/09/forcing-your-facebook-app-to-run-in-an-iframe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Requesting Every Facebook App Permission</title>
		<link>http://www.webniraj.com/2012/05/02/requesting-every-facebook-app-permission/</link>
		<comments>http://www.webniraj.com/2012/05/02/requesting-every-facebook-app-permission/#comments</comments>
		<pubDate>Wed, 02 May 2012 13:50:42 +0000</pubDate>
		<dc:creator>Niraj Shah</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[Facebook]]></category>

		<guid isPermaLink="false">http://www.webniraj.com/?p=332</guid>
		<description><![CDATA[Ever wondered what a Facebook App requesting every possible permission would look like?]]></description>
			<content:encoded><![CDATA[<p>Ever wondered what a Facebook App requesting every possible permission would look like? I created an app to see exactly that (screenshot below). Naturally, if a real application is requesting all this data, you have to wonder what they are using it all for&#8230; be cautious when allowing Facebook Apps to access your profile data.</p>
<p><span id="more-332"></span></p>
<p><a class="thickbox" title="Facebook-Permissions" href="http://www.webniraj.com/wp-content/uploads/2012/05/Facebook-Permissions.png" rel="themeblvd_lightbox"><img class="aligncenter size-full wp-image-333" title="Facebook-Permissions" src="http://www.webniraj.com/wp-content/uploads/2012/05/Facebook-Permissions.png" alt="" width="600" /></a></p>
<p>After accepting the initial list of permissions, you are prompted to accept the &#8220;Additional Permission&#8221;.</p>
<p><a class="thickbox" title="Facebook-Permissions-2" href="http://www.webniraj.com/wp-content/uploads/2012/05/Facebook-Permissions-2.png" rel="themeblvd_lightbox"><img class="aligncenter size-full wp-image-342" title="Facebook-Permissions-2" src="http://www.webniraj.com/wp-content/uploads/2012/05/Facebook-Permissions-2.png" alt="" width="600" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webniraj.com/2012/05/02/requesting-every-facebook-app-permission/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FT Editorial App</title>
		<link>http://www.webniraj.com/2012/04/10/ft-editorial-app/</link>
		<comments>http://www.webniraj.com/2012/04/10/ft-editorial-app/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 11:08:39 +0000</pubDate>
		<dc:creator>Niraj Shah</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://www.webniraj.com/?p=322</guid>
		<description><![CDATA[I created a second Facebook app for the Financial Times that scrapes a number of RSS feeds to bring in editorial content into Facebook. The app uses XML for flat-file storage and caching to speed up loading.]]></description>
			<content:encoded><![CDATA[<p>For the Financial Times, I developed a Editorial application for user&#8217;s who visit the <a href="http://www.facebook.com/financialtimes" target="_blank">FT Facebook Fan Page</a>. The application reads in content from the Financial Times website using RSS feeds and then displays the content to Facebook users who visit the app on the fan page. Content was scraped from 9 &#8216;News&#8217; RSS feeds and one Video feed (YouTube).</p>
<p>The application also has a simple CMS which administrators can be used to update the RSS feed URLs that were scraped, so content could easily be swapped out.</p>
<p>The application was developed using PHP, but a flat file storage system was used to store the URLs of the RSS feeds that the app would scrape. The CMS system linked to a XML file which contained the URL for each RSS feed. A scheduled task (cron job) on the server would periodically scrape the RSS feeds (every 30 minutes) and parse the stories in each feed.</p>
<p>The stories for each RSS feed would them we used to create a HTML page with a snippet of each story along with images. The HTML for the page would then be cached so that the app would load up instantly for users.</p>
<p style="text-align: center;"><a class="thickbox" title="FT-Editorial-Full" href="http://www.webniraj.com/wp-content/uploads/2012/04/FT-Editorial-Full.jpg" rel="same-post-322"><img class="aligncenter  wp-image-325" title="FT-Editorial-Full" src="http://www.webniraj.com/wp-content/uploads/2012/04/FT-Editorial-Full.jpg" alt="" width="550" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webniraj.com/2012/04/10/ft-editorial-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tagging in SVN</title>
		<link>http://www.webniraj.com/2012/04/10/tagging-in-svn/</link>
		<comments>http://www.webniraj.com/2012/04/10/tagging-in-svn/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 10:41:10 +0000</pubDate>
		<dc:creator>Niraj Shah</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.webniraj.com/?p=315</guid>
		<description><![CDATA[Tagging app releases in SVN to preserve the code and history.]]></description>
			<content:encoded><![CDATA[<p>Tagging code in SVN is a good way to easily create a backup of code, while keeping the SVN history intact. I use this approach often when updating a app to a major new version (e.g. updating an app from v1.0 to v2.0).</p>
<p><span id="more-315"></span></p>
<p>After each version of the app is completed, a tag of that version is created using the command:</p>
<p><code>svn cp http://svn.yourdomain.com/repo/trunk/project http://svn.yourdomain.com/repo/tags/project/v1.0 -m 'Tag of v1.0'</code></p>
<p>The <code>-m</code> flag lets you define a message for the commit.</p>
<p>If I even need to load up a previous version of an add, I can just checkout the tagged version from SVN, rather than rolling back the trunk version.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webniraj.com/2012/04/10/tagging-in-svn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Substring &#8211; Respecting the Last Word</title>
		<link>http://www.webniraj.com/2012/02/28/php-substring-respecting-the-last-word/</link>
		<comments>http://www.webniraj.com/2012/02/28/php-substring-respecting-the-last-word/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 17:13:49 +0000</pubDate>
		<dc:creator>Niraj Shah</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.webniraj.com/?p=313</guid>
		<description><![CDATA[This handy function reduces a string to a given length, but doesn't cut-off the last word if it appears in between the limit. The function would truncate the string to the end of the previous word instead...]]></description>
			<content:encoded><![CDATA[<p>Sometimes, you want to truncate a string to a given length, but keep the last word of the string intact. For example, reducing the string &#8220;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt&#8221; to 35 characters, but we don&#8217;t want any word to be cut-off.</p>
<p><span id="more-313"></span></p>
<p>The following function does exactly that&#8230;</p>
<pre>function substr_word( $string, $len = 35 ) {
    return substr( ( $str = wordwrap( $string, $len, '$$' ) ), 0, strpos( $str, '$$' ) );
}</pre>
<p>This function would reduce the above string to &#8220;Lorem ipsum dolor sit amet,&#8221;. The word &#8220;consectetur&#8221; falls in the cut off point, but instead of cutting off the word, the string is reduced to the end of the previous word.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webniraj.com/2012/02/28/php-substring-respecting-the-last-word/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Loop &#8211; Include / Exclude Tags from Template Files</title>
		<link>http://www.webniraj.com/2012/01/31/wordpress-loop-include-exclude-tags-from-template-files/</link>
		<comments>http://www.webniraj.com/2012/01/31/wordpress-loop-include-exclude-tags-from-template-files/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 13:11:03 +0000</pubDate>
		<dc:creator>Niraj Shah</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.webniraj.com/?p=307</guid>
		<description><![CDATA[If you want to filter certain posts by tags in your WordPress theme, here is a simple way to do so before executing the WordPress loop.]]></description>
			<content:encoded><![CDATA[<p>If you want to filter certain posts by tags in your WordPress theme, here is a simple way to do so before executing the WordPress loop. This method lets you exclude posts that contain certain tags, or you can easily change the code to include post with certain tags instead.</p>
<h2>Solution</h2>
<pre>//	Modify the query
$query_string['tag__not_in'] = array(1,4,5);
query_posts( $query_string );

//	WordPress Loop
if (have_posts()) :
	while (have_posts()) : the_post(); update_post_caches($posts);
		//	Display posts here
	endwhile;
else :
	//	No posts found
endif;</pre>
<h2>Modification</h2>
<p>If you want to include certain tag IDs, you only need to change one line of the code.</p>
<p><strong>Change</strong>:</p>
<pre>$query_string['tag__not_in'] = array(1,4,5);</pre>
<p><strong>To</strong>:</p>
<pre>$query_string['tag__in'] = array(1,4,5);</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.webniraj.com/2012/01/31/wordpress-loop-include-exclude-tags-from-template-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modify WordPress Archive to Display Only Certain Tags (wp_get_archives)</title>
		<link>http://www.webniraj.com/2012/01/31/modify-wordpress-archive-to-display-only-certain-tags/</link>
		<comments>http://www.webniraj.com/2012/01/31/modify-wordpress-archive-to-display-only-certain-tags/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 12:52:57 +0000</pubDate>
		<dc:creator>Niraj Shah</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.webniraj.com/?p=293</guid>
		<description><![CDATA[I recently ran into a problem where I wanted to display only posts tagged with a specific name in the WordPress Archive page (part of my theme). However, searching on Google only showed how to filter posts by Category. Here is the solution I came up with...]]></description>
			<content:encoded><![CDATA[<p>I recently ran into a problem where I wanted to display only posts tagged with a specific name in the WordPress Archive page (part of my theme). However, searching on Google only showed how to filter posts by Category. I did some research and found a solution to my problem.<br />
<span id="more-293"></span></p>
<h2>Solution</h2>
<p>To help others with a similar problem, I modified the examples I found to filter the Archive by tags. The solution I devised was:</p>
<div style="width: 600px; overflow: scroll;">
<pre>function customarchives_where( $x ) {
	global $wpdb;

	$include = '163'; // tag id to include
	return $x." AND $wpdb-&gt;term_taxonomy.taxonomy = 'post_tag'
		AND $wpdb-&gt;term_taxonomy.term_id IN ($include)";
}

function customarchives_join( $x ) {
	global $wpdb;

	return $x . " INNER JOIN $wpdb-&gt;term_relationships
		ON ($wpdb-&gt;posts.ID = $wpdb-&gt;term_relationships.object_id)
	INNER JOIN $wpdb-&gt;term_taxonomy
		ON ($wpdb-&gt;term_relationships.term_taxonomy_id = $wpdb-&gt;term_taxonomy.term_taxonomy_id)";
}

add_filter('getarchives_where','customarchives_where');
add_filter( 'getarchives_join', 'customarchives_join' );</pre>
</div>
<p>The above code should be placed in the <strong><code>functions.php</code></strong> file in your theme. The <strong><code> customarchives_where</code></strong> function includes a comma-separated list of Tag IDs that you want to include in your archive.</p>
<p>When your theme calls the <strong><code>wp_get_archives()</code></strong> function, the above filters are called and the Archive Query is modified to include only the tags you want.</p>
<h2>Modification</h2>
<p>The above example can easily be modified to exclude tags (instead of include). Change the<strong><code> getarchives_where()</code></strong> function to:</p>
<pre>function customarchives_where( $x ) {
	global $wpdb;

	$exclude = '163'; // tag id to include
	return $x." AND $wpdb-&gt;term_taxonomy.taxonomy = 'post_tag'
		AND $wpdb-&gt;term_taxonomy.term_id NOT IN ($exclude)";
}</pre>
<p>Similarly, you can easily include (or exclude) a category by changing the <strong><code>getarchives_where()</code></strong> function to:</p>
<pre>function customarchives_where( $x ) {
	global $wpdb;

	$include = '163'; // tag id to include
	return $x." AND $wpdb-&gt;term_taxonomy.taxonomy = 'category'
		AND $wpdb-&gt;term_taxonomy.term_id IN ($include)";
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.webniraj.com/2012/01/31/modify-wordpress-archive-to-display-only-certain-tags/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Samsung Galaxy Nexus and Android 4.0</title>
		<link>http://www.webniraj.com/2011/12/01/samsung-galaxy-nexus-and-android-4-0/</link>
		<comments>http://www.webniraj.com/2011/12/01/samsung-galaxy-nexus-and-android-4-0/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 14:01:46 +0000</pubDate>
		<dc:creator>Niraj Shah</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Google Galaxy Nexus]]></category>

		<guid isPermaLink="false">http://www.webniraj.com/?p=280</guid>
		<description><![CDATA[My first week with Android 4.0 and the Samsung / Google Galaxy Nexus]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been just over a week since I got my first Android 4.0 phone &#8211; the Samsung / Google Galaxy Nexus (SGN) &#8211; and I&#8217;m loving it! The SGN was my replacement for the Google Nexus One (GNO), which I&#8217;ve had since it was first released back in 2009. The improvement in the OS have been huge &#8211; my GNO was running Android 2.3.6 and some of the new features and changes in the UI have been a big plus on the SGN.</p>
<p><span id="more-280"></span></p>
<p>So far, <strong>my top 10 points</strong> about the phone and Android 4.0 are (in no particular order):</p>
<ul>
<li><strong>Updated UI</strong> &#8211; its a big change from Android 2.3.x but looks very similar to Android 3.2 running on my Sony S Tablet.</li>
<li><strong>Data Usage Monitor</strong> &#8211; I can monitor my monthly data usage on 3G and Wifi, and set soft and hard limits when using 3G data so I don&#8217;t incur any surprise charges.</li>
<li><strong>5MP Camera</strong> &#8211; Although the camera is pretty standard, Android 4.0 adds a Panoramic shooting mode and dynamically stitches photos together. I can also shoot HD video at 1080p and use continuous focus to make sure I don&#8217;t miss anything. The Zero shutter lag is also great for taking lots of photos quickly!</li>
<li><strong>Face Unlock</strong> - It&#8217;s pretty cool that I can unlock the phone using my face, but it doesn&#8217;t work all the time. Luckily, there is a backup passcode option you can use in such conditions.</li>
<li><strong>NFC</strong> &#8211; Some of the pre-installed Apps support NFC, so I can beam across bookmarks, contacts and apps across to other NFC-enabled Android devices.</li>
<li><strong>Google Sync</strong> &#8211; All my apps, contacts and data are backed up to Google. When I first logged into the phone using my account, all my contacts and apps were downloaded automatically, making the migration over to the new device seamless.</li>
<li><strong>Screenshots</strong> &#8211; I can finally take screenshots on the device itself (as opposed to using the Android SDK). All the screenshots were taken on the device itself.</li>
<li><strong>Notifications</strong> &#8211; The updated notifications menu makes it easy to manage app notifications. I can easily swipe a message to remove it, or clear all at once.</li>
<li><strong>Keyboard</strong> &#8211; Google has updated the on-screen keyboard to be more responsive, better at auto-correcting and a lot easier to use. The screen size also helps in this area. In a nutshell &#8211; typing on the phone is a piece of cake!</li>
<li><strong>Screen / Display</strong> &#8211; The 4.65&#8243; HD (1280 x 720) Super AMOLED screen is amazing. Everything on the phone looks amazing, crisp and clear; though it&#8217;s quite a drain on the battery.</li>
</ul>

<a href='http://www.webniraj.com/2011/12/01/samsung-galaxy-nexus-and-android-4-0/android-4-0-browser/' title='Android-4.0-Browser'><img width="150" height="150" src="http://www.webniraj.com/wp-content/uploads/2011/12/Android-4.0-Browser-150x150.png" class="attachment-thumbnail" alt="Android-4.0-Browser" title="Android-4.0-Browser" /></a>
<a href='http://www.webniraj.com/2011/12/01/samsung-galaxy-nexus-and-android-4-0/android-4-0-facebook-crash/' title='Android-4.0-Facebook-Crash'><img width="150" height="150" src="http://www.webniraj.com/wp-content/uploads/2011/12/Android-4.0-Facebook-Crash-150x150.png" class="attachment-thumbnail" alt="Android-4.0-Facebook-Crash" title="Android-4.0-Facebook-Crash" /></a>
<a href='http://www.webniraj.com/2011/12/01/samsung-galaxy-nexus-and-android-4-0/android-4-0-home/' title='Android-4.0-Home'><img width="150" height="150" src="http://www.webniraj.com/wp-content/uploads/2011/12/Android-4.0-Home-150x150.png" class="attachment-thumbnail" alt="Android-4.0-Home" title="Android-4.0-Home" /></a>
<a href='http://www.webniraj.com/2011/12/01/samsung-galaxy-nexus-and-android-4-0/android-4-0-nfc/' title='Android-4.0-NFC'><img width="150" height="150" src="http://www.webniraj.com/wp-content/uploads/2011/12/Android-4.0-NFC-150x150.png" class="attachment-thumbnail" alt="Android-4.0-NFC" title="Android-4.0-NFC" /></a>
<a href='http://www.webniraj.com/2011/12/01/samsung-galaxy-nexus-and-android-4-0/android-4-0-notifications/' title='Android-4.0-Notifications'><img width="150" height="150" src="http://www.webniraj.com/wp-content/uploads/2011/12/Android-4.0-Notifications-150x150.png" class="attachment-thumbnail" alt="Android-4.0-Notifications" title="Android-4.0-Notifications" /></a>
<a href='http://www.webniraj.com/2011/12/01/samsung-galaxy-nexus-and-android-4-0/android-4-0-mobile-data-usage/' title='Android-4.0-Mobile-Data-Usage'><img width="150" height="150" src="http://www.webniraj.com/wp-content/uploads/2011/12/Android-4.0-Mobile-Data-Usage-150x150.png" class="attachment-thumbnail" alt="Android-4.0-Mobile-Data-Usage" title="Android-4.0-Mobile-Data-Usage" /></a>

<p><strong>Some of the bad points</strong>:</p>
<ul>
<li><strong>App Support</strong> &#8211; Not all apps work on the new OS. Facebook is one app that works most of the time, but is prone to crashing. Other apps work completely fine, like FourSquare, Google+, SMS Backup &amp; Restore and Skype to name a few.</li>
<li><strong>Battery</strong> &#8211; As always, the battery isn&#8217;t that great. If I use the phone often, I can just about make it last for an entire day (16-20 hours). With heavy use, I&#8217;ve had to recharge after 8-10 hours.</li>
<li><strong>Memory Card</strong> &#8211; or lack of! It would have been great if the phone has a MicroSD Card slot to expand the onboard memory. 16GB these days just isn&#8217;t enough.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.webniraj.com/2011/12/01/samsung-galaxy-nexus-and-android-4-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LOVEFiLM Android Application</title>
		<link>http://www.webniraj.com/2011/11/24/lovefilm-android-application/</link>
		<comments>http://www.webniraj.com/2011/11/24/lovefilm-android-application/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 12:54:41 +0000</pubDate>
		<dc:creator>Niraj Shah</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.webniraj.com/?p=272</guid>
		<description><![CDATA[The LOVEFiLM Android Application was my first project as Development Manager, responsible for a team of four.]]></description>
			<content:encoded><![CDATA[<p><a class="thickbox" title="LF-Icon" href="http://www.webniraj.com/wp-content/uploads/2011/12/LF-Icon.jpg" rel="same-post-272"><img class="alignright size-full wp-image-274" title="LF-Icon" src="http://www.webniraj.com/wp-content/uploads/2011/12/LF-Icon.jpg" alt="" width="100" height="100" /></a>Having worked on the original LOVEFiLM iPhone and iPad applications, this was the first project where I was Development Manager. For this project, I lead a team of four people &#8211; three developers and a test analyst &#8211; to create LOVEFiLM&#8217;s first Android application. My experience with the LOVEFiLM API over the past few years (since October 2009) gave me the best position to advise the team and problem solve any API issues.</p>
<p>In the initial phase of this project, I helped in drafting up the wireframes and documenting a new version of the LOVEFiLM API we would use for this project for the developers to use. The behaviour of the application was very similar to the iOS applications so only Android specific changes were needed. Since I was one of the few Android users in the office, I had a good idea of some of the best practices and common UI elements used in Android apps &#8211; this information was used to create the wireframes for the application.</p>
<p>Later on in the development process, I assisted the team in finding solutions to problems involving the API and communication bugs back to the client. I was also responsible for compiling new versions of the application for Client User Acceptance Testing (UAT). Once the application was complete, I also deployed the application to the Android Market.</p>
<p>I encountered a few difficulties along the course of this project, one of which was the API. The application used a undocumented version of the API, for which I did the initial documentation for the project. Through development, we encountered a number of bugs and discrepancies between the undocumented, newer API compared to the older, documented API used for the iOS Apps.</p>
<p>Another issue was the fragmentation of Android and the different hardware devices and configurations the application needed to support. From the start, the app was designed to support 80-90% of the available devices but during client UAT and after releasing the final version, we found devices that weren&#8217;t fully supported. Fixes were made to the application as and when issues were discovered. The release of Android 4.0 &#8211; Ice Cream Sandwich (ICS) posed the biggest risk, as the app was released a couple of weeks ahead and wasn&#8217;t tested on this version.</p>
<p><a title="LOVEFiLM Android App" href="https://market.android.com/details?id=com.lovefilm.android" target="_blank">Download the Android App</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webniraj.com/2011/11/24/lovefilm-android-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

