I've got a couple of application in my development queue for my company which I'm considering developing for the Android platform. I'm a PHP/MySQL/Javascript/XHTML/jQuery developer, so I'm not looking to learn yet another language or a new set of tools.

I've used Eclipse before. It's not my IDE of choice (I'm into UEStudio), but I'm impressed with Eclipse nonetheless.

Phonegap has tempted me with it's 'write-once-run-on-many' promise as we'd like at least one of our apps to be accessible to as many of our customers as possible.

jQuery Mobile, whilst still in it's alpha phase, has potential and is hopefully familiar to me as I'm a dab hand at jQuery.

My chosen application was one which provides our customers with a way to check stock availability of our products by entering either our partcode, or a manufacturer partcode. We already have a SOAP XML based Web Service available so all the Android app had to do was present the UI, take the input, hit the SOAP Web Service and display the response.

So now I've written my first Android app and got it successfully running on both the Eclipse Emulator, and some actual hardware, how did it go?

Well, Eclipse lived up to expectations - once I'd started from a clean Eclipse for Java install and added Phonegap's "MDS PhoneGap for Android Plug-In" and set it up to work with the Android SDK (I'd previously been using Eclipse for PHP, but that just didn't want to play ball).

Apart from providing a starting point in terms of application structure, I didn't really use any of the Phonegap API. I didn't need GPS, or local storage etc.

jQuery Mobile was a bit of a surprise. It wasn't as straightforward as I expected. When creating your presentation markup (your HTML) you need to structure it as per the jQuery Mobile documentation and demos. I suggest anyone else starting out to cut and paste from the examples on the jQuery Mobile website. Just take a look at this:

<div data-role="page" data-theme="microp">
	<div data-role="header">
		<div class="ui-grid-a">
			<div class="ui-block-a" style="width:30%;"><img src="img/Micro-P-Logo-110x24.jpg"></div>
			<div class="ui-block-b"><h1>Stock Check</h1></div>
		</div><!-- /grid-a -->
	</div><!--  end header -->

	<div data-role="content">
	
		<form id="pandaform" action="">
			<input type="hidden" name="accesskey" id="accesskey" value="9186562c86ac59614ed4d3d5f2906b8a" />
			<input type="hidden" name="account" id="account" value="ME035071" />
			<div data-role="fieldcontain">
				<label for="partcode">Partcode:</label>
				<input type="text" name="partcode" id="partcode" value="" />
				<label for="manupartcode">Manu Partcode:</label>
				<input type="text" name="manupartcode" id="manupartcode" value="" />
			</div>
			
			<div data-role="collapsible" data-collapsed="false">
				<h1>Result</h1>
				<div class="ui-grid-a">
					<div class="ui-block-a" id="description" style="width:60%;"></div>
					<div class="ui-block-b" id="stock"></div>
				</div><!-- /grid-a -->
				
				<a id="viewbutton" data-role="button" style="display:none;">View Product</a>
			</div><!-- collapsible -->
			
			<a id="gobutton" data-role="button" onclick="goButtonHandler();">go</a>
		</form>
		
		<!-- 
		<div data-role="collapsible" data-collapsed="true" data-theme="e">
			<h1>System Info</h1>
			<p>Platform: <b><span id="platform"> &nbsp;</span></b>, Version: <b>
			<span id="version">&nbsp;</span>
			</b></p>
			<p>UUID: <b><span id="uuid"> &nbsp;</span></b>, Name: <b>
			<span id="name">&nbsp;</span></b></p>
			<p>Width: <b><span id="width"> &nbsp;</span></b>, Ht: <b>
			<span id="height">&nbsp;</span></b>, Color Depth: <b>
			<span id="colorDepth"></span></b></p>
		</div>--><!-- collapsible -->
	
	
	
	</div><!-- end jqm content -->
	
	<div data-role="footer">
	<a href="http://www.micro-p.com/cmcPage.asp?idPage=1688"><img src="img/016-0111_B.jpg"></a><br />
	<small>&copy; 2011 Micro-P</small>
	</div><!-- end footer -->

</div><!-- end jqm page -->

So with a few jQuery UI form components, and a little bit of javascript to submit the form as a SOAP requests, I ended up with the working app you see below.