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

<channel>
	<title>Xoriant Software Product Engineering Blog &#187; Android</title>
	<atom:link href="http://www.xoriant.com/blog/tag/android/feed" rel="self" type="application/rss+xml" />
	<link>http://www.xoriant.com/blog</link>
	<description>Product Engineering Outsourcing, Tech Talk</description>
	<lastBuildDate>Tue, 01 Nov 2011 09:02:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Application Manifest XML in Android system</title>
		<link>http://www.xoriant.com/blog/mobile-application-development/application-manifest-xml-in-android-system.html</link>
		<comments>http://www.xoriant.com/blog/mobile-application-development/application-manifest-xml-in-android-system.html#comments</comments>
		<pubDate>Mon, 30 May 2011 08:04:50 +0000</pubDate>
		<dc:creator>Fahim Shaikh</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile Application Development]]></category>
		<category><![CDATA[android application development]]></category>
		<category><![CDATA[android application manifest]]></category>
		<category><![CDATA[android apps]]></category>
		<category><![CDATA[ApplicationManifest.xml]]></category>
		<category><![CDATA[appplication manifest]]></category>
		<category><![CDATA[manifest.xml]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.xoriant.com/blog/?p=1332</guid>
		<description><![CDATA[In this blog post we would try and understand the basics of Application Manifest in the Android system. The simplest of any Android application has  the following components: Resources classified in the resource folder (res). Some auto generated code like R.java. ApplicationManifest.xml file. This blog post will deal with the third component &#8211; Application manifest [...]


Related posts:<ol><li><a href='http://www.xoriant.com/blog/mobile-application-development/android-application-class.html' rel='bookmark' title='Permanent Link: Android Application Class'>Android Application Class</a> <small>A commonly used class in any application, whether it is a desktop application or a mobile application is an application level class. An application level class also called a controller...</small></li>
<li><a href='http://www.xoriant.com/blog/mobile-application-development/android-application-development-ui-layouts.html' rel='bookmark' title='Permanent Link: Android Application Development : UI Layouts'>Android Application Development : UI Layouts</a> <small>Providing a good user experience is critical to mobile applications. UI Application development in Android requires that you have a good understanding of Layouts. In this blog post, we shall...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>In this blog post we would try and understand the basics of Application Manifest in the Android system.</p>
<p>The simplest of any Android application has  the following components:</p>
<ol>
<li>Resources classified in the resource folder (res).</li>
<li>Some auto generated code like R.java.</li>
<li>ApplicationManifest.xml file.</li>
</ol>
<p>This blog post will deal with the third component &#8211; Application manifest file.</p>
<p><a href="http://www.xoriant.com/blog/wp-content/uploads/2011/05/ProjectTree.png"><img class="aligncenter size-medium wp-image-1337" title="ProjectTree" src="http://www.xoriant.com/blog/wp-content/uploads/2011/05/ProjectTree-220x300.png" alt="" width="220" height="300" /></a></p>
<p>Application Manifest is an xml file every Android application contains with the name <em>ApplicationMainifest.xml</em> in the root directory of the application.</p>
<p>-          The file is generated automatically on finish of wizard for android project creation.<br />
-          File gives all the information pertaining to the successful execution of all the functionalities present in the application to the android system.<br />
-          It is like a blue print of the application components or what you can call a make file in C++ projects like Qt, Objective C in IPhone.</p>
<h4>Sample example:</h4>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
	package=&quot;com.android.sampleApp&quot; android:versionCode=&quot;1&quot;
	android:versionName=&quot;1.0&quot;&gt; - (1)
	&lt;application android:icon=&quot;@drawable/icon&quot; android:label=&quot;@string/app_name&quot;
		android:permission=&quot;android.permission.BLUETOOTH&quot;&gt; - (2)
		&lt;activity android:name=&quot;.SampleActivity&quot; android:label=&quot;@string/app_name&quot;&gt;
			&lt;intent-filter&gt;
				&lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;
				&lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&gt;
			&lt;/intent-filter&gt;
		&lt;/activity&gt; - (3)
	&lt;/application&gt;
	&lt;uses-sdk android:minSdkVersion=&quot;9&quot; /&gt; - (4)
	&lt;permission android:name=&quot;com.android.myPermission&quot;
		android:icon=&quot;@drawable/icon&quot;
		android:label=&quot;My Permission&quot;
		android:protectionLevel=&quot;dangerous&quot;
		android:permissionGroup=&quot;com.android.SamplePermission&quot;
		android:description=&quot;@string/some_description&quot;&gt;&lt;/permission&gt;
&lt;/manifest&gt;
</pre>
<h4><strong>Versioning:</strong></h4>
<p>Refer line (1) in the code above.</p>
<p>&lt;manifest&gt; tag consists of application versioning information (android:versionCode and android:versionName) helps the android systems to maintain the upgrade/ downgrade of application.</p>
<p>Android system uses versionCode for understanding the upgrade of the application on the device and versionName is used only for the user notification purpose. versionName is displayed for the user to notify that a newer version of the application is available in the market.</p>
<h4><strong>Activity:</strong></h4>
<p>Refer line (3) in the code above.</p>
<p>Android application consists of four types of components:</p>
<ol>
<li>Service – Non-visual component always      running in background to perform long operations.<strong> </strong></li>
<li>Content providers – It’s a data storage      system eg: File storage systems and SQLite. Content providers provide a      standard interface that helps in application doing standard operations on      database system. E.g. address book, messages, emails etc. <strong></strong></li>
<li>Broadcast receivers – status messages /      events / error handling etc. for an example error messages, <strong></strong></li>
<li>Activity – Activity are screens that user      interacts with while using the application, it may be a form collecting      keyboard inputs, clicks etc. It is same as a form is to a web application.</li>
</ol>
<p>Activities need to be register for an application in the Manifest file for Android systems to include them in the run environment. An application may consist of one or more activities; there can be multiple activity tags in the application which may interact with each other.</p>
<p>&lt;intent-filter&gt; &#8211; Intent filters control which actions of android, user driven or application driven is going to launch the application. Activities can contains multiple intent filters. Contains:</p>
<p>-          &lt;action&gt; as MAIN (android:name=&#8221;android.intent.action.MAIN&#8221;) means that this activity is the entry point for the application.  This activity will be the top level screen (Home screen) in the application.</p>
<p>-          The manifest xml above show case how you can place your activity on the android home screen launcher. For that you have to put a &lt;category&gt; with Launcher (android:name=&#8221;android.intent.category.LAUNCHER&#8221;) telling the system that this activity should be top-level LAUNCHER.</p>
<h4><strong>Permission:</strong></h4>
<p>Refer line (2) in the code above.</p>
<p>Android OS model requires applications to highlight what features of OS or resources they are going to use. Take an example of an application that is going to make use of the Bluetooth for transfer of files or need internet access for connection to facebook, twitter etc.</p>
<p>Hence, this tag provides the information related to the access rights to the specific components or features of the application from the very same application or other applications. By default android applications do not have any permission to intervene the device data or components.</p>
<p>This can be provided either in &lt;application&gt; tag or &lt;uses-permission&gt;</p>
<p><em>For example: </em></p>
<ol>
<li><em>Permissions      to access BLUETOOTH of device is: &lt;application android:permission=&#8221;android.permission.BLUETOOTH&#8221;      /&gt;</em></li>
<li><em>To      Receive SMS: &lt;uses-permission      android:name=&#8221;android.permission.RECEIVE_SMS&#8221; /&gt;</em></li>
</ol>
<p>User can define their set of permissions under &lt;permissions&gt; tag.</p>
<h4><strong>SDK Version:</strong></h4>
<p>Refer line (4) in the code above.</p>
<p>Application which makes use of specific features like 3D transitions available in higher version Android SDK say 3.0 will not work on the devices having lower version say 2.3. Hence manifest file provides the information to the system while installation; checking for the availability of SDK version and install accordingly.</p>
<p>&lt;manifest&gt; tag holds &lt;uses-sdk&gt; containing minimum API level  integer (android:minSdkVersion) which helps the Android system to allow/disallow installation of the application depending upon the system’s API level.</p>
<p>Eg: For minSdkVersion = 9 minimum system’s API level is Android 2.3.3 SDK.</p>
<p>For detailed information on Manifest refer:  <a rel="nofollow" href="http://developer.android.com/guide/topics/manifest/manifest-intro.html">Application Manifest</a>
<div class="author_member_gravatar_pic" style="display:block;">
			   <a class="author_member_gravatar" style="display:block;float:left;" href="http://www.xoriant.com/blog/?author=27"><img src="http://www.xoriant.com/blog/wp-content/uploads/userphoto/fahim-shaikh.thumbnail.jpg" alt="Fahim Shaikh" width="64" height="80" class="photo" /><br />
			   <a class="author_member_gravatar" style="padding:5px;font-size:12px;text-decoration:none;font-weight:bold;" href="http://www.xoriant.com/blog/?author=27">Fahim Shaikh</a><span class="author-desc"><strong>&ndash; Software Engineer &#8211;  Mobile CoE</strong></span></div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.xoriant.com/blog/mobile-application-development/application-manifest-xml-in-android-system.html&amp;title=Application+Manifest+XML+in+Android+system&amp;summary=In%20this%20blog%20post%20we%20would%20try%20and%20understand%20the%20basics%20of%20Application%20Manifest%20in%20the%20Android%20system.%0D%0A%0D%0AThe%20simplest%20of%20any%20Android%20application%20has%20%C2%A0the%20following%20components%3A%0D%0A%0D%0A%09Resources%20classified%20in%20the%20resource%20folder%20%28res%29.%0D%0A%09Some%20auto%20generated%20code%20like%20R.java.%0D%0A%09ApplicationManifest.xml%20&amp;source=Xoriant Software Product Engineering Blog" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Application+Manifest+XML+in+Android+system+-+http://bit.ly/j8WOGI&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.xoriant.com/blog/mobile-application-development/application-manifest-xml-in-android-system.html&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.xoriant.com/blog/mobile-application-development/application-manifest-xml-in-android-system.html&amp;title=Application+Manifest+XML+in+Android+system" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.xoriant.com/blog/mobile-application-development/application-manifest-xml-in-android-system.html&amp;title=Application+Manifest+XML+in+Android+system" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-comfeed">
			<a href="http://www.xoriant.com/blog/mobile-application-development/application-manifest-xml-in-android-system.html/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.xoriant.com/blog/mobile-application-development/application-manifest-xml-in-android-system.html&amp;title=Application+Manifest+XML+in+Android+system" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.xoriant.com/blog/mobile-application-development/application-manifest-xml-in-android-system.html&amp;t=Application+Manifest+XML+in+Android+system" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Related posts:<ol><li><a href='http://www.xoriant.com/blog/mobile-application-development/android-application-class.html' rel='bookmark' title='Permanent Link: Android Application Class'>Android Application Class</a> <small>A commonly used class in any application, whether it is a desktop application or a mobile application is an application level class. An application level class also called a controller...</small></li>
<li><a href='http://www.xoriant.com/blog/mobile-application-development/android-application-development-ui-layouts.html' rel='bookmark' title='Permanent Link: Android Application Development : UI Layouts'>Android Application Development : UI Layouts</a> <small>Providing a good user experience is critical to mobile applications. UI Application development in Android requires that you have a good understanding of Layouts. In this blog post, we shall...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.xoriant.com/blog/mobile-application-development/application-manifest-xml-in-android-system.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Application Class</title>
		<link>http://www.xoriant.com/blog/mobile-application-development/android-application-class.html</link>
		<comments>http://www.xoriant.com/blog/mobile-application-development/android-application-class.html#comments</comments>
		<pubDate>Fri, 17 Sep 2010 06:29:34 +0000</pubDate>
		<dc:creator>Romin Irani</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile Application Development]]></category>
		<category><![CDATA[Android development]]></category>

		<guid isPermaLink="false">http://www.xoriant.com/blog/?p=954</guid>
		<description><![CDATA[A commonly used class in any application, whether it is a desktop application or a mobile application is an application level class. An application level class also called a controller is a single instance available across the application and visible to all modules within an application. This application controller can be used to maintain global [...]


Related posts:<ol><li><a href='http://www.xoriant.com/blog/mobile-application-development/application-manifest-xml-in-android-system.html' rel='bookmark' title='Permanent Link: Application Manifest XML in Android system'>Application Manifest XML in Android system</a> <small>In this blog post we would try and understand the basics of Application Manifest in the Android system. The simplest of any Android application has  the following components: Resources classified...</small></li>
<li><a href='http://www.xoriant.com/blog/mobile-application-development/android-application-development-ui-layouts.html' rel='bookmark' title='Permanent Link: Android Application Development : UI Layouts'>Android Application Development : UI Layouts</a> <small>Providing a good user experience is critical to mobile applications. UI Application development in Android requires that you have a good understanding of Layouts. In this blog post, we shall...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>A commonly used class in any application, whether it is a desktop application or a mobile application is an application level class. An application level class also called a controller is a single instance available across the application and visible to all modules within an application. This application controller can be used to maintain global state across an application, contain common methods, etc.</p>
<p>Android provides support in every application to create an application wide class. The base class for this is the <strong>android.app.Application</strong> class. The official documentation of the Application class is given below:</p>
<p><code><em>Base class for those who need to maintain global application state. You can provide your own implementation by specifying its name in your AndroidManifest.xml's &lt;application&gt; tag, which will cause that class to be instantiated for you when the process for your application/package is created.</em></code></p>
<p>Let us look at how to incorporate an Application class in our Android applications.</p>
<p><strong>Step 1: Provide an implementation of the Application class</strong></p>
<p>You need to extend the <strong>android.app.Application</strong> class and override the <strong>OnCreate</strong> method. This method is invoked by the Android runtime once when your application is started. So this is a good point to do application initialization and set some global settings like shared preferences, etc.</p>
<p>Shown below is a template for your own Application class:</p>
<pre class="brush: java; title: ; notranslate">
public class ApplicationController extends Application {

	//Application wide instance variables
      //Preferable to expose them via getter/setter methods
@Override
	public void onCreate() {
		super.onCreate();
		//Do Application initialization over here
        }
        //Appplication wide methods
}
</pre>
<p><strong>Step 2: Code your Application class</strong></p>
<p>You can then introduce public methods in your Application class above. These public methods can then be called from anywhere in the Android application. We shall how to invoke them in <strong>Step 4</strong>.</p>
<p><strong>Step 3: Specify our Application class in the Android manifest.xml file </strong></p>
<p>Specify your application class in the Android manifest.xml file. Each Android manifest has the <strong>&lt;application&gt;</strong> tag and you need to provide the application class as an attribute of this element as shown below:</p>
<pre class="brush: java; title: ; notranslate">
&lt;application android:icon=&quot;@drawable/icon&quot; android:label=&quot;@string/app_name&quot; android:name=&quot;.android.controller.ApplicationController&quot;&gt;
</pre>
<p><strong>Step 4: Utilize the Application class from other places in your application</strong></p>
<p>To access the Application class instance in any activity, you can use the code as shown below:</p>
<pre class="brush: java; title: ; notranslate">

ApplicationController AC = (ApplicationController)getApplicationContext();
</pre>
<p>The main method is <strong>getApplicationContext().</strong> This gives an instance to the Application class if defined in the application. You need to simply type cast it to your provided Application implementation class. Once you have this instance, you can invoke any public methods that you would have defined in the class. Additionally, if you provide getter/setter methods for application wide state variables, you can invoke them too.</p>
<p>Having an Application wide controller in your application is a commonly used design with significant benefits. Instead of rolling out your own custom implementation, Android provides a simple mechanism to introduce it in your applications, letting you focus on your Application wide logic while it takes care of its lifecycle methods. Start using the Application class to bring in structure to your applications today.
<div class="author_member_gravatar_pic" style="display:block;">
			   <a class="author_member_gravatar" style="display:block;float:left;" href="http://www.xoriant.com/blog/?author=10"><img src="http://www.xoriant.com/blog/wp-content/uploads/userphoto/romin-irani.thumbnail.jpg" alt="Romin Irani" width="80" height="80" class="photo" /><br />
			   <a class="author_member_gravatar" style="padding:5px;font-size:12px;text-decoration:none;font-weight:bold;" href="http://www.xoriant.com/blog/?author=10">Romin Irani</a><span class="author-desc"><strong>&ndash; Principal Architect</strong></span></div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.xoriant.com/blog/mobile-application-development/android-application-class.html&amp;title=Android+Application+Class&amp;summary=A%20commonly%20used%20class%20in%20any%20application%2C%20whether%20it%20is%20a%20desktop%20application%20or%20a%20mobile%20application%20is%20an%20application%20level%20class.%20An%20application%20level%20class%20also%20called%20a%20controller%20is%20a%20single%20instance%20available%20across%20the%20application%20and%20visible%20to%20all%20modules%20within%20an%20application.%20This%20applic&amp;source=Xoriant Software Product Engineering Blog" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Android+Application+Class+-+http://b2l.me/ash8x5&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.xoriant.com/blog/mobile-application-development/android-application-class.html&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.xoriant.com/blog/mobile-application-development/android-application-class.html&amp;title=Android+Application+Class" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.xoriant.com/blog/mobile-application-development/android-application-class.html&amp;title=Android+Application+Class" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-comfeed">
			<a href="http://www.xoriant.com/blog/mobile-application-development/android-application-class.html/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.xoriant.com/blog/mobile-application-development/android-application-class.html&amp;title=Android+Application+Class" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.xoriant.com/blog/mobile-application-development/android-application-class.html&amp;t=Android+Application+Class" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Related posts:<ol><li><a href='http://www.xoriant.com/blog/mobile-application-development/application-manifest-xml-in-android-system.html' rel='bookmark' title='Permanent Link: Application Manifest XML in Android system'>Application Manifest XML in Android system</a> <small>In this blog post we would try and understand the basics of Application Manifest in the Android system. The simplest of any Android application has  the following components: Resources classified...</small></li>
<li><a href='http://www.xoriant.com/blog/mobile-application-development/android-application-development-ui-layouts.html' rel='bookmark' title='Permanent Link: Android Application Development : UI Layouts'>Android Application Development : UI Layouts</a> <small>Providing a good user experience is critical to mobile applications. UI Application development in Android requires that you have a good understanding of Layouts. In this blog post, we shall...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.xoriant.com/blog/mobile-application-development/android-application-class.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Android Application Development : UI Layouts</title>
		<link>http://www.xoriant.com/blog/mobile-application-development/android-application-development-ui-layouts.html</link>
		<comments>http://www.xoriant.com/blog/mobile-application-development/android-application-development-ui-layouts.html#comments</comments>
		<pubDate>Wed, 30 Jun 2010 05:28:25 +0000</pubDate>
		<dc:creator>Prashant Thakkar</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile Application Development]]></category>
		<category><![CDATA[Android Layout]]></category>
		<category><![CDATA[Android UI]]></category>
		<category><![CDATA[Application Development]]></category>

		<guid isPermaLink="false">http://www.xoriant.com/blog/?p=284</guid>
		<description><![CDATA[Providing a good user experience is critical to mobile applications. UI Application development in Android requires that you have a good understanding of Layouts. In this blog post, we shall cover all about Android Layouts with code samples. Android Layout is like a container; all the screen will use either of the one layout and [...]


Related posts:<ol><li><a href='http://www.xoriant.com/blog/mobile-application-development/application-manifest-xml-in-android-system.html' rel='bookmark' title='Permanent Link: Application Manifest XML in Android system'>Application Manifest XML in Android system</a> <small>In this blog post we would try and understand the basics of Application Manifest in the Android system. The simplest of any Android application has  the following components: Resources classified...</small></li>
<li><a href='http://www.xoriant.com/blog/mobile-application-development/android-application-class.html' rel='bookmark' title='Permanent Link: Android Application Class'>Android Application Class</a> <small>A commonly used class in any application, whether it is a desktop application or a mobile application is an application level class. An application level class also called a controller...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><span style="font-weight: normal; font-size: 13px;">Providing a good user experience is critical to mobile applications. UI Application development in Android requires that you have a good understanding of Layouts. In this blog post, we shall cover all about </span><span style="font-weight: normal; font-size: 13px;">Android Layouts</span><span style="font-weight: normal; font-size: 13px;"> </span><span style="font-weight: normal; font-size: 13px;">with code samples.</span></p>
<p><strong><span style="font-weight: normal; font-size: 13px;"><strong>Android Layout</strong></span><span style="font-weight: normal; font-size: 13px;"> is like a container; all the screen will use either of the one layout and all the view (components) on that screen are part of the layout. The fact that mobile screen is small in size it is very important to properly design the UI.</span></strong></p>
<p>Let us look at the various layouts offered:</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<ul>
<li>
<h4>Linear Layout</h4>
</li>
</ul>
<p>This layout as name says is used to place the views in the linear flow one after the other. We can specify the manner in which view are placed linearly i.e. horizontally or vertically.</p>
<p>Let us have a look at the Linear Layout</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
android:orientation=&quot;vertical&quot;
android:layout_width=&quot;fill_parent&quot;
android:layout_height=&quot;fill_parent&quot;
    	&gt;
 &lt;TextView
 android:layout_width=&quot;fill_parent&quot;
 android:layout_height=&quot;wrap_content&quot;
    	 android:text=&quot;First Text View&quot;
    	 /&gt;

 &lt;TextView
    	 android:layout_width=&quot;fill_parent&quot;
    	 android:layout_height=&quot;wrap_content&quot;
    	 android:text=&quot;Second Text View&quot;
    	 /&gt;
 &lt;/LinearLayout&gt;
</pre>
<p>As shown the above Linear Layout have two Text Views and have orientation set to vertical (android:orientation=<em>&#8220;vertical&#8221;</em>), hence the two Text Views will be drawn vertically one below the other.</p>
<p style="text-align: center;"><a href="http://www.xoriant.com/blog/wp-content/uploads/2010/06/Android-1.jpg"><img class="size-medium wp-image-446      aligncenter" title="Linear Layout Vertical Orientation" src="http://www.xoriant.com/blog/wp-content/uploads/2010/06/Android-1-267x300.jpg" alt="Linear Layout Vertical Orientation" width="267" height="300" /></a></p>
<p style="text-align: center;">Figure 1: Linear Layout Vertical Orientation</p>
<p>Look at the above XML for Linear Layout, width for layout along with Text View with the layout is set to fill_parent (android:layout_width=<em>&#8220;fill_parent&#8221;</em>). And since Linear Layout is the top most layout and width set to fill parent it will be stretched to cover entire screen. Similarly both the Text Views also have width set to fill parent, and since they are child to Linear Layout they are stretched to entire screen width.</p>
<p>Now let us change the orientation of linear layout to horizontal (android:orientation=<em>&#8220;horizontal&#8221;</em>).  Just changing the orientation to horizontal will draw Text View next to each other, but since each of the text view is set to have width as fill parent and by default both are written from left to right (Gravity) only one Text View (First Text View) will be visible. To overcome this set width for both the Text View to wrap_content (android:layout_width=<em>&#8220;wrap_content&#8221;</em>).</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;

&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
android:orientation=&quot;horizontal&quot;
    	android:layout_width=&quot;fill_parent&quot;
    	android:layout_height=&quot;fill_parent&quot;
    	&gt;
&lt;TextView
    		android:layout_width=&quot;wrap_content&quot;
    		android:layout_height=&quot;wrap_content&quot;
    		android:text=&quot;First Text View&quot;
      /&gt;

    		&lt;TextView
    		android:layout_width=&quot;wrap_content&quot;
    		android:layout_height=&quot;wrap_content&quot;
    	android:text=&quot;Second Text View&quot;
    		android:paddingLeft=&quot;10px&quot;
    		/&gt;
  &lt;/LinearLayout&gt;
</pre>
<p>Note: Since we have set width for both the Text View as wrap_content, 2<sup>nd</sup> Text View will start as soon as 1<sup>st</sup> end. Hence in the above xml we have provided left padding for 2<sup>nd</sup> Text View in order to have some space between the 2 Text View.</p>
<p style="text-align: center;"><a href="http://www.xoriant.com/blog/wp-content/uploads/2010/06/Android-2.jpg"><img class="size-medium wp-image-447  aligncenter" title="Linear Layout Horizontal Orientation" src="http://www.xoriant.com/blog/wp-content/uploads/2010/06/Android-2-201x300.jpg" alt="Linear Layout Horizontal Orientation" width="201" height="300" /></a></p>
<p style="text-align: center;">Figure 2 Linear Layout Horizontal Orientation</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<ul>
<li>
<h4>Table Layout</h4>
</li>
</ul>
<p>Using this layout we can place view/components in tabular format.  The best example to understand this layout is Login Screen. Below XML shows Table layout</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;TableLayout android:id=&quot;@+id/TableLayout01&quot;
android:layout_width=&quot;fill_parent&quot;
android:layout_height=&quot;fill_parent&quot;
xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&gt;

		&lt;TableRow android:id=&quot;@+id/TableRow01&quot;&gt;
			&lt;TextView android:id=&quot;@+id/TextView01&quot;
			android:text=&quot;User Name:&quot;
			android:width=&quot;100px&quot;/&gt;

			&lt;EditText android:id=&quot;@+id/EditText01&quot;
			android:width=&quot;220px&quot;/&gt;
		&lt;/TableRow&gt;

		&lt;TableRow android:id=&quot;@+id/TableRow02&quot;&gt;
			&lt;TextView android:id=&quot;@+id/TextView02&quot;
			android:text=&quot;Password:&quot;
			/&gt;

			&lt;EditText android:id=&quot;@+id/EditText02&quot;
			android:inputType=&quot;textPassword&quot;/&gt;
		&lt;/TableRow&gt;

		&lt;TableRow android:id=&quot;@+id/TableRow03&quot;&gt;
			&lt;Button android:id=&quot;@+id/Button01&quot;
			android:layout_width=&quot;wrap_content&quot;
			android:layout_height=&quot;wrap_content&quot; android:text=&quot;Login&quot;/&gt;

			&lt;Button android:id=&quot;@+id/Button02&quot;
			android:layout_width=&quot;wrap_content&quot;
			android:layout_height=&quot;wrap_content&quot; android:text=&quot;Reset&quot;
			android:width=&quot;100px&quot;/&gt;
&lt;/TableRow&gt;
&lt;/TableLayout&gt;
</pre>
<p>As shown Table consist of three rows (Table Row) and each row as two views/components. Number of columns in table is determined by the maximum number of components in a single row.</p>
<p style="text-align: center;"><a href="http://www.xoriant.com/blog/wp-content/uploads/2010/06/Android-31.jpg"><img class="size-medium wp-image-449  aligncenter" title="Table Layout" src="http://www.xoriant.com/blog/wp-content/uploads/2010/06/Android-31-201x300.jpg" alt="Table Layout" width="201" height="300" /></a></p>
<p style="text-align: center;">Figure 3 : Table Layout</p>
<p>One more important point to note here is that even after specifying width of Reset button in xml to 100 pixel  (android:width=<em>&#8220;100px&#8221;</em>), it’s width is same as that of Edit Text. This is because width of Column is determined by the maximum width of the component in that column and here Reset button is same the column as Edit Text which has width set to 220 pixel.</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<ul>
<li>
<h4>Relative Layout</h4>
</li>
</ul>
<p>This layout is flexible layout of all. This layout as name suggest allow placing components relative to other component or layout. Let us see at the example</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;RelativeLayout android:id=&quot;@+id/RelativeLayout01&quot;
android:layout_width=&quot;fill_parent&quot;
android:layout_height=&quot;fill_parent&quot;
xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&gt;
&lt;TextView android:id=&quot;@+id/TextView01&quot;
android:layout_width=&quot;wrap_content&quot;
android:layout_height=&quot;wrap_content&quot;
android:text=&quot;User Name:&quot;
android:width=&quot;100px&quot;/&gt;
&lt;EditText android:id=&quot;@+id/EditText01&quot;
android:layout_width=&quot;220px&quot;
android:layout_height=&quot;wrap_content&quot;
android:layout_toRightOf=&quot;@+id/TextView01&quot;
android:layout_below=&quot;@+id/RelativeLayout01&quot;
/&gt;

&lt;EditText android:id=&quot;@+id/EditText02&quot;
android:layout_width=&quot;220px&quot;
android:layout_height=&quot;wrap_content&quot;
android:layout_below=&quot;@+id/EditText01&quot;
android:layout_alignLeft=&quot;@+id/EditText01&quot;
/&gt;

&lt;TextView android:id=&quot;@+id/TextView02&quot;
android:layout_width=&quot;wrap_content&quot;
android:layout_height=&quot;wrap_content&quot;
android:text=&quot;Password:&quot;
android:width=&quot;100px&quot;
android:layout_below=&quot;@+id/EditText01&quot;
android:layout_toLeftOf=&quot;@+id/EditText02&quot;
/&gt;

&lt;Button android:text=&quot;Login&quot;
android:id=&quot;@+id/Button01&quot;
android:layout_width=&quot;100px&quot;
android:layout_height=&quot;wrap_content&quot;
android:layout_below=&quot;@id/EditText02&quot;
android:layout_alignLeft=&quot;@id/EditText02&quot;
/&gt;

&lt;Button android:text=&quot;Reset&quot;
android:id=&quot;@+id/Button02&quot;
android:layout_width=&quot;100px&quot;
android:layout_height=&quot;wrap_content&quot;
android:layout_below=&quot;@id/EditText02&quot;
android:layout_alignRight=&quot;@id/EditText02&quot;
/&gt;

&lt;/RelativeLayout&gt;
</pre>
<p>As shown,  EditText 01 has attributes android:layout_toRightOf=<em>&#8220;@+id/TextView01&#8243; and </em>android:layout_below=<em>&#8220;@+id/RelativeLayout01” </em>for placing Edit Text next to Text View (User Name) . Similarly check EditText02 as attributes android:layout_below=<em>&#8220;@+id/EditText01&#8243; and </em>android:layout_alignLeft=<em>&#8220;@+id/EditText01&#8243;</em> for placing Edit Text box below the Edit Text 01.</p>
<p style="text-align: center;"><a href="http://www.xoriant.com/blog/wp-content/uploads/2010/06/Android-4.jpg"><img class="aligncenter size-medium wp-image-450" title="Relative Layout" src="http://www.xoriant.com/blog/wp-content/uploads/2010/06/Android-4-201x300.jpg" alt="Relative Layout" width="201" height="300" /></a></p>
<p style="text-align: center;">Figure 4 Relative Layout</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<ul>
<li>
<h4>Absolute Layout</h4>
</li>
</ul>
<p>As name suggest this layout is used to place views/components at the exact location on the screen using x and y. Let us see example</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;AbsoluteLayout android:id=&quot;@+id/AbsoluteLayout01&quot;
android:layout_width=&quot;fill_parent&quot;
android:layout_height=&quot;fill_parent&quot;
xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&gt;
&lt;EditText
android:id=&quot;@+id/EditText01&quot;
android:layout_width=&quot;200px&quot; android:layout_height=&quot;wrap_content&quot;
android:layout_x=&quot;12px&quot;
android:layout_y=&quot;12px&quot;/&gt;
&lt;Button android:text=&quot;Search&quot;
android:id=&quot;@+id/Button01&quot;
android:layout_width=&quot;100px&quot; android:layout_height=&quot;wrap_content&quot;
android:layout_x=&quot;220px&quot;
android:layout_y=&quot;12px&quot;/&gt;
&lt;/AbsoluteLayout&gt;
</pre>
<p style="text-align: center;"><a href="http://www.xoriant.com/blog/wp-content/uploads/2010/06/Android-5.jpg"><img class="aligncenter size-medium wp-image-451" title="Absolute Layout" src="http://www.xoriant.com/blog/wp-content/uploads/2010/06/Android-5-201x300.jpg" alt="Absolute Layout" width="201" height="300" /></a></p>
<p style="text-align: center;">Figure 5 Absolute Layout</p>
<p>As seen we have specified android:layout_x and android:layout_y for both the components  their by providing the absolute location for the components.</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<ul>
<li>
<h4>Frame Layout</h4>
</li>
</ul>
<p>Frame Layout is one of the simplest layouts. It is like a single screen and all the views/components child to this layout will be drawn on same screen anchored to the top left corner of the screen. So it is likely that one view can overall another one and hides it unless it is transparent. Let see the example</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;FrameLayout android:id=&quot;@+id/FrameLayout01&quot;
android:layout_width=&quot;fill_parent&quot; android:layout_height=&quot;fill_parent&quot;
xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&gt;

&lt;ImageView android:id=&quot;@+id/ImageView01&quot;
android:src=&quot;@drawable/taj_mahal&quot;
android:scaleType=&quot;center&quot;
android:layout_width=&quot;fill_parent&quot; android:layout_height=&quot;fill_parent&quot;/&gt;

&lt;TextView android:text=&quot;Taj Mahal&quot;
android:id=&quot;@+id/TextView01&quot;
android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot;
android:layout_marginBottom=&quot;20dip&quot;
android:layout_gravity=&quot;center_horizontal|bottom&quot;
android:padding=&quot;10dip&quot;
android:textColor=&quot;#FFFFFF&quot;
android:background=&quot;#AA0000&quot;
/&gt;
&lt;/FrameLayout&gt;
</pre>
<p style="text-align: center;"><a href="http://www.xoriant.com/blog/wp-content/uploads/2010/06/Android-6.jpg"><img class="aligncenter size-medium wp-image-452" title="Frame Layout" src="http://www.xoriant.com/blog/wp-content/uploads/2010/06/Android-6-201x300.jpg" alt="Frame Layout" width="201" height="300" /></a></p>
<p style="text-align: center;">Figure 6 Frame Layout</p>
<p><strong><em>Note</em></strong><em>: taj_mahal.jpg is in drawable folder </em></p>
<h4>Conclusion</h4>
<p>We looked at the basic android layouts and tried to understand them with their respective examples.</p>
<p><strong><br />
</strong>
<div class="author_member_gravatar_pic" style="display:block;">
			   <a class="author_member_gravatar" style="display:block;float:left;" href="http://www.xoriant.com/blog/?author=12"><img src="http://www.xoriant.com/blog/wp-content/uploads/userphoto/prashant-thakkar.thumbnail.jpg" alt="Prashant Thakkar" width="76" height="80" class="photo" /><br />
			   <a class="author_member_gravatar" style="padding:5px;font-size:12px;text-decoration:none;font-weight:bold;" href="http://www.xoriant.com/blog/?author=12">Prashant Thakkar</a><span class="author-desc"><strong>&ndash; Team member – Xoriant Mobile Center of Excellence.</strong></span></div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.xoriant.com/blog/mobile-application-development/android-application-development-ui-layouts.html&amp;title=Android+Application+Development+%3A+UI+Layouts&amp;summary=Providing%20a%20good%20user%20experience%20is%20critical%20to%20mobile%20applications.%20UI%20Application%20development%20in%20Android%20requires%20that%20you%20have%20a%20good%20understanding%20of%20Layouts.%20In%20this%20blog%20post%2C%20we%20shall%20cover%20all%20about%20Android%20Layouts%20with%20code%20samples.%0D%0A%0D%0AAndroid%20Layout%20is%20like%20a%20container%3B%20all%20the%20screen%20will&amp;source=Xoriant Software Product Engineering Blog" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Android+Application+Development+%3A+UI+Layouts+-+http://b2l.me/9vxwn&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.xoriant.com/blog/mobile-application-development/android-application-development-ui-layouts.html&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.xoriant.com/blog/mobile-application-development/android-application-development-ui-layouts.html&amp;title=Android+Application+Development+%3A+UI+Layouts" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.xoriant.com/blog/mobile-application-development/android-application-development-ui-layouts.html&amp;title=Android+Application+Development+%3A+UI+Layouts" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-comfeed">
			<a href="http://www.xoriant.com/blog/mobile-application-development/android-application-development-ui-layouts.html/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.xoriant.com/blog/mobile-application-development/android-application-development-ui-layouts.html&amp;title=Android+Application+Development+%3A+UI+Layouts" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.xoriant.com/blog/mobile-application-development/android-application-development-ui-layouts.html&amp;t=Android+Application+Development+%3A+UI+Layouts" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Related posts:<ol><li><a href='http://www.xoriant.com/blog/mobile-application-development/application-manifest-xml-in-android-system.html' rel='bookmark' title='Permanent Link: Application Manifest XML in Android system'>Application Manifest XML in Android system</a> <small>In this blog post we would try and understand the basics of Application Manifest in the Android system. The simplest of any Android application has  the following components: Resources classified...</small></li>
<li><a href='http://www.xoriant.com/blog/mobile-application-development/android-application-class.html' rel='bookmark' title='Permanent Link: Android Application Class'>Android Application Class</a> <small>A commonly used class in any application, whether it is a desktop application or a mobile application is an application level class. An application level class also called a controller...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.xoriant.com/blog/mobile-application-development/android-application-development-ui-layouts.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Bringing Enterprise Applications to Mobile</title>
		<link>http://www.xoriant.com/blog/mobile-application-development/bringing-enterprise-applications-to-mobile.html</link>
		<comments>http://www.xoriant.com/blog/mobile-application-development/bringing-enterprise-applications-to-mobile.html#comments</comments>
		<pubDate>Tue, 24 Nov 2009 09:34:19 +0000</pubDate>
		<dc:creator>xoriant</dc:creator>
				<category><![CDATA[Mobile Application Development]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Blackberry]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Symbian]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[XHTML-MP]]></category>

		<guid isPermaLink="false">http://www.xoriant.com/blog/?p=125</guid>
		<description><![CDATA[Enterprise software is now going mobile. More and more work, which needed your presence in office/home, can be done on-the-go. With introduction of addictive UIs on smart phones, the market for Mobile based Software has grown into a new niche. Smart phone applications can be categorized in to Native Applications and Web Applications. Native apps [...]


Related posts:<ol><li><a href='http://www.xoriant.com/blog/cloud-computing-for-isvs/driving-mobile-applications-via-the-cloud.html' rel='bookmark' title='Permanent Link: Driving Mobile Applications via the Cloud'>Driving Mobile Applications via the Cloud</a> <small>Cloud Computing brings about real benefits to IT organizations by making available computing resources that you can pay as per your usage, while taking away the hassles of resource management....</small></li>
<li><a href='http://www.xoriant.com/blog/software-product-development/integrating-ms-project-with-an-enterprise-product.html' rel='bookmark' title='Permanent Link: Integrating MS Project with an Enterprise Product'>Integrating MS Project with an Enterprise Product</a> <small>This blog deals with integration of MS Project with an Enterprise product At a very basic level, MS Project, or MSP, is a project management tool, used by several organizations...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><strong><span style="font-weight: normal;">Enterprise software is now going mobile. More and more work, which needed your presence in office/home, can be done on-the-go. With introduction of addictive UIs on smart phones, the market for Mobile based Software has grown into a new niche.</span></strong></p>
<p class="MsoNormal"><strong><span style="font-weight: normal;">Smart phone applications can be categorized in to Native Applications and Web Applications. Native apps are downloaded on the device may or may not require internet connectivity. Most of the games and utilities like calculator, unit-converter fall in this category. Web Apps are applications that run on the device’s inbuilt browser. It does not need downloading, but requires continuous internet connectivity in most cases.</span></strong></p>
<p class="MsoNormal">Both types of applications on Mobile can be developed by following these interdependent life cycle stages:</p>
<p class="MsoNormal"><strong><em><span>1. Design:</span></em></strong><span> A typical smart phone dimensions of 320&#215;480 gives a very limited real estate to stuff-in the amazing functionalities they can support. Designers really need to master the art of small.</span></p>
<p class="MsoNormal">Native</p>
<p class="MsoNormal"><span>The design needs to be in alignment with various UI standards and can closely follow Human Interface Guidelines(HIG) from Apple. Though they have defined it for iPhone, many of them in my opinion are pure common sense. Hence, HIG is applicable for all devices, specifically for the Native apps. The smart-phone vendors (RIM, Apple etc.) have gone a long way in providing standard and useful applications to their users via their own app-stores.<span> </span></span></p>
<p class="MsoNormal">Web Based</p>
<p class="MsoNormal"><span>In web based application development, for multiple devices for e.g. for iPhone and Blackberry Bold, design issues need to be taken care at the CSS level. For lower versions of Blackberry though UI has to be generated by a different code set. </span></p>
<p class="MsoNormal"><strong><em><span>2. Server side:</span></em></strong><span> APIs not only cater to web based mobile applications, native applications too need to shift the data intensive computation to server side. So there is not much difference between the server side programming for Web and Native apps. Bringing website functionality to mobile is not mere reuse of APIs. It involves optimization of existing APIs for performance. It may also involve revisiting the code for adding device specific checks, abstraction and exception handling etc.</span></p>
<p class="MsoNormal"><strong><em><span>3. Client side:</span></em></strong><span> iPhone, Blackberry, Android, Windows Mobile, Symbian have their own SDKs for development of Native Apps. While iPhone requires experience on Objective C and Mac OS, Blackberry and Android can be handled by Java developers while Windows mobile application can be created using Visual Studio 2008.</span></p>
<p class="MsoNormal">Native</p>
<p class="MsoNormal"><span>Advanced hardware like inbuilt camera, accelerometers etc can also be harnessed for making the mobile application feature-rich – like Auto-orientation, motion based gaming etc. The inbuilt GPS and assisted GPS can be leveraged for creating location based services. Though a plethora of applications are already providing LBS, I find it to be a tip of the iceberg. Adding LBS can make a lot of applications information rich, for end users as well as for vendors, distributors and advertisers. </span></p>
<p class="MsoNormal">Web Based</p>
<p class="MsoNormal"><span>Web based applications on almost all devices, sparing iPhone in some cases; do not need specified SDKs for development. The major issue for web based apps is handling the large number of device-browser combinations that a user may use. What works for IE on BB may not work for FF on the same device. To resolve the issue of developing and maintaining code for different devices XHTML-MP is gaining wide popularity among developers. </span></p>
<p class="MsoNormal"><strong><em><span>4. Testing:</span></em></strong><span> Other than functionality and UI related testing, Mobile app QA requires testing for performance and connectivity related issues.</span></p>
<p class="MsoNormal">Native</p>
<p class="MsoNormal">Mobile software requires to be tested in real (non-simulated) Wi-Fi, GPRS, 3G etc. with different service providers. Something that works on AT&amp;T may be blocked by T-Mobile. Also, an internet savvy application may behave differently in different geographies. Based on expected usage, the application should be tested for all the geographies. One may take assistance from www.deviceanywhere.com.</p>
<p class="MsoNormal">Web Based</p>
<p class="MsoNormal"><span>Web apps always need to be tested on variety of browsers (Mobile browsers) for rendering issues. iPhone supports Safari, while BB supports IE and Firefox and also has it’s own browser. Rigorous manual testing can reveal functionality glitches and alignment issues. Generally for all types of browsers, testing and debugging using Firebug and <a href="http://www.httpwatch.com/">HTTP watch</a> can be quite helpful.</span></p>
<p class="MsoNormal"><span>One should plan the development of mobile applications with these distinct yet interdependent processes in mind. It should really help in developing a standard application in minimum time.</span></p>
<p class="MsoNormal"><span>-Ujjwal Trivedi</span></p>
<div class="author_member_gravatar_pic" style="display:block;">
			   <a class="author_member_gravatar" style="display:block;float:left;" href="http://www.xoriant.com/blog/?author=2"><img alt='' src='http://0.gravatar.com/avatar/078a39b17c2cb36828c973a10892124a?s=60&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D60&amp;r=G' class='avatar avatar-60 photo' height='60' width='60' /><br />
			   <a class="author_member_gravatar" style="padding:5px;font-size:12px;text-decoration:none;font-weight:bold;" href="http://www.xoriant.com/blog/?author=2">xoriant</a></div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.xoriant.com/blog/mobile-application-development/bringing-enterprise-applications-to-mobile.html&amp;title=Bringing+Enterprise+Applications+to+Mobile++&amp;summary=Enterprise%20software%20is%20now%20going%20mobile.%20More%20and%20more%20work%2C%20which%20needed%20your%20presence%20in%20office%2Fhome%2C%20can%20be%20done%20on-the-go.%20With%20introduction%20of%20addictive%20UIs%20on%20smart%20phones%2C%20the%20market%20for%20Mobile%20based%20Software%20has%20grown%20into%20a%20new%20niche.%0D%0ASmart%20phone%20applications%20can%20be%20categorized%20in%20to%20Nativ&amp;source=Xoriant Software Product Engineering Blog" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Bringing+Enterprise+Applications+to+Mobile+++-+http://b2l.me/9vxw9&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.xoriant.com/blog/mobile-application-development/bringing-enterprise-applications-to-mobile.html&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.xoriant.com/blog/mobile-application-development/bringing-enterprise-applications-to-mobile.html&amp;title=Bringing+Enterprise+Applications+to+Mobile++" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.xoriant.com/blog/mobile-application-development/bringing-enterprise-applications-to-mobile.html&amp;title=Bringing+Enterprise+Applications+to+Mobile++" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-comfeed">
			<a href="http://www.xoriant.com/blog/mobile-application-development/bringing-enterprise-applications-to-mobile.html/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.xoriant.com/blog/mobile-application-development/bringing-enterprise-applications-to-mobile.html&amp;title=Bringing+Enterprise+Applications+to+Mobile++" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.xoriant.com/blog/mobile-application-development/bringing-enterprise-applications-to-mobile.html&amp;t=Bringing+Enterprise+Applications+to+Mobile++" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Related posts:<ol><li><a href='http://www.xoriant.com/blog/cloud-computing-for-isvs/driving-mobile-applications-via-the-cloud.html' rel='bookmark' title='Permanent Link: Driving Mobile Applications via the Cloud'>Driving Mobile Applications via the Cloud</a> <small>Cloud Computing brings about real benefits to IT organizations by making available computing resources that you can pay as per your usage, while taking away the hassles of resource management....</small></li>
<li><a href='http://www.xoriant.com/blog/software-product-development/integrating-ms-project-with-an-enterprise-product.html' rel='bookmark' title='Permanent Link: Integrating MS Project with an Enterprise Product'>Integrating MS Project with an Enterprise Product</a> <small>This blog deals with integration of MS Project with an Enterprise product At a very basic level, MS Project, or MSP, is a project management tool, used by several organizations...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.xoriant.com/blog/mobile-application-development/bringing-enterprise-applications-to-mobile.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

