<?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>Pimp My Pre &#187; Applications</title>
	<atom:link href="http://pimpmypre.com/category/applications/feed/" rel="self" type="application/rss+xml" />
	<link>http://pimpmypre.com</link>
	<description>Developers working to help you Pimp out your Palm Pre</description>
	<lastBuildDate>Fri, 03 Feb 2012 23:37:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Slide to Type on the Palm Pre!</title>
		<link>http://pimpmypre.com/2010/10/22/slide-to-type-on-the-palm-pre/</link>
		<comments>http://pimpmypre.com/2010/10/22/slide-to-type-on-the-palm-pre/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 14:11:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Applications]]></category>

		<guid isPermaLink="false">http://pimpmypre.com/?p=2043</guid>
		<description><![CDATA[Slide to type on the Palm Pre brought by WOG OSK! ]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://pimpmypre.com/2010/10/22/slide-to-type-on-the-palm-pre/&amp;t=Slide+to+Type+on+the+Palm+Pre%21&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><p>WOG OSK does it again!</p>
<p style="text-align: center;">
<div class="wp-caption aligncenter" style="width: 330px"><img class=" " title="New look!" src="http://osk.webosgroup.com/oskimages/messaging_2010-20-10_162024.png" alt="New kayboard look!" width="320" height="480" /><p class="wp-caption-text">New keyboard look!</p></div>
<p>Here are the youtube videos posted showing that the new WOG OSK will have slide to type capability, along with bubble letters, editing capabilities and it still inetracts with all of your Palm apps!</p>
<p><a href="http://www.youtube.com/watch?v=fbuaAzsSPcs">Slide to type!</a></p>
<p><a href="http://www.youtube.com/watch?v=n-ZPdm5tEQQ">Shorter version &#8211; Slide to type on the Pre!</a></p>
<p>No hacking a virtual keyboard into your phone, or having it pop up over your app &#8211; this sits in the notification area and we love the new look! The slide to type is very cool and easily done with one finger. We also still love the ease of use of the quick keys. With 57 programmable keys to choose from it makes life much easier.</p>
<p>The new update has been submitted to Palm and will hopefully be released soon!</p>
<p>Alos found the the landscape keyboard now opens up in the browser, but it is slide to type only!</p>
<div class="wp-caption aligncenter" style="width: 330px"><img title="Landscape in Browser" src="http://osk.webosgroup.com/oskimages/browser_2010-20-10_162210.png" alt="Landscape in Browser" width="320" height="480" /><p class="wp-caption-text">Landscape in Browser</p></div>
]]></content:encoded>
			<wfw:commentRss>http://pimpmypre.com/2010/10/22/slide-to-type-on-the-palm-pre/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virtual Keyboard in the App Catalog!</title>
		<link>http://pimpmypre.com/2010/03/19/virtual-keyboard-in-the-app-catalog/</link>
		<comments>http://pimpmypre.com/2010/03/19/virtual-keyboard-in-the-app-catalog/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 05:15:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Applications]]></category>

		<guid isPermaLink="false">http://pimpmypre.com/?p=1839</guid>
		<description><![CDATA[ WOG O.S.K. was just released!
It is the first virtual keyboard in the app catalog that can type directly into your other apps, browser and even webpages!
They have told us that they are already working on an update to make the &#8220;slider&#8221; keyboard more accurate by adding pop-up letters and the ability to simply slide [...]]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://pimpmypre.com/2010/03/19/virtual-keyboard-in-the-app-catalog/&amp;t=Virtual+Keyboard+in+the+App+Catalog%21&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><p><strong>WOG O.S.K. was just released!</strong></p>
<div class="wp-caption aligncenter" style="width: 330px"><a href="http://pimpmypre.com/osk1.png"><img title="WOG O.S.K." src="http://pimpmypre.com/osk1.png" alt="" width="320" height="480" /></a><p class="wp-caption-text">Typing into webpage!</p></div>
<p>It is the first virtual keyboard in the app catalog that can type directly into your other apps, browser and even webpages!</p>
<p>They have told us that they are already working on an update to make the &#8220;slider&#8221; keyboard more accurate by adding pop-up letters and the ability to simply slide around the board and lift your finger when you&#8217;re on the key you want. They say that the next update is scheduled for some time in April.</p>
<p>We have found that it takes some getting used to, and is really handy for quick responses, but find it easier to type longer texts and emails in &#8220;App Mode&#8221; (function key, then rocket key) because you can tap in the text box behind the keyboard and edit. Close the App Mode, pop up the kayboard in front of your target, hit the clipboard button (bottom left when shift is on) and it pastes your text that you wrote. Tap on the To field, type some of the contact name, hit the address book icon twice and select the contact &#8211; all without having to slide the phone open!</p>
<p style="text-align: center;"><a href="http://pimpmypre.com/osk2.png"><img class="aligncenter" title="App Mode in Landscape" src="http://pimpmypre.com/osk2.png" alt="" width="320" height="480" /></a></p>
<p>What&#8217;s also nice are the &#8220;Quick Keys&#8221;. We stored pimpmypre.com on one key, username on another and password on the next. It made logging in from my phone extremely easy.</p>
<p>Overall, we like it. It&#8217;s not a true virtual keyboard, but it&#8217;s a nice addition to the app catalog, we believe.</p>
]]></content:encoded>
			<wfw:commentRss>http://pimpmypre.com/2010/03/19/virtual-keyboard-in-the-app-catalog/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>PreLoad New Release</title>
		<link>http://pimpmypre.com/2009/08/14/preload-new-release-plus-update-app/</link>
		<comments>http://pimpmypre.com/2009/08/14/preload-new-release-plus-update-app/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 16:08:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Applications]]></category>

		<guid isPermaLink="false">http://pimpmypre.com/?p=1786</guid>
		<description><![CDATA[ All applications have been moved to WebOS Group.
http://webosgroup.com
Pimp My Pre will still host ringtones and wallpapers and will have more news soon.
We are currently working to reorganize the site.
]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://pimpmypre.com/2009/08/14/preload-new-release-plus-update-app/&amp;t=PreLoad+New+Release&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><p>All applications have been moved to WebOS Group.<br />
http://webosgroup.com</p>
<p>Pimp My Pre will still host ringtones and wallpapers and will have more news soon.<br />
We are currently working to reorganize the site.</p>
]]></content:encoded>
			<wfw:commentRss>http://pimpmypre.com/2009/08/14/preload-new-release-plus-update-app/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>PreLoad (Beta) &#8211; New Application Released</title>
		<link>http://pimpmypre.com/2009/08/01/preload-beta-new-application-released/</link>
		<comments>http://pimpmypre.com/2009/08/01/preload-beta-new-application-released/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 03:41:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://pimpmypre.com/?p=1710</guid>
		<description><![CDATA[Download applications, ringtones, wallpapers and sounds DIRECTLY to your Pre OTA with PreLoad!]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://pimpmypre.com/2009/08/01/preload-beta-new-application-released/&amp;t=PreLoad+%28Beta%29+-+New+Application+Released&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><p>All applications have been moved to WebOS Group.<br />
http://webosgroup.com</p>
<p>Pimp My Pre will stil host ringtones and wallpapers and will have more news soon.</p>
<p>Viewt he new PreLoad here<br />
http://webosgroup.com/2009/08/18/preload/</p>
]]></content:encoded>
			<wfw:commentRss>http://pimpmypre.com/2009/08/01/preload-beta-new-application-released/feed/</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
		<item>
		<title>Our Application to Change Palm Pre SMS Ringtones and Alerts</title>
		<link>http://pimpmypre.com/2009/06/15/our-application-to-change-palm-pre-sms-ringtones-and-alerts/</link>
		<comments>http://pimpmypre.com/2009/06/15/our-application-to-change-palm-pre-sms-ringtones-and-alerts/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 04:52:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://pimpmypre.com/?p=503</guid>
		<description><![CDATA[You asked for it. You didn't believe us. You said things like, "Hey guys we hate you and your fake app". Or, "why do you and your phony app suck so much". Or even, "Remember that time we hooked up at the roller rink, well I'm pregnant and it's yours". We're not sure about that last one, but here's the answer for the rest of you. And yea, South Park Rules!]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://pimpmypre.com/2009/06/15/our-application-to-change-palm-pre-sms-ringtones-and-alerts/&amp;t=Our+Application+to+Change+Palm+Pre+SMS+Ringtones+and+Alerts&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><p>Apparently, some people wanted to see the actual standalone app we made to change ringtones for SMS and Email.  So we made a vid of the one that&#8217;s installed on my Pre, instead of the one hacked into the Sounds and Ringtones section. The plan is to expand that app to include more functionality. We&#8217;re also busy working on getting the repository app working; which shouldn&#8217;t be too long now. So start getting wallpapers together and, as a preview of what it can do, get some icons ready to build your own themes.</p>
<p>Sorry &#8211; we can&#8217;t install this app on your pre &#8212; YET! But an installer can&#8217;t be far behind with how quickly we&#8217;re working.</p>
<p>Remember to use the forums or email us with any questions or comments!</p>
<p>Mitch</p>
<p><object width="425" height="344" data="http://www.youtube.com/v/wBNTEdcSK2g&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/wBNTEdcSK2g&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://pimpmypre.com/2009/06/15/our-application-to-change-palm-pre-sms-ringtones-and-alerts/feed/</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>Palm webOS: Developing Applications in Javascript Using the Palm Mojo Framework &#8211; Page 9</title>
		<link>http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-9/</link>
		<comments>http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-9/#comments</comments>
		<pubDate>Fri, 08 May 2009 14:34:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Applications]]></category>

		<guid isPermaLink="false">http://pimpmypre.com/?p=119</guid>
		<description><![CDATA[ Core OS
The core OS is based on a version of the Linux 2.6 kernel with the standard driver architecture managed by udev, with a proprietary boot loader. It supports an ext3 filesystem for the internal (private) file partitions and fat32 for the media file partition, which can be externally mounted via USB for transferring [...]]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-9/&amp;t=Palm+webOS%3A+Developing+Applications+in+Javascript+Using+the+Palm+Mojo+Framework+-+Page+9&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><div class="bk_header2">Core OS</div>
<p>The core OS is based on a version of the Linux 2.6 kernel with the standard driver architecture managed by udev, with a proprietary boot loader. It supports an ext3 filesystem for the internal (private) file partitions and fat32 for the media file partition, which can be externally mounted via USB for transferring media files to and from the device.</p>
<p>The Wireless Comms system at the highest level provides connection management that automatically attaches to WAN and WiFi networks when available, switches connections dynamically, prioritizing WiFi connections when both are available. EVDO or UMTS telephony and WAN data is supported depending upon the particular device model. Palm webOS also supports most standard Bluetooth profiles and provides simple pairing services. The Bluetooth sub-system is tightly integrated with audio routing to dynamically handle audio paths based upon user preferences and peripheral availability.</p>
<p>The media server is based upon <span class="bk_i_red">gstreamer</span> and includes support for numerous audio and video codecs, all mainstream image formats, and supports image capture through the built-in camera. Video and audio capture is not supported in the initial webOS products, but is inherently supported by the architecture. Video and audio playback supports both file and stream-based playback.</p>
<div class="bk_header1">Software Developer Kit (SDK)</div>
<p>Of course the best way to get started writing webOS applications is to continue reading this book, but you should also go to Palm&#8217;s developer site, <span class="bk_i_red">http://developer.palm.com</span> and register as a Palm developer and download the Palm Software Developer Kit (SDK). The SDK includes the development tools, sample code, the Mojo Framework, along with access to the Palm Developer Wiki, where developers will find formal and informal training materials, tutorial and reference documentation. Palm also provides registered developers with direct technical support by email or through interaction in a hosted developer forum.</p>
<div class="bk_header3">Development Tools</div>
<p>The Palm Developer Tools (PDT) are installed from the SDK and include targets for Linux, Windows (XP/Vista) and Mac OS X. The tools enable you to create a new Palm project using sample code and framework defaults, search reference documentation, debug your app in the weOS emulator or an attached Palm device, and publish an application. Chapter 2 includes more details about the tools in Palm&#8217;s SDK and third-party tools, but you&#8217;ll find a brief summary in Table 1-1 below.</p>
<div class="bk_i_red">Table 1-1. Palm Developer Tools</div>
<p> </p>
<table class="MsoNormalTable" border="1" cellspacing="0" cellpadding="8">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #bfbfbf; padding-bottom: 0in; width: 139.5pt; padding-top: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border: windowtext 1pt solid;" width="186" valign="top"><strong>Tools</strong></td>
<td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; background: #bfbfbf; padding-bottom: 0in; border-left: medium none; width: 274.5pt; padding-top: 0in; border-bottom: windowtext 1pt solid; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="366" valign="top"><strong>Major Features</strong></td>
</tr>
<tr>
<td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: white; padding-bottom: 0in; border-left: 1pt solid; width: 139.5pt; padding-top: 0in; border-bottom: 1pt solid; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="186" valign="top">SDK Bundle Installer</td>
<td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: white; padding-bottom: 0in; border-left: medium none; width: 274.5pt; padding-top: 0in; border-bottom: 1pt solid; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="366" valign="top">Installs all webOS tools &amp; SDK for 3<sup>rd</sup> party editors</td>
</tr>
<tr>
<td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: white; padding-bottom: 0in; border-left: 1pt solid; width: 139.5pt; padding-top: 0in; border-bottom: 1pt solid; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="186" valign="top">Emulator</td>
<td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: white; padding-bottom: 0in; border-left: medium none; width: 274.5pt; padding-top: 0in; border-bottom: 1pt solid; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="366" valign="top">Desktop Emulator and Device Manager</td>
</tr>
<tr style="height: 3.35pt;">
<td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: white; padding-bottom: 0in; border-left: 1pt solid; width: 139.5pt; padding-top: 0in; border-bottom: 1pt solid; height: 3.35pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="186" valign="top">Command-Line Tools</td>
<td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: white; padding-bottom: 0in; border-left: medium none; width: 274.5pt; padding-top: 0in; border-bottom: 1pt solid; height: 3.35pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="366" valign="top">Create New Project</td>
</tr>
<tr>
<td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: white; padding-bottom: 0in; border-left: 1pt solid; width: 139.5pt; padding-top: 0in; border-bottom: 1pt solid; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="186" valign="top"> </td>
<td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: white; padding-bottom: 0in; border-left: medium none; width: 274.5pt; padding-top: 0in; border-bottom: 1pt solid; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="366" valign="top">Install &amp; Launch in Desktop Emulator or Device</td>
</tr>
<tr>
<td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: white; padding-bottom: 0in; border-left: 1pt solid; width: 139.5pt; padding-top: 0in; border-bottom: 1pt solid; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="186" valign="top"> </td>
<td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: white; padding-bottom: 0in; border-left: medium none; width: 274.5pt; padding-top: 0in; border-bottom: 1pt solid; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="366" valign="top">Open Inspector/Debugger Window</td>
</tr>
<tr>
<td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: white; padding-bottom: 0in; border-left: 1pt solid; width: 139.5pt; padding-top: 0in; border-bottom: 1pt solid; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="186" valign="top"> </td>
<td style="border-right: 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: white; padding-bottom: 0in; border-left: medium none; width: 274.5pt; padding-top: 0in; border-bottom: 1pt solid; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="366" valign="top">Package &amp; Sign App</td>
</tr>
</tbody>
</table>
<p>The tools can be installed and accessed as command-line tools on every platform and include some bundles for integration into popular HTML editors and as a plug-in to Eclipse and Aptana Studio, a popular Javascript/HTML/CSS editor for Eclipse. Refer to Palm&#8217;s Developer portal for the most current list of supported editors and tool bundles.</p>
<div class="bk_header3">Mojo Framework and Sample Code</div>
<p>The SDK installation includes a copy of the Framework and sample code to help you design and implement your application. Unlike most JavaScript frameworks, you won&#8217;t need to include the Mojo framework with your application code since Palm includes the framework in every webOS device. The framework code included in the SDK is for reference purposes to help you with debugging your applications.</p>
<p>The sample code is also for reference. There are samples for most of the significant framework functions, including application lifecycle functions, UI widgets and each of the services. Simple applications are included to give you some starter applications to review and leverage as you choose.</p>
<div class="bk_header3">Developer Portal</div>
<p>Your main entry point is <span class="bk_i_red">http://developer.palm.com/</span>, which is where Palm hosts the Developer Portal. The portal provides access to everything that you might need to build webOS applications, including access to the SDK, all development tools, and documentation and training materials.</p>
<p>The Developer Portal provides your application signing services and access to the Application Catalog. This is an application store that is published and promoted with every webOS device through a built-in App Catalog application. Applications need to be signed for installation on a webOS device, and through the portal you can access the signing tools and related support.</p>
<div class="bk_header2">Summary</div>
<p>In this introductory chapter, you were introduced to webOS, Palm&#8217;s next generation operating system. The following chapters will cover each of these topics in far more detail but this chapter should have helped you understand the webOS architecture and application model along with the basic services available in the SDK.</p>
<p>You&#8217;ll find that it&#8217;s pretty easy to get started writing webOS applications. After all, you&#8217;re simply building web applications, using conventional web languages and tools. You can port a very simple Ajax application by creating an <span class="bk_i_red">appinfo.json</span> file for your application at the same level as your application&#8217;s <span class="bk_i_red">index.html</span> file. With as little as that, your app can be published and available for download to any webOS device.</p>
<p>From there you can invest more deeply by building in the Mojo UI widgets to take advantage of the fluid physics engine, gesture navigation, beautiful visual features, text editing, and the powerful notification system. You can move beyond simple foreground applications that rely on active user interaction, and adapt your application to run in the background or even be headless. Or consider an application that can open new windows for each new activity, enabling the user to multi-task within a single application. There&#8217;s a whole new generation of applications possible on the webOS platform, just waiting to be built.</p>
]]></content:encoded>
			<wfw:commentRss>http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Palm webOS: Developing Applications in Javascript Using the Palm Mojo Framework &#8211; Page 8</title>
		<link>http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-8/</link>
		<comments>http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-8/#comments</comments>
		<pubDate>Fri, 08 May 2009 14:34:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Applications]]></category>

		<guid isPermaLink="false">http://pimpmypre.com/?p=117</guid>
		<description><![CDATA[ 
Services
Even limiting yourself to just webOS&#8217;s System UI, application model and UI widgets, developers would have some unique opportunities for building web applications, particularly with the notification and dashboards. But they&#8217;d be missing the access and integration that comes with a native OS platform. The Services functions complete the webOS platform, fulfilling its mission [...]]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-8/&amp;t=Palm+webOS%3A+Developing+Applications+in+Javascript+Using+the+Palm+Mojo+Framework+-+Page+8&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><div class="bk_body">
<div class="bk_header2">Services</div>
<p>Even limiting yourself to just webOS&#8217;s System UI, application model and UI widgets, developers would have some unique opportunities for building web applications, particularly with the notification and dashboards. But they&#8217;d be missing the access and integration that comes with a native OS platform. The Services functions complete the webOS platform, fulfilling its mission to bridge the web and native app worlds.</p>
<p>Through the Services APIs, you can access hardware features on webOS devices (such as location services, the phone, and the camera) and you can leverage the core application data and services that have always been a key part of a Palm OS device. Almost all of the core applications can be launched from within your application, and there are functions to access data in some core applications.</p>
<p>A service is an on-device server for any resource, data, or configuration that is exposed through the framework for use within an application. The service can be performed by the native OS (in the case of device services), an application, or by a server in the cloud. The model is very powerful as evidenced by the initial set of offered services.</p>
<p>The Services differ from the rest of the framework because they are called through a single controller function, <span class="bk_i_red">serviceRequest</span>. The request passes a JSON object specific to the called service and specifying callbacks for success and failure of the service request.</p>
<p>Starting with Chapter 7, you&#8217;ll find a full description of the general model and handling techniques as well as enumeration of all the services and the specifics for using each one.</p>
<div class="bk_header2">Palm webOS Architecture</div>
<p>The Palm webOS is based on the Linux 2.6 kernel, with a combination of open source and Palm components providing user space services, referred to as the <span class="bk_i_red">Core OS</span>.</p>
<p>You won&#8217;t have any direct interaction with the Core OS, nor will the end users. Instead your access is through Mojo and the various services. Users interact with the various applications and the UI System Manager, which is responsible for the System UI. Collectively this is known as the <span class="bk_i_red">Application Environment</span>. Figure 1-11 shows a simplified view of the webOS architecture.</p>
<div class="bk_figure"><img src="http://developer.palm.com/assets/images/book/palm_0111.png" alt="" /></div>
<div class="bk_i_maroon">Figure 1-11. Simplified webOS Architecture</div>
<p>This overview is included as background in case you want to have an idea of how webOS works-this information is not needed to build applications so you can skip it if you aren&#8217;t interested.</p>
<div class="bk_header2">Application Environment</div>
<p>The application runtime environment is managed by the UI system manager, which also presents the System UI manipulated by the user. The framework provides access to the UI Widgets and the Palm Services. Supporting this environment is the Core OS environment, an embedded Linux OS with some custom sub-systems handling telephony, touch and keyboard input, power management, storage and audio routing. All these Core OS capabilities are managed by the Application Environment and exposed to the end user as System UI and to the developer through Mojo APIs.</p>
<p>Taking a deeper look at the webOS Architecture, Figure 1-12 describes the major components within the Application Environment and the Core OS.</p>
<div class="bk_figure"><img src="http://developer.palm.com/assets/images/book/palm_0112.png" alt="" /></div>
<div class="bk_i_maroon">Figure 1-12. webOS System Architecture</div>
<p>The Application Environment refers to the System User Experience and the feature set that is exposed to the application developer, as represented by the Mojo Framework and the Palm Services. The Core OS covers everything else: from the Linux kernel and drivers, up through the OS Services, Middleware, Wireless and Media sub-systems. Let&#8217;s take a brief look at how this all works together.</p>
<p>The UI System Manager or UI SysMgr, is responsible for almost everything in the system that is user visible. The application runtime is provided by the Application Manager, which loads the individual applications, and hosts the built-in framework and some special system apps, the status bar and the Launcher. The Application Manager runs in a single process, schedules and manages each of the running applications, and handles all rendering through interfaces to the Graphics sub-system and on-device storage through interfaces to SQLite.</p>
<p>Applications rely on the framework for their UI features set and for services access. The UI features are built into the framework and handled by the Application Manager directly but the service requests are routed over the Palm Bus to the appropriate service handler.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Palm webOS: Developing Applications in Javascript Using the Palm Mojo Framework &#8211; Page 7</title>
		<link>http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-7/</link>
		<comments>http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-7/#comments</comments>
		<pubDate>Fri, 08 May 2009 14:33:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Applications]]></category>

		<guid isPermaLink="false">http://pimpmypre.com/?p=114</guid>
		<description><![CDATA[ UI Widgets
Supporting webOS&#8217;s user interface are UI Widgets and a set of standard styles for use with the widgets and within your scenes. Mojo defines default styles for scenes and for each of the widgets. You get the styles simply by declaring and using the widgets, and you can also override the styles either [...]]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-7/&amp;t=Palm+webOS%3A+Developing+Applications+in+Javascript+Using+the+Palm+Mojo+Framework+-+Page+7&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><div class="bk_header2">UI Widgets</div>
<p>Supporting webOS&#8217;s user interface are UI <span class="bk_i_red">Widgets</span> and a set of standard styles for use with the widgets and within your scenes. Mojo defines default styles for scenes and for each of the widgets. You get the styles simply by declaring and using the widgets, and you can also override the styles either collectively or individually with custom CSS.</p>
<p>The <span class="bk_i_red">List</span> is the most important widget in the framework. The webOS user experience was designed around a fast and powerful list widget, binding lists to dynamic data sources with instantaneous filtering and embedding objects within lists including other widgets, including other lists, icons and images.</p>
<p>There are <span class="bk_i_red">Simple Widgets</span>, including buttons, checkboxes, sliders, indicators, and containers. The <span class="bk_i_red">Text Field</span> widget includes text entry and editing functions, including selection, cut/copy/paste, and text filtering. A Text Field can be used singly or in groups or in conjunction with a List widget.</p>
<p><span class="bk_i_red">Menu</span> widgets can be used within specified areas on the screen; at the top and bottoms are the <span class="bk_i_red">View</span> and <span class="bk_i_red">Command</span> menus and they are completely under your control. The <span class="bk_i_red">App Menu</span> is handled by the system, but you can provide functions to service the Help and Preferences items or add custom items to the menu. Each of the various menu types is shown in Figure 1-10.</p>
<div class="bk_figure"><img src="http://developer.palm.com/assets/images/book/palm_0110.png" alt="" /></div>
<div class="bk_i_maroon">Figure 1-10. Application Menu Types</div>
<p>For <span class="bk_i_red">Notifications</span>, you can choose from a Popup Notification or a Banner Notification, both of which post notifications for applications in the notification bar.</p>
<p><span class="bk_i_red">Pickers</span> and <span class="bk_i_red">Viewers</span> are more complex widgets. Pickers are for browsing and filtering files or contacts, or for selecting addresses, dates or times. If you want to play or view content within your application, such as audio, pictures, video or web content, then you would include the appropriate viewer.</p>
<div class="bk_header3">Using Widgets</div>
<p>A widget is declared within your HTML as an empty <span class="bk_i_red">div</span> with an <span class="bk_i_red">x-mojo-element</span> attribute. For example, the following declares a Toggle Button widget:</p>
<div style="border-right: medium none; padding-right: 0in; border-top: medium none; padding-left: 2pt; padding-bottom: 0in; margin-left: 0.25in; border-left: 1pt solid; margin-right: -67.7pt; padding-top: 0in; border-bottom: medium none;">
<p class="Code" style="margin: 0in 0in 0pt;"><span style="font-size: 8pt; font-family: Verdana;">&lt;div <em>x-mojo-element=</em>&#8220;ToggleButton&#8221; <em>id=</em>&#8220;my-toggle&#8221;&gt;&lt;/div&gt; </span></p>
</div>
<p>The <span class="bk_i_red">x-mojo-element</span> attribute specifies the widget class used to fill out the div when the HTML is added to the page. The id attribute is required to reference the widget from your Javascript and must be unique.</p>
<p>Typically, you would declare the widget within a scene&#8217;s view file, then direct Mojo to instantiate the widget during the corresponding scene assistant setup method using the scene controller&#8217;s setupWidget method:</p>
<div style="border-right: medium none; padding-right: 0in; border-top: medium none; padding-left: 2pt; padding-bottom: 0in; margin-left: 0.25in; border-left: 1pt solid; margin-right: -67.7pt; padding-top: 0in; border-bottom: medium none;">
<p class="Code" style="margin: 0in 0in 0pt;"><span style="font-size: 8pt; font-family: Verdana;"><span> </span>/<span> </span>Setup toggle widget and an observer for when it is changed.</span></p>
<p class="Code" style="margin: 0in 0in 0pt;"><span style="font-size: 8pt; font-family: Verdana;"><span> </span>//<span> </span>this.toggle<span>     </span>attributes for the toggle widget, specifying the &#8216;value&#8217;</span></p>
<p class="Code" style="margin: 0in 0in 0pt;"><span style="font-size: 8pt; font-family: Verdana;"><span> </span>//<span>        </span>property to be set to the toggle&#8217;s boolean value</span></p>
<p class="Code" style="margin: 0in 0in 0pt;"><span style="font-size: 8pt; font-family: Verdana;"><span> </span>//<span> </span>this.togglemodel<span>   </span>model for toggle; includes &#8216;value&#8217; property, and sets</span></p>
<p class="Code" style="margin: 0in 0in 0pt;"><span style="font-size: 8pt; font-family: Verdana;"><span> </span>//<span>    </span><span> </span>&#8216;disabled&#8217; to false meaning the toggle is selectable<span>     </span></span></p>
<p class="Code" style="margin: 0in 0in 0pt;"><span style="font-size: 8pt; font-family: Verdana;"><span> </span>//</span></p>
<p class="Code" style="margin: 0in 0in 0pt;"><span style="font-size: 8pt; font-family: Verdana;"><span> </span>//<span> </span>togglePressed<span>   </span>Event handler for any changes to &#8216;value&#8217; property</span></p>
<p class="Code" style="margin: 0in 0in 0pt;"><span style="font-size: 8pt; font-family: Verdana;"> </span></p>
<p class="Code" style="margin: 0in 0in 0pt;"><span style="font-size: 8pt; font-family: Verdana;"><span>  </span>this.controller.setupWidget(&#8217;my-toggle&#8217;,</span></p>
<p class="Code" style="margin: 0in 0in 0pt;"><span style="font-size: 8pt; font-family: Verdana;"><span> </span><span> </span>this.toggle = { property : &#8216;value&#8217; },</span></p>
<p class="Code" style="margin: 0in 0in 0pt;"><span style="font-size: 8pt; font-family: Verdana;"><span>   </span>this.toggleModel = { value : true, disabled : false });</span></p>
<p class="Code" style="margin: 0in 0in 0pt;"><span style="font-size: 8pt; font-family: Verdana;"> </span></p>
<p class="Code" style="margin: 0in 0in 0pt;"><span style="font-size: 8pt; font-family: Verdana;"><span>  </span>this.controller.listen(&#8217;my-toggle&#8217;, Mojo.Event.propertyChange,</span></p>
<p class="Code" style="margin: 0in 0in 0pt;"><span style="font-size: 8pt; font-family: Verdana;"><span>    t</span>his.togglePressed.bindAsEventListener(this)); </span></p>
</div>
<p>This code directs the scene controller to setup <span class="bk_i_red">my-toggle</span> passing a set of attributes, <span class="bk_i_red">toggle</span>, and a data model, <span class="bk_i_red">togglemodel</span>, to use when instantiating the widget and to register the <span class="bk_i_red">togglePressed</span> function for the widget&#8217;s <span class="bk_i_red">propertyChange</span> event. The widget will be instantiated whenever this scene is pushed onto the scene stack.</p>
<p>To override the default style for this widget, you would select <span class="bk_i_red">#my-checkbox</span> in your CSS and apply the desired styling (or use <span class="bk_i_red">.checkbox</span> to override the styling for all checkboxes in your app). For example, to override the default positioning of the toggle button to the right of its label so that it appears to the left of the label:</p>
<div style="border-right: medium none; padding-right: 0in; border-top: medium none; padding-left: 2pt; padding-bottom: 0in; margin-left: 0.25in; border-left: 1pt solid; margin-right: -67.7pt; padding-top: 0in; border-bottom: medium none;">
<p class="Code" style="margin: 0in 0in 0pt;"><span style="font-size: 8pt; font-family: Verdana;">#my-toggle<span>   </span>{<span> </span>float:left;</span></p>
<p class="Code" style="margin: 0in 0in 0pt;"><span style="font-size: 8pt; font-family: Verdana;"><span>        </span>}<span>        </span></span></p>
</div>
<p>There&#8217;s a lot more to come so you shouldn&#8217;t expect to be able to use this to start working with any of these widgets at this point. Chapter 3 and 4 describe each of the widgets and styles in complete detail.</p>
]]></content:encoded>
			<wfw:commentRss>http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Palm webOS: Developing Applications in Javascript Using the Palm Mojo Framework &#8211; Page 6</title>
		<link>http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-6/</link>
		<comments>http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-6/#comments</comments>
		<pubDate>Fri, 08 May 2009 14:32:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Applications]]></category>

		<guid isPermaLink="false">http://pimpmypre.com/?p=112</guid>
		<description><![CDATA[ Stages and Scenes
Palm&#8217;s user experience architecture provides for a greater degree of application scope than is normally considered in a web application. To support this and specific functions of the framework, Palm has introduced a structure for webOS applications built around stages and scenes.
A stage is a declarative HTML structure similar to a conventional [...]]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-6/&amp;t=Palm+webOS%3A+Developing+Applications+in+Javascript+Using+the+Palm+Mojo+Framework+-+Page+6&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><div class="bk_header3">Stages and Scenes</div>
<p>Palm&#8217;s user experience architecture provides for a greater degree of application scope than is normally considered in a web application. To support this and specific functions of the framework, Palm has introduced a structure for webOS applications built around <span class="bk_i_red">stages</span> and <span class="bk_i_red">scenes</span>.</p>
<p>A <span class="bk_i_red">stage</span> is a declarative HTML structure similar to a conventional HTML window or browser tab. Palm webOS applications can have one or more stages, but typically the primary stage will correspond to the application&#8217;s card. Other stages might include a dashboard, or other cards associated with different activities within the application. You should refer back to the earlier example of the Email application where the main card held the Email inbox and another card held a draft Email. Each email card is a separate stage, but part of the same application.</p>
<p><span class="bk_i_red">Scenes</span> are mutually exclusive views of the application within a Stage. Most applications will provide a number of different kinds of scenes within the same stage, but some very simple applications (such as Calculator) will have just a single scene. An application must have at least one scene, supported by a controller, a JavaScript object referred to as a <span class="bk_i_red">scene assistant</span>, and a scene view, a segment of HTML representing the layout of the scene.</p>
<p>Most applications will have multiple scenes. You will need to specifically activate (or <span class="bk_i_red">push</span>) the current scene into the view and <span class="bk_i_red">pop</span> a scene when it&#8217;s no longer needed. Typically, a new scene is pushed after a user action, such as a <span class="bk_i_red">tap</span> on a UI widget and an old scene is popped when the user gestures <span class="bk_i_red">back</span>.</p>
<p>As the terms imply, scenes are managed like a stack with new scenes pushed onto and off of the stack with the last scene on the stack visible in the view. Mojo manages the <span class="bk_i_red">scene stack</span> but you will need to direct the action through provided functions and respond to UI events that trigger scene transitions. Mojo has a number of stageController functions specifically designed to assist you, which you can find in detail in Chapter 2, Application Basics, and Chapter 3, UI Widgets.</p>
<div class="bk_header3">Application Lifecycle</div>
<p>Palm webOS applications are required to use directory and file structure conventions to enable the framework to run the applications without complex configuration files. At the top level the application must have an <span class="bk_i_red">appinfo.json</span> object, providing the framework with the essential information needed to install and load the app. In addition, all applications will have an <span class="bk_i_red">index.html</span> file, an <span class="bk_i_red">icon.png</span> for application&#8217;s Launcher icon, and an <span class="bk_i_red">app</span> folder, which provides a directory structure for <span class="bk_i_red">assistants</span> and <span class="bk_i_red">views</span>.</p>
<p>By convention, if the app has images, other javascript or application-specific CSS, then these should be contained in folders named <span class="bk_i_red">images</span>, <span class="bk_i_red">javascripts</span>, and <span class="bk_i_red">stylesheets</span> respectively. This is not required but makes it simpler to understand the application&#8217;s structure.</p>
<p>Launching a webOS application starts with loading the <span class="bk_i_red">index.html</span> file and any referenced stylesheets and javascript files, as would be done with any web application or web page. However, the framework intervenes after the loading operations and invokes the stage and scene assistants to perform the application&#8217;s setup functions and to activate the first scene. From this point, the application would be driven either by user actions or dynamic data.</p>
<p>Significantly, this organizational model makes it possible for you to build an application that will manage multiple activities, that will be in different states (active, monitoring and background) at the same time.</p>
<p>Applications can range from the simple to the complex:</p>
<ul class="disk">
<li>Single scene apps, such as a Calculator, which the user can launch, interact with and then set aside or close;</li>
<li>Headless apps, such as traffic alert application that only prompts with notifications when there is a traffic event and whose settings are controlled by its dashboard;</li>
<li>Connected apps like a social-networking app, which provides a card for interaction or viewing and a dashboard giving status;</li>
<li>Complex multi-stage apps like Email, which can have an Inbox card, one or more Compose cards, along with a dashboard showing email status. When all the cards are closed, Email will run headless to continue to sync email and post notifications as new emails arrive.</li>
</ul>
<p> </p>
<div class="bk_header3">Events</div>
<p>Palm webOS supports the standard DOM Level 2 event model. For DOM events, you can use conventional techniques to listen for any of the supported events and assign event handlers in either your HTML or JavaScript code.</p>
<p>The UI Widgets have a number of custom events, which are covered in more detail in Chapter 3. For these events you will need to use custom event functions provided within the framework. Mojo events works within the DOM event model but includes support for listening to and generating custom Mojo event types and is more strict with parameters; Mojo checks parameters to confirm that they are properly defined and typed.</p>
<p>The webOS Service functions work a bit differently, with registered callbacks instead of DOM-style events, and are covered starting in Chapter 7. The event-driven model isn&#8217;t conventional to web development, but has been part of modern OS application design and derives from that.</p>
<div class="bk_header3">Storage</div>
<p>Mojo supports the HTML5 database functions directly and provides high-level functions to support simple Create, Read, Update or Delete (CRUD) operations on local databases. Through these Mojo Depot functions, you can create a local database and add, delete or retrieve records individually or as a set. It&#8217;s expected that you&#8217;d use databases for storage of application preferences, or cache data for faster access on application launch or for use when the device is disconnected.</p>
]]></content:encoded>
			<wfw:commentRss>http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Palm webOS: Developing Applications in Javascript Using the Palm Mojo Framework &#8211; Page 5</title>
		<link>http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-5/</link>
		<comments>http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-5/#comments</comments>
		<pubDate>Fri, 08 May 2009 14:31:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Applications]]></category>

		<guid isPermaLink="false">http://pimpmypre.com/?p=110</guid>
		<description><![CDATA[ User Interface Principles
There are some foundational principles or values that support the overall webOS user experience; application designers can exploit these same principles to more deeply integrate the application into the overall device experience and enhance the user&#8217;s experience. Developers can rely on the framework to provide most of what is required at an [...]]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-5/&amp;t=Palm+webOS%3A+Developing+Applications+in+Javascript+Using+the+Palm+Mojo+Framework+-+Page+5&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><div class="bk_header1">User Interface Principles</div>
<p>There are some foundational principles or values that support the overall webOS user experience; application designers can exploit these same principles to more deeply integrate the application into the overall device experience and enhance the user&#8217;s experience. Developers can rely on the framework to provide most of what is required at an implementation level, but the application design should anticipate these needs.</p>
<p>Here are the key principles to keep in mind while designing your application:</p>
<ul class="disk">
<li><span class="bk_i_red">Physical metaphors</span> are reinforced through direct interaction with application objects and features, instant response to actions, followed by smooth display and object transitions with physics-based scrolling and other movement. For example, objects are deleted by flicking off screen and editing is in place without auxiliary dialogs or scenes.</li>
<li>Maintain a <span class="bk_i_red">sense of place</span> with repeatable actions, reversible actions, stable object placement and visual transitions taking the user from one place to the next.</li>
<li>Always display <span class="bk_i_red">up-to-date data</span>, which requires both pushing and pulling the latest data onto the device so that the user is never looking at stale data when more recent data is available. But this also means managing on-device caches so that when the device is out of coverage or otherwise off-line, the user has access to the last data received.</li>
<li>Palm webOS is <span class="bk_i_red">fast and simple</span> to use; all features should be designed for instant response, easy for novices to learn while efficient for experienced users.</li>
<li><span class="bk_i_red">Minimize the steps</span> for all common functions; put frequently executed commands on the screen, the next most frequent under the menus. Avoid preferences and settings where possible and where not, keep them minimal.</li>
<li><span class="bk_i_red">Don&#8217;t block the user</span>; don&#8217;t use a modal control when the same function can be carried out non-modally.</li>
<li><span class="bk_i_red">Be consistent</span>; help the user learn new tasks and features by leveraging what they have already learned.</li>
</ul>
<p>Palm applications have always been built around a direct interaction model, where the user touches the screen to select, navigate, and edit. Palm webOS applications have a significantly expanded vocabulary for interaction, but they start at the same place. Your application design should be strongly centered on direct interaction, with clear and distinguishable targets. The platform will provide physical metaphors through display and navigation, but applications need to extend the metaphor with instantaneous response to user actions, to smoothly transitioning display changes, and object transitions.</p>
<p>You can find a lot more on the user interface guidelines and design information in the Palm webOS SDK under the Design Guide. We&#8217;ll touch on the principles and reference standard style guidelines in the next few chapters, but will not be covering this topic in depth.</p>
<div class="bk_header1">Mojo Application Framework</div>
<p>A webOS application is similar to a web application based on standard HTML, CSS, and JavaScript, but the application lifecycle is different. Applications are run within the UI System Manager, an application runtime built on standard browser technology, to render the display, assist with events, and handle JavaScript.</p>
<p>The webOS APIs are delivered as a JavaScript framework, called Mojo, which supports common application-level functions, UI widgets, access to built-in applications and their data, and native services. To build full-featured webOS applications, many developers will also leverage HTML5 features such as video/audio tagging and database functions. Although not formally part of the framework, the Prototype JavaScript framework is bundled with Mojo to assist with registering for events and DOM handling among many other great features.</p>
<p>The framework provides a specific structure for applications to follow based on the Model-View-Controller (MVC) architectural pattern. This allows for better separation of business logic, data, and presentation. Following the conventions reduces complexity; each component of an application has a defined format and location that the framework knows how to handle by default.</p>
<p>You will get a more extensive overview of Mojo in Chapter 2, and details on widgets, services and styles starting in Chapter 3. For now, you should know that the framework includes:</p>
<ul class="disk">
<li><span class="bk_i_red">Application structure</span><span class="bk_maroon">, such as controllers, views, models, events, storage, notifications, logging and asserts;</span></li>
<li><span class="bk_i_red">UI widgets</span><span class="bk_maroon">, including simple single-function widgets, complex multi-function widgets and integrated media viewers;</span></li>
<li><span class="bk_i_red">Services</span><span class="bk_maroon">, including access to application data and cross-app launching, storage services, location services, cloud services, and accelerometer data;</span></li>
</ul>
<p> </p>
<div class="bk_header2">Anatomy of a webOS Application</div>
<p>Outside of the built-in applications, webOS applications are deployed over the web. They can be found in Palm&#8217;s <span class="bk_i_red">App Catalog</span>, an application distribution service, built into all webOS devices and available to all registered developers. The basic lifecycle stages are illustrated in Figure 1-9.</p>
<div class="bk_figure"><img src="http://developer.palm.com/assets/images/book/palm_0109.png" alt="" /></div>
<div class="bk_i_maroon">Figure 1-9. Application Stages</div>
<p>Downloading an application to the device initiates installation of the app provided that it has been validly signed. After installation the application will appear in the Launcher. If it is a <span class="bk_i_red">headless</span> application, then a card is not required and instead the application can utilize just a dashboard and communicate to the user through notifications. Headless applications typically include a simple card based preferences scene to initiate the application and configure its settings. Note that headless applications require at least one visible stage at all times (either a card, dashboard or alert) to not be shut down.</p>
<p>Other applications are launched from the launcher into the foreground and may be switched between foreground and background by the user. Each of these state changes (launch, deactivate, activate, close) is indicated by one or more events. Applications are able to post notifications and optionally maintain a dashboard while in the background.</p>
<p>Applications are updated periodically by the system. If running, the application is closed, the new version installed, and then it&#8217;s launched. There isn&#8217;t an update event so the app needs to reconcile changes after installation, including data migration or other compatibility needs.</p>
<p>The user can opt to remove an application and its data from the device. When the user attempts to delete an application, the system will stop the application if needed and remove its components from the device. This includes removing it from the launcher and any local application data, plus any data added to the Palm application databases such as Contacts or Calendar data.</p>
]]></content:encoded>
			<wfw:commentRss>http://pimpmypre.com/2009/05/08/palm-webos-developing-applications-in-javascript-using-the-palm-mojo-framework-page-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

