<?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>Jappit.com &#187; tutorial</title>
	<atom:link href="http://www.jappit.com/blog/category/tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jappit.com/blog</link>
	<description>Mobile blog by Alessandro La Rosa</description>
	<lastBuildDate>Wed, 23 Nov 2011 10:38:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Ovi Maps and event handling with Java ME Location API</title>
		<link>http://www.jappit.com/blog/2011/07/06/ovi-maps-and-event-handling-with-java-me-location-api/</link>
		<comments>http://www.jappit.com/blog/2011/07/06/ovi-maps-and-event-handling-with-java-me-location-api/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 09:11:08 +0000</pubDate>
		<dc:creator>pit</dc:creator>
				<category><![CDATA[j2me]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[sample code]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[forum nokia]]></category>
		<category><![CDATA[java me]]></category>
		<category><![CDATA[location api]]></category>
		<category><![CDATA[nokia developer]]></category>
		<category><![CDATA[ovi maps]]></category>

		<guid isPermaLink="false">http://www.jappit.com/blog/?p=1733</guid>
		<description><![CDATA[Today I&#8217;d like to present an article that closes the first part of tutorials about the Ovi Maps Java ME Location API. When displaying a map in a Java ME application, it can be useful to be able to intercept events generated by the interaction of the user with the map itself, and the MapComponent [...]]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;d like to present an article that closes the <a title="Tutorials about the Ovi Maps Java ME Location API" href="http://www.jappit.com/blog/tag/location-api/">first part of tutorials</a> about the <strong>Ovi Maps</strong> <a title="Ovi Maps Java ME Location API" href="https://projects.developer.nokia.com/LBSPJME">Java ME Location API</a>.</p>
<p style="text-align: center;"><a href="http://www.developer.nokia.com/Community/Wiki/Handling_map_events_with_Java_ME_Location_API"><img class="aligncenter" title="Handling map events with Java ME Location API" src="http://www.developer.nokia.com/Community/Wiki/images/c/cd/JavaMELocationAPI_EventListener.png?20110630095400" alt="" width="347" height="445" /></a></p>
<p>When displaying a map in a Java ME application, it can be useful to be able to intercept events generated by the <strong>interaction of the user with the map</strong> itself, and the <a title="MapComponent JavaDocs" href="http://www.jappit.com/j2me/locationapi/index.html?com/nokia/maps/map/MapComponent.html">MapComponent</a> and <a title="EventListener JavaDocs" href="http://www.jappit.com/j2me/locationapi/index.html?com/nokia/maps/map/EventListener.html">EventListener</a> interfaces give <strong>complete support for keyboard and touch-based events</strong>.</p>
<p>Check out the full article, showing how <strong>touch events can be used to add markers to a map</strong>, and let me know your <strong>comments</strong>: <a title="Handling map events with Java ME Location API" href="http://www.developer.nokia.com/Community/Wiki/Handling_map_events_with_Java_ME_Location_API">Handling map events with Java ME Location API</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.jappit.com/blog/2011/07/06/ovi-maps-and-event-handling-with-java-me-location-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating custom map providers with Ovi Maps Java ME Location API</title>
		<link>http://www.jappit.com/blog/2011/07/05/creating-custom-map-providers-with-ovi-maps-java-me-location-api/</link>
		<comments>http://www.jappit.com/blog/2011/07/05/creating-custom-map-providers-with-ovi-maps-java-me-location-api/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 09:01:41 +0000</pubDate>
		<dc:creator>pit</dc:creator>
				<category><![CDATA[j2me]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[sample code]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[forum nokia]]></category>
		<category><![CDATA[java me]]></category>
		<category><![CDATA[location api]]></category>
		<category><![CDATA[nokia developer]]></category>
		<category><![CDATA[ovi maps]]></category>

		<guid isPermaLink="false">http://www.jappit.com/blog/?p=1728</guid>
		<description><![CDATA[Today&#8217;s Ovi Maps article describes how to create and use custom map providers by using the Java ME Location API. The MapProvider and MapUrlProvider abstract classes are used to provide the data needed to display custom map tiles, that can be used to replace the default map tiles, or displayed above those one, so creating [...]]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s <a title="Ovi Maps" href="http://maps.ovi.com/">Ovi Maps</a> article describes how to <strong>create and use custom map providers</strong> by using the <a title="Java ME Location API" href="https://projects.developer.nokia.com/LBSPJME">Java ME Location API</a>.</p>
<p><a href="http://www.developer.nokia.com/Community/Wiki/Implementing_a_custom_MapUrlProvider_overlay_with_Java_ME_Location_API"><img class="aligncenter" title="Implementing a custom MapUrlProvider overlay with Java ME Location API" src="http://www.developer.nokia.com/Community/Wiki/images/8/85/JavaMELocationAPI_MapOverlay.png?20110629092813" alt="" width="439" height="476" /></a></p>
<p>The <a title="MapProvider JavaDocs" href="http://www.jappit.com/j2me/locationapi/index.html?com/nokia/maps/map/MapProvider.html">MapProvider</a> and <a title="MapUrlProvider JavaDocs" href="http://www.jappit.com/j2me/locationapi/index.html?com/nokia/maps/map/MapUrlProvider.html">MapUrlProvider</a> abstract classes are used to provide the data needed to display <strong>custom map tiles</strong>, that can be used to replace the default map tiles, or displayed above those one, so creating overlay map levels.</p>
<p>When using the <strong>MapUrlProvider</strong> class, the only needed information that the class must provide is the <strong>URL of each tile</strong>, that will be used by the class itself to retrieve and create the associated Image object.</p>
<p>The article published on the <a title="Nokia Developer Wiki" href="http://www.developer.nokia.com/Community/Wiki">Nokia Developer Wiki</a>, with both <strong>client and server code</strong>, shows a possible usage of the <strong>MapUrlProvider</strong> class to create an overlay level over a map: <a title="Implementing a custom MapUrlProvider overlay with Java ME Location API" href="http://www.developer.nokia.com/Community/Wiki/Implementing_a_custom_MapUrlProvider_overlay_with_Java_ME_Location_API">Implementing a custom MapUrlProvider overlay with Java ME Location API</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.jappit.com/blog/2011/07/05/creating-custom-map-providers-with-ovi-maps-java-me-location-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Determining the device location in Java ME with the Ovi Maps Location API</title>
		<link>http://www.jappit.com/blog/2011/07/04/determining-the-device-location-in-java-me-with-the-ovi-maps-location-api/</link>
		<comments>http://www.jappit.com/blog/2011/07/04/determining-the-device-location-in-java-me-with-the-ovi-maps-location-api/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 09:05:08 +0000</pubDate>
		<dc:creator>pit</dc:creator>
				<category><![CDATA[j2me]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[sample code]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[forum nokia]]></category>
		<category><![CDATA[java me]]></category>
		<category><![CDATA[location api]]></category>
		<category><![CDATA[nokia developer]]></category>
		<category><![CDATA[ovi maps]]></category>

		<guid isPermaLink="false">http://www.jappit.com/blog/?p=1723</guid>
		<description><![CDATA[Among the many features offered by the Ovi Maps Java ME Location API (as geocoding, routing and the ability to integrate with LCDUI screens), one of the most useful is surely the PositioningManager. PositioningManager, together with the PositionListener interface, allow to get asynchronous and periodical updates about the user&#8217;s position, and so allowing to build [...]]]></description>
			<content:encoded><![CDATA[<p>Among the many features offered by the <strong>Ovi Maps</strong> <a title="Ovi Maps Java ME Location API" href="https://projects.developer.nokia.com/LBSPJME">Java ME Location API</a> (as <a title="Java ME and Ovi Maps: geocoding an address with the Location API " href="http://www.jappit.com/blog/2011/06/29/java-me-and-ovi-maps-geocoding-an-address-with-the-location-api/">geocoding</a>, <a title="Calculate and show a route on Ovi Maps with Java ME Location API " href="http://www.jappit.com/blog/2011/06/30/calculate-and-show-a-route-on-ovi-maps-with-java-me-location-api/">routing</a> and the <a title="Adding Ovi Maps to a standard Java ME Form with Location API " href="http://www.jappit.com/blog/2011/07/01/adding-ovi-maps-to-a-standard-java-me-form-with-location-api/">ability to integrate with LCDUI screens</a>), one of the most useful is surely the <a title="PositioningManager Java docs" href="http://www.jappit.com/j2me/locationapi/index.html?com/nokia/maps/routing/PositioningManager.html">PositioningManager</a>.</p>
<p><a href="http://www.developer.nokia.com/Community/Wiki/Using_the_PositioningManager_from_Java_ME_Location_API"><img class="aligncenter" title="Using the PositioningManager from Java ME Location API" src="http://www.developer.nokia.com/Community/Wiki/images/f/f5/JavaMELocationAPI_PositioningManager.png?20110629131955" alt="" width="346" height="444" /></a></p>
<p><a title="PositioningManager Java docs" href="http://www.jappit.com/j2me/locationapi/index.html?com/nokia/maps/routing/PositioningManager.html">PositioningManager</a>, together with the <a title="PositionListener Java docs" href="http://www.jappit.com/j2me/locationapi/index.html?com/nokia/maps/routing/PositionListener.html">PositionListener</a> interface, allow to get <strong>asynchronous and periodical updates about the user&#8217;s position</strong>, and so allowing to build location-based services in a simple and effective way.</p>
<p>The new article published on <a title="Nokia Developer Wiki" href="http://www.developer.nokia.com/Community/Wiki">Nokia Developer Wiki</a> explores the main features of <em>PositioningManager</em>, and shows how to build a simple <strong>service that detect and draw the user&#8217;s movements on Ovi Maps</strong>: <a title="Using the PositioningManager from Java ME Location API" href="http://www.developer.nokia.com/Community/Wiki/Using_the_PositioningManager_from_Java_ME_Location_API">Using the PositioningManager from Java ME Location API</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.jappit.com/blog/2011/07/04/determining-the-device-location-in-java-me-with-the-ovi-maps-location-api/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Adding Ovi Maps to a standard Java ME Form with Location API</title>
		<link>http://www.jappit.com/blog/2011/07/01/adding-ovi-maps-to-a-standard-java-me-form-with-location-api/</link>
		<comments>http://www.jappit.com/blog/2011/07/01/adding-ovi-maps-to-a-standard-java-me-form-with-location-api/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 12:35:51 +0000</pubDate>
		<dc:creator>pit</dc:creator>
				<category><![CDATA[j2me]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[sample code]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[forum nokia]]></category>
		<category><![CDATA[java me]]></category>
		<category><![CDATA[location api]]></category>
		<category><![CDATA[nokia developer]]></category>
		<category><![CDATA[ovi maps]]></category>

		<guid isPermaLink="false">http://www.jappit.com/blog/?p=1718</guid>
		<description><![CDATA[Today I&#8217;d like to present another recently published article about the Ovi Maps Java ME Location API. While the previous two articles focused on the MapCanvas object, showing how it can be used to show a map on a classical LCDUI Canvas screen, today&#8217;s article shows how to build a custom map Form Item, extending [...]]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;d like to present another recently published article about the <strong>Ovi Maps</strong> <a title="Ovi Maps Java ME Location API" href="https://projects.developer.nokia.com/LBSPJME">Java ME Location API</a>.</p>
<p><a href="http://www.developer.nokia.com/Community/Wiki/Creating_a_custom_Map_Item_with_Java_ME_Location_API"><img class="aligncenter" title="Ovi Maps Java ME Form Item" src="http://www.developer.nokia.com/Community/Wiki/images/1/18/JavaMELocationAPI_CustomItem.png?20110628082108" alt="" width="349" height="440" /></a></p>
<p>While the previous <a title="Java ME and Ovi Maps: geocoding an address with the Location API " href="http://www.jappit.com/blog/2011/06/29/java-me-and-ovi-maps-geocoding-an-address-with-the-location-api/">two</a> <a title="Calculate and show a route on Ovi Maps with Java ME Location API " href="http://www.jappit.com/blog/2011/06/30/calculate-and-show-a-route-on-ovi-maps-with-java-me-location-api/">articles</a> focused on the <a title="Ovi Maps MapCanvas docs" href="http://www.jappit.com/j2me/locationapi/com/nokia/maps/map/MapCanvas.html">MapCanvas</a> object, showing how it can be used to show a map on a classical LCDUI Canvas screen, today&#8217;s article shows <strong>how to build a custom map Form Item</strong>, extending the <a title="MIDP CustomItem Java docs" href="http://download.oracle.com/javame/config/cldc/ref-impl/midp2.0/jsr118/javax/microedition/lcdui/CustomItem.html">CustomItem</a> class, so allowing to show and interact with a map on a classical LCDUI <a title="MIDP Form Java docs" href="http://download.oracle.com/javame/config/cldc/ref-impl/midp2.0/jsr118/javax/microedition/lcdui/Form.html">Form</a> screen.</p>
<p>The article, with <strong>complete source code</strong> and downloadable MIDlet, is available here: <a title="Creating a custom Map Item with Java ME Location API" href="http://www.developer.nokia.com/Community/Wiki/Creating_a_custom_Map_Item_with_Java_ME_Location_API">Creating a custom Map Item with Java ME Location API</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.jappit.com/blog/2011/07/01/adding-ovi-maps-to-a-standard-java-me-form-with-location-api/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Calculate and show a route on Ovi Maps with Java ME Location API</title>
		<link>http://www.jappit.com/blog/2011/06/30/calculate-and-show-a-route-on-ovi-maps-with-java-me-location-api/</link>
		<comments>http://www.jappit.com/blog/2011/06/30/calculate-and-show-a-route-on-ovi-maps-with-java-me-location-api/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 14:46:20 +0000</pubDate>
		<dc:creator>pit</dc:creator>
				<category><![CDATA[j2me]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[sample code]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[java me]]></category>
		<category><![CDATA[location api]]></category>
		<category><![CDATA[ovi maps]]></category>
		<category><![CDATA[routing]]></category>

		<guid isPermaLink="false">http://www.jappit.com/blog/?p=1711</guid>
		<description><![CDATA[After the article showing how to geocode an address with the help of Java ME Location API, today it&#8217;s time to explore the routing functionality offered by Ovi Maps. This new article covers the main aspects involved in calculating and showing a route on a map, by allowing the user to navigate through the maneuvers [...]]]></description>
			<content:encoded><![CDATA[<p>After the article showing <a title="Geocoding an address with Java ME Location API" href="http://www.jappit.com/blog/2011/06/29/java-me-and-ovi-maps-geocoding-an-address-with-the-location-api/">how to geocode an address</a> with the help of <a title="Java ME Location API" href="https://projects.developer.nokia.com/LBSPJME">Java ME Location API</a>, today it&#8217;s time to explore the <strong>routing functionality</strong> offered by <a title="Ovi Maps" href="http://maps.ovi.com/">Ovi Maps</a>.</p>
<p><a href="http://www.developer.nokia.com/Community/Wiki/How_to_calculate_and_show_a_route_with_Java_ME_Location_API"><img class="aligncenter" title="Ovi Maps routing with Java ME" src="http://www.developer.nokia.com/Community/Wiki/images/f/fa/JavaMELocationAPI_RouteShape.png?20110627095052" alt="" width="354" height="444" /></a></p>
<p>This new article covers the main aspects involved in <strong>calculating and showing a route on a map</strong>, by allowing the user to navigate through the maneuvers of the calculated route.</p>
<p>The full article with <strong>source code</strong> and a <strong>downloadable MIDlet</strong> is available on <a title="Nokia Developer Wiki" href="http://www.developer.nokia.com/Community/Wiki">Nokia Developer Wiki</a>: <a title="How to calculate and show a route with Java ME Location API" href="http://www.developer.nokia.com/Community/Wiki/How_to_calculate_and_show_a_route_with_Java_ME_Location_API">How to calculate and show a route with Java ME Location API</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.jappit.com/blog/2011/06/30/calculate-and-show-a-route-on-ovi-maps-with-java-me-location-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java ME and Ovi Maps: geocoding an address with the Location API</title>
		<link>http://www.jappit.com/blog/2011/06/29/java-me-and-ovi-maps-geocoding-an-address-with-the-location-api/</link>
		<comments>http://www.jappit.com/blog/2011/06/29/java-me-and-ovi-maps-geocoding-an-address-with-the-location-api/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 11:45:25 +0000</pubDate>
		<dc:creator>pit</dc:creator>
				<category><![CDATA[j2me]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[sample code]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[forum nokia]]></category>
		<category><![CDATA[java me]]></category>
		<category><![CDATA[location api]]></category>
		<category><![CDATA[nokia developer]]></category>
		<category><![CDATA[ovi maps]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://www.jappit.com/blog/?p=1705</guid>
		<description><![CDATA[The Java ME Location API allows to easily integrate Ovi Maps in a Java ME application, with just few lines of code, together with a set of ready-to-use features as geocoding and reverse geocoding, routing, positioning and more. I&#8217;ve recently started to publish a set of articles on Nokia Developer Wiki that show the various [...]]]></description>
			<content:encoded><![CDATA[<p>The <a title="Java ME Location API" href="https://projects.developer.nokia.com/LBSPJME">Java ME Location API</a> allows to easily integrate <a title="Ovi Maps" href="http://maps.ovi.com/">Ovi Maps</a> in a Java ME application, with just few lines of code, together with a set of ready-to-use features as <strong>geocoding</strong> and <strong>reverse geocoding</strong>, <strong>routing</strong>, <strong>positioning</strong> and more.</p>
<p style="text-align: center;"><a href="http://www.developer.nokia.com/Community/Wiki/Geocoding_an_address_with_Java_ME_Location_API"><img class="aligncenter" title="Java ME Location API geocoding screenshot" src="http://www.developer.nokia.com/Community/Wiki/images/1/1c/JME_LocationAPI_geocode.png?20110626182810" alt="" width="352" height="453" /></a></p>
<p>I&#8217;ve recently started to publish a set of articles on <a title="Nokia Developer Wiki" href="http://www.developer.nokia.com/Community/Wiki">Nokia Developer Wiki</a> that show the various features of the <strong>API in action</strong>. You can read the first one here: <a title="Geocoding an address with Java ME Location API" href="http://www.developer.nokia.com/Community/Wiki/Geocoding_an_address_with_Java_ME_Location_API">Geocoding an address with Java ME Location API</a>.</p>
<p><strong>Check it out</strong> and let me know your comments.</p>]]></content:encoded>
			<wfw:commentRss>http://www.jappit.com/blog/2011/06/29/java-me-and-ovi-maps-geocoding-an-address-with-the-location-api/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Implementing a simple View Manager with QML</title>
		<link>http://www.jappit.com/blog/2011/02/24/implementing-a-simple-view-manager-with-qml/</link>
		<comments>http://www.jappit.com/blog/2011/02/24/implementing-a-simple-view-manager-with-qml/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 11:05:05 +0000</pubDate>
		<dc:creator>pit</dc:creator>
				<category><![CDATA[cool stuff]]></category>
		<category><![CDATA[maemo]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.jappit.com/blog/?p=1677</guid>
		<description><![CDATA[Today&#8217;s new QML tutorial shows how to implement a simple View Manager in QML. The video below shows how the component behaves on a Nokia N8 device. Check out the full article on Forum Nokia Wiki: simple QML View Manager.]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s new QML tutorial shows <a title="Simple QML View Manager" href="http://wiki.forum.nokia.com/index.php/Implementing_a_simple_View_Manager_with_QML">how to implement a simple View Manager in QML</a>.</p>
<p><a href="http://wiki.forum.nokia.com/index.php/Implementing_a_simple_View_Manager_with_QML"><img class="aligncenter size-full wp-image-1678" title="Simple QML View Manager" src="http://www.jappit.com/blog/wp-content/blog_n8_qml_viewmanager.png" alt="" width="580" height="360" /></a></p>
<p>The <a href="http://www.youtube.com/watch?v=9W4iwKX6j8A">video</a> below shows how the component behaves on a <strong>Nokia N8 device</strong>.</p>
<div style="margin: auto; width: 560px;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="349" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/9W4iwKX6j8A?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="349" src="http://www.youtube.com/v/9W4iwKX6j8A?fs=1&amp;hl=en_US" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<p>Check out the full article on <strong>Forum Nokia Wiki</strong>: <a href="http://wiki.forum.nokia.com/index.php/Implementing_a_simple_View_Manager_with_QML">simple QML View Manager</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.jappit.com/blog/2011/02/24/implementing-a-simple-view-manager-with-qml/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to build a CoverFlow component with QML</title>
		<link>http://www.jappit.com/blog/2011/02/21/how-to-build-a-coverflow-component-with-qml/</link>
		<comments>http://www.jappit.com/blog/2011/02/21/how-to-build-a-coverflow-component-with-qml/#comments</comments>
		<pubDate>Mon, 21 Feb 2011 15:07:43 +0000</pubDate>
		<dc:creator>pit</dc:creator>
				<category><![CDATA[cool stuff]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[maemo]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[coverflow]]></category>
		<category><![CDATA[forum nokia]]></category>
		<category><![CDATA[qml]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[qt quick]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://www.jappit.com/blog/?p=1667</guid>
		<description><![CDATA[Today I&#8217;ve published a new technical article on Forum Nokia Wiki, that shows how a CoverFlow component can be easily built with Qt Quick and QML. You can see a video of the CoverFlow component in action on a Nokia N8 device below. The full source code is available here: Building a CoverFlow component with [...]]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;ve published a new technical article on <a title="Forum Nokia Wiki" href="http://wiki.forum.nokia.com">Forum Nokia Wiki</a>, that shows <a title="Qt Quick CoverFlow component" href="http://wiki.forum.nokia.com/index.php/Building_a_CoverFlow_component_with_QML">how a <strong>CoverFlow component</strong> can be easily built with Qt Quick and QML</a>.</p>
<p><a href="http://wiki.forum.nokia.com/index.php/Building_a_CoverFlow_component_with_QML"><img class="aligncenter size-full wp-image-1668" title="QML CoverFlow" src="http://www.jappit.com/blog/wp-content/blog_n8_qml_coverflow_front.png" alt="" width="580" height="293" /></a></p>
<p>You can <a href="http://www.youtube.com/watch?v=X8kvlPNBLeg">see a video</a> of the CoverFlow component in action on a <strong>Nokia N8</strong> device below.</p>
<div style="width: 560px; margin: auto;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="349" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/X8kvlPNBLeg?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="349" src="http://www.youtube.com/v/X8kvlPNBLeg?fs=1&amp;hl=en_US" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<p>The <strong>full source code</strong> is available here: <a title="Qt Quick CoverFlow component" href="http://wiki.forum.nokia.com/index.php/Building_a_CoverFlow_component_with_QML">Building a CoverFlow component with QML</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.jappit.com/blog/2011/02/21/how-to-build-a-coverflow-component-with-qml/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Forum Nokia Web Developer&#8217;s Library 1.9 available</title>
		<link>http://www.jappit.com/blog/2010/03/17/forum-nokia-web-developers-library-1-9-available/</link>
		<comments>http://www.jappit.com/blog/2010/03/17/forum-nokia-web-developers-library-1-9-available/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 09:20:57 +0000</pubDate>
		<dc:creator>pit</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web runtime]]></category>
		<category><![CDATA[widgets]]></category>
		<category><![CDATA[forum nokia]]></category>
		<category><![CDATA[forumnokia]]></category>
		<category><![CDATA[mobile web]]></category>
		<category><![CDATA[wdl]]></category>
		<category><![CDATA[web developer's library]]></category>
		<category><![CDATA[wrt]]></category>

		<guid isPermaLink="false">http://www.jappit.com/blog/?p=1339</guid>
		<description><![CDATA[Forum Nokia has just updated its excellent resource for mobile Web development, the Web Developer&#8217;s Library, adding a lot of resources to support the design and development of Web Runtime widgets. Changes in this last release include: Samples and packaging information for Platform Services 2.0 Guidelines and how-to&#8217;s for home-screen widgets Optimization of performances and [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Forum Nokia" href="http://www.forum.nokia.com">Forum Nokia</a> has just updated its excellent resource for <strong>mobile Web development</strong>, the <a title="Forum Nokia Web Developer's Library" href="http://library.forum.nokia.com/index.jsp?topic=/Web_Developers_Library/GUID-4D13AF3F-4733-44E7-996F-F27A11C9D6BF_cover.html">Web Developer&#8217;s Library</a>, adding a lot of resources to support the design and development of <a title="Web Runtime" href="http://www.forum.nokia.com/Technology_Topics/Web_Technologies/Web_Runtime/">Web Runtime widgets</a>.</p>
<p><a title="Forum Nokia Web Developer's Library" href="http://library.forum.nokia.com/index.jsp?topic=/Web_Developers_Library/GUID-4D13AF3F-4733-44E7-996F-F27A11C9D6BF_cover.html"><img class="alignnone size-full wp-image-1341" title="Forum Nokia Library" src="http://www.jappit.com/blog/wp-content/forum_nokia_library.png" alt="" width="620" height="107" /></a></p>
<p>Changes in this last release include:</p>
<ul>
<li><a href="http://library.forum.nokia.com/topic/Web_Developers_Library/GUID-9B5ACA61-9BBB-4F67-A994-22016FB36A1E.html#GUID-9B5ACA61-9BBB-4F67-A994-22016FB36A1E">Samples</a> and <a href="http://library.forum.nokia.com/topic/Web_Developers_Library/GUID-0084E4E8-4A60-41C8-8CEB-93A08A0292FF.html#GUID-0084E4E8-4A60-41C8-8CEB-93A08A0292FF">packaging information</a> for Platform Services 2.0</li>
<li><a href="http://library.forum.nokia.com/topic/Web_Developers_Library/GUID-FB279BC9-9751-4F03-B00E-A0406324BC47.html#GUID-FB279BC9-9751-4F03-B00E-A0406324BC47">Guidelines</a> and <a href="http://library.forum.nokia.com/topic/Web_Developers_Library/GUID-249C566A-7F14-4D42-8117-1EADAB137838.html#GUID-249C566A-7F14-4D42-8117-1EADAB137838">how-to&#8217;s</a> for home-screen widgets</li>
<li><a href="http://library.forum.nokia.com/topic/Web_Developers_Library/GUID-40782DAD-F6E2-44A5-8036-1D1FD8860ABA.html#GUID-40782DAD-F6E2-44A5-8036-1D1FD8860ABA">Optimization</a> of performances and battery life</li>
</ul>
<p>If you&#8217;re a mobile Web developer, <a title="Forum Nokia Web Developer's Library" href="http://library.forum.nokia.com/index.jsp?topic=/Web_Developers_Library/GUID-4D13AF3F-4733-44E7-996F-F27A11C9D6BF_cover.html">check it out</a>!</p>]]></content:encoded>
			<wfw:commentRss>http://www.jappit.com/blog/2010/03/17/forum-nokia-web-developers-library-1-9-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deploying API Bridge apps the easy way: the delayed deploy model</title>
		<link>http://www.jappit.com/blog/2010/02/18/deploying-api-bridge-apps-the-easy-way-the-delayed-deploy-model/</link>
		<comments>http://www.jappit.com/blog/2010/02/18/deploying-api-bridge-apps-the-easy-way-the-delayed-deploy-model/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 09:35:06 +0000</pubDate>
		<dc:creator>pit</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[flash lite]]></category>
		<category><![CDATA[j2me]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[symbian]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web runtime]]></category>
		<category><![CDATA[widgets]]></category>
		<category><![CDATA[apibridge]]></category>
		<category><![CDATA[forumnokia]]></category>
		<category><![CDATA[wrt]]></category>

		<guid isPermaLink="false">http://www.jappit.com/blog/?p=1246</guid>
		<description><![CDATA[When developing a Flash Lite, Web Runtime or Java ME application based on API Bridge, one of the things you know you&#8217;ll have to deal with is the Symbian packaging and signing process. For single-person and small developer teams, the whole Symbian process could be a not suitable option. For this reason, I&#8217;ve looked for [...]]]></description>
			<content:encoded><![CDATA[<p>When developing a <a title="Adobe Flash Lite" href="http://www.adobe.com/products/flash/">Flash Lite</a>, <a title="Web Runtime" href="http://www.forum.nokia.com/Technology_Topics/Web_Technologies/Web_Runtime/">Web Runtime</a> or <a title="Java ME" href="http://java.sun.com/javame/index.jsp">Java ME</a> application based on <a title="APIBridge" href="http://www.forum.nokia.com/info/sw.nokia.com/id/d697a64f-ddae-4937-8151-be157b542d26/ApiBridge.html">API Bridge</a>, one of the things you know you&#8217;ll have to deal with is the <strong><a title="Symbian" href="http://www.symbian.org">Symbian</a> packaging and <a title="Symbian Signed" href="http://www.symbiansigned.com">signing process</a></strong>.</p>
<p>For <strong>single-person and small developer teams</strong>, the whole Symbian process could be a <strong>not suitable</strong> option. For this reason, I&#8217;ve looked for an <strong>alternative deployment approach</strong> that could bypass this process. The approach presented here is based on a <em><strong>delayed deploy model</strong></em>, meaning that the API Bridge engine is not deployed with your application, but in a successive moment: actually, it is <em>deployed only when the application needs it</em>.</p>
<p><a href="http://www.jappit.com/blog/wp-content/apibridge_delayed_deploy_model2.png"><img class="alignnone size-full wp-image-1263" title="API Bridge delayed deploy model" src="http://www.jappit.com/blog/wp-content/apibridge_delayed_deploy_model2.png" alt="" width="620" height="400" /></a></p>
<p>How this can be achieved? Basically, there are <em>2 possible options</em> to implement this model, and they&#8217;re based on:</p>
<ul>
<li><strong>AppManager API from Platform Services</strong></li>
<li><strong>Local HTTP calls</strong></li>
</ul>
<h3>Using the AppManager API to check API Bridge</h3>
<p>If the target devices support <a title="Platform Services" href="http://library.forum.nokia.com/index.jsp?topic=/Web_Developers_Library/GUID-65AAF569-D347-462B-B59A-9D7CA184AB9C.html">Platform Services</a>, the <a title="AppManager API" href="http://library.forum.nokia.com/index.jsp?topic=/Web_Developers_Library/GUID-2D651505-F68C-4053-B565-9FF826C5B897.html">AppManager API</a> can be used to retrieve the <strong>list of installed applications</strong>, and so to <strong>check if API Bridge is installed</strong> on the device itself.</p>
<p>The code below shows how this can be achieved by <strong>using JavaScript in a WRT widget</strong>. The same approach can be easily ported to ActionScript, and so used in a Flash Lite application.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> apiBridgeFound <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> apiBridgeCheckError <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> so <span style="color: #339933;">=</span> device.<span style="color: #660066;">getServiceObject</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Service.AppManager&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;IAppManager&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> criteria <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Object<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
criteria.<span style="color: #660066;">Type</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'Application'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> result <span style="color: #339933;">=</span> so.<span style="color: #660066;">IAppManager</span>.<span style="color: #660066;">GetList</span><span style="color: #009900;">&#40;</span>criteria<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>result.<span style="color: #660066;">ErrorCode</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> iterator <span style="color: #339933;">=</span> result.<span style="color: #660066;">ReturnValue</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> application<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>application <span style="color: #339933;">=</span> iterator.<span style="color: #660066;">getNext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> undefined<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>application.<span style="color: #660066;">Uid</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">'0x20023710'</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			apiBridgeFound <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">else</span>
<span style="color: #009900;">&#123;</span>
	apiBridgeCheckError <span style="color: #339933;">=</span> result.<span style="color: #660066;">ErrorMessage</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>The code works by checking the <strong>UID</strong> of all the installed applications, comparing them with the API Bridge UID (<em>0&#215;20023710</em>). This code snipped defined 2 variables, that can be used to check for API Bridge availability:</p>
<ul>
<li><em>apiBridgeFound</em>: if <strong>true</strong>, it means that the <strong>API Bridge engine is installed</strong> on the device. If <strong>false</strong>, the API Bridge engine is <strong>not installed</strong>.</li>
<li><em>apiBridgeCheckError</em>: if <strong>not null</strong>, it means that <strong>there was an error while checking for API Bridge</strong>, due to the <em>AppManager API</em>. In this case, the application <strong>cannot actually know</strong> if the API Bridge engine is installed or not.</li>
</ul>
<p>So, once these 2 variable have been set, the application can perform the most appropriate operation, based on the AppManager call result. The code snippet below shows a possible implementation:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>apiBridgeCheckError <span style="color: #339933;">!=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;There was an error! &quot;</span> <span style="color: #339933;">+</span> apiBridgeCheckError<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>apiBridgeFound<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">confirm</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;You have to install API Bridge to continue, press OK to download it&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		widget.<span style="color: #660066;">openURL</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'http://www.yourserver.com/APIBridge_v1_1.sis'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">else</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;API Bridge is already installed on the device!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>And below you can see this code running on a <a href="http://www.forum.nokia.com/devices/5800_XpressMusic/">Nokia 5800 XpressMusic</a>:</p>
<p><a href="http://www.jappit.com/blog/wp-content/apibridge_delayed_installation.png"><img class="alignnone size-full wp-image-1266" title="API Bridge delayed installation" src="http://www.jappit.com/blog/wp-content/apibridge_delayed_installation.png" alt="" width="620" height="292" /></a></p>
<h3>Using local HTTP calls to check API Bridge</h3>
<p>Since the <strong>API Bridge engine works as a local HTTP server</strong> running on the mobile phone, the other possible approach is to make an HTTP request, and to check if any response from API Bridge comes.</p>
<p><strong>Note:</strong> this approach works by using the <strong>API Bridge default port</strong> (<em>9080</em>). There are no guarantees that this port number is fixed, and that it will not be changed in future API Bridge releases. For this reason, my advice would be to <strong>use this second approach only when Platform Services are not available</strong>.</p>
<p>The code below shows how to make a <strong>request to the local API Bridge HTTP server</strong>, and how to check if it&#8217;s running or not: if it is running, the <strong>response status</strong> of the XMLHttpRequest object has to be <strong>different than zero</strong>.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> pollApiBridgeServer<span style="color: #009900;">&#40;</span>_callback<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> request <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> XMLHttpRequest<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	request.<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;GET&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;http://127.0.0.1:9080&quot;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	request.<span style="color: #660066;">send</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	request.<span style="color: #660066;">onreadystatechange</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> request.<span style="color: #660066;">readyState</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>request.<span style="color: #000066;">status</span> <span style="color: #339933;">!=</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				_callback<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000066; font-weight: bold;">else</span>
			<span style="color: #009900;">&#123;</span>
				_callback<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>The approach described here can be used also when using <em>API Bridge</em> from other languages, as <strong>Flash Lite</strong> or <strong>Java ME</strong>. Anyway, when working with <strong>Flash Lite</strong>, in the scenario where API Bridge is not yet installed, you will incur in the <a href="http://discussion.forum.nokia.com/forum/showthread.php?t=136572"><strong>typical (and horrible) error popups</strong></a>, that will inform you (and so the user) that the network call failed.</p>
<p>How to use the code above? First, define a callback:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> pollApiBridgeCallback<span style="color: #009900;">&#40;</span>apiBridgeInstalled<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>apiBridgeInstalled<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;API Bridge is already installed on the device&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000066; font-weight: bold;">else</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">confirm</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;You have to install API Bridge to continue, press OK to download it&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			widget.<span style="color: #660066;">openURL</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'http://www.yourserver.com/APIBridge_v1_1.sis'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Then, just <strong>call the pollApiBridgeServer() method</strong> by passing a reference to this callback:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">pollApiBridgeServer<span style="color: #009900;">&#40;</span>pollApiBridgeCallback<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<h3>Pros and cons</h3>
<p>Using one of the two approaches discussed above as some important <strong>advantages</strong> over the <em>standard API Bridge deployment mechanism</em>:</p>
<ul>
<li>You don&#8217;t have to <strong>build</strong> a SIS package</li>
<li>You don&#8217;t have to <strong>sign</strong> your application to distribute it</li>
<li>You will <strong>save money</strong> <img src='http://www.jappit.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p>On the other side, these approaches have the main drawback on the <strong>user-experience</strong> side, since your users could be asked to <strong>download and install an additional component</strong> when they start to use your application. Anyway, this event will happen only once at most, so it could be considered <strong>reasonable</strong> in most scenarios.</p>]]></content:encoded>
			<wfw:commentRss>http://www.jappit.com/blog/2010/02/18/deploying-api-bridge-apps-the-easy-way-the-delayed-deploy-model/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

