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

<channel>
	<title>HP Palm Developer Blog &#187; Developing with the webOS SDK</title>
	<atom:link href="http://developer.palm.com/category/developing-on-webos/feed/" rel="self" type="application/rss+xml" />
	<link>http://developer.palm.com/blog</link>
	<description>News about developing webOS apps</description>
	<lastBuildDate>Tue, 14 Feb 2012 14:32:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
<!-- podcast_generator="Blubrry PowerPress/2.0.3" -->
	<itunes:summary>News about developing webOS apps</itunes:summary>
	<itunes:author>HP Palm Developer Blog</itunes:author>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://developer.palm.com/blog/wp-content/plugins/powerpress/itunes_default.jpg" />
	<itunes:subtitle>News about developing webOS apps</itunes:subtitle>
	<image>
		<title>HP Palm Developer Blog &#187; Developing with the webOS SDK</title>
		<url>http://developer.palm.com/blog/wp-content/plugins/powerpress/rss_default.jpg</url>
		<link>http://developer.palm.com/blog/category/developing-on-webos/</link>
	</image>
		<item>
		<title>3.0.5 SDK is here!</title>
		<link>http://developer.palm.com/blog/2012/01/3-0-5-sdk-is-here/</link>
		<comments>http://developer.palm.com/blog/2012/01/3-0-5-sdk-is-here/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 18:51:57 +0000</pubDate>
		<dc:creator>Fred Patton</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Developing with the webOS SDK]]></category>

		<guid isPermaLink="false">http://developer.palm.com/blog/?p=5055</guid>
		<description><![CDATA[We have just released webOS 3.0.5 as an over-the-air update for TouchPads, and the 3.0.5 SDK is now out of Early Access. Get the latest and greatest here. Highlights include a new Sensor API, the ability to have plug-ins use both processor cores, and improvements to audio and video playback, plus various updates to Enyo [...]]]></description>
			<content:encoded><![CDATA[<p>We have just released webOS 3.0.5 as an over-the-air update for TouchPads, and the 3.0.5 SDK is now out of Early Access. Get the latest and greatest <a href="https://developer.palm.com/content/resources/develop/sdk_pdk_download.html">here</a>.</p>
<p><a href="https://developer.palm.com/content/api/release-notes/3.0.5-676.html" class="broken_link">Highlights</a> include a new Sensor API, the ability to have plug-ins use both processor cores, and improvements to audio and video playback, plus various updates to Enyo we think you&#8217;ll like. We&#8217;ve also incorporated a homebrew patch to the Bluetooth SPP service to support binary data, so we expect to see some hardware hacks soon. (Hmm—new App Hack theme?)</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://developer.palm.com/blog/2012/01/3-0-5-sdk-is-here/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Weekly App Hack Winner &#8211; Accelerometer Apps</title>
		<link>http://developer.palm.com/blog/2011/10/weekly-app-hack-winner-accelerometer-apps/</link>
		<comments>http://developer.palm.com/blog/2011/10/weekly-app-hack-winner-accelerometer-apps/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 22:35:55 +0000</pubDate>
		<dc:creator>Fred Patton</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Developing with the webOS SDK]]></category>

		<guid isPermaLink="false">http://developer.palm.com/blog/?p=4707</guid>
		<description><![CDATA[Once again, a big thanks to everybody who submitted apps for the Weekly App Hack. This week&#8217;s theme was &#8220;Accelerometer&#8221;, and we received some very interesting entries. It&#8217;s amazing how many different ways you can use such a seemingly simple feature. Without further ado, we are pleased to announce that this week&#8217;s winner of the [...]]]></description>
			<content:encoded><![CDATA[<p>Once again, a big thanks to everybody who submitted apps for the Weekly App Hack. This week&#8217;s theme was &#8220;Accelerometer&#8221;, and we received some very interesting entries. It&#8217;s amazing how many different ways you can use such a seemingly simple feature.</p>
<p>Without further ado, we are pleased to announce that this week&#8217;s winner of the contest and an HP TouchPad is&#8230;</p>
<p><span id="more-4707"></span></p>
<p><strong><a href="http://developer.palm.com/appredirect/?packageid=com.epikwarlord.funwithstreetview">Fun with Street View</a> by Carl McGraw</strong></p>
<p>Pick a starting point in Google Street View, put your virtual car in gear, and start driving. Want to look around on your drive? No problem, just tilt the TouchPad side-to-side. You even get a field-of-view indicator to show you where you are looking in relation to the map. The progression rate is controlled by the selected &#8220;gear&#8221;. Overall, a fantastic revamp of the standard interface. Great job, Carl! We&#8217;ll be in touch about your new TouchPad!</p>
<p><a href="http://developer.palm.com/blog/wp-content/uploads/2011/10/funwithstreetview.png"><img class="aligncenter size-full wp-image-4710" title="funwithstreetview" src="http://developer.palm.com/blog/wp-content/uploads/2011/10/funwithstreetview.png" alt="Fun with street view screen shot" width="512" /></a></p>
<h3>Honorable Mentions</h3>
<p><strong><a href="http://developer.palm.com/appredirect/?packageid=net.ryanwatkins.app.papermache.beta">Paper Maché Beta</a> by Ryan Watkins</strong></p>
<p>You know all about Paper Maché (okay, you may have been living in a cave, but then you wouldn&#8217;t be reading this), and for the App Hack, Ryan has added accelerometer based scrolling. You can scroll up and down an article, or shortcut to the top or bottom. There&#8217;s an option to scroll by page, or flip pages by flipping the device. Nice!</p>
<p><a href="http://developer.palm.com/blog/wp-content/uploads/2011/10/papermachebeta.png"><img class="aligncenter size-full wp-image-4710" title="papermachebeta" src="http://developer.palm.com/blog/wp-content/uploads/2011/10/papermachebeta.png" alt="paper mache beta" width="512" /></a></p>
<p>&nbsp;</p>
<p><strong><a href="http://developer.palm.com/appredirect/?packageid=net.investic.aceleracion">Aceleracion</a> by Karlos Liberal</strong></p>
<p>More of a visual experience than anything, Aceleracion gives us a dynamic field of particles moves around in response to the tilting of the TouchPad. Touching the screen changes the color of the particles. We love interactive art. More!</p>
<p><a href="http://developer.palm.com/blog/wp-content/uploads/2011/10/aceleracion1.png"><img class="aligncenter size-full wp-image-4714" title="aceleracion" src="http://developer.palm.com/blog/wp-content/uploads/2011/10/aceleracion1.png" alt="Acceleration art piece" width="512" /></a></p>
<p>Stay tuned for the winners of the Desktop Accessories App Hack, and keep those entries coming!</p>
]]></content:encoded>
			<wfw:commentRss>http://developer.palm.com/blog/2011/10/weekly-app-hack-winner-accelerometer-apps/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New tutorial: Using 3rd-party Javascript Libraries in Enyo Apps</title>
		<link>http://developer.palm.com/blog/2011/10/new-tutorial-using-3rd-party-javascript-libraries-in-enyo-apps/</link>
		<comments>http://developer.palm.com/blog/2011/10/new-tutorial-using-3rd-party-javascript-libraries-in-enyo-apps/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 16:58:36 +0000</pubDate>
		<dc:creator>Fred Patton</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Developing with the webOS SDK]]></category>

		<guid isPermaLink="false">http://developer.palm.com/blog/?p=4255</guid>
		<description><![CDATA[One benefit of developing for a JavaScript framework like Enyo is being able to take advantage of existing 3rd party JavaScript libraries. Using these add-on libraries allows us to quickly implement tools, controls, and animations to our applications with minimal effort. If you&#8217;ve been wondering how to start using other libraries with Enyo, webOS Developer [...]]]></description>
			<content:encoded><![CDATA[<p>One benefit of developing for a JavaScript framework like Enyo is being able to take advantage of existing 3rd party JavaScript libraries. Using these add-on libraries allows us to quickly implement tools, controls, and animations to our applications with minimal effort.</p>
<p>If you&#8217;ve been wondering how to start using other libraries with Enyo, webOS Developer Relations Engineer Jeremy Thomas has a new tutorial on the Developer Portal just for you. Check it out <a href="https://developer.palm.com/content/resources/develop/using_3rd_party_libraries_in_enyo_apps.html">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://developer.palm.com/blog/2011/10/new-tutorial-using-3rd-party-javascript-libraries-in-enyo-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New tutorial &#8211; Buttons and Interactive Dialogs</title>
		<link>http://developer.palm.com/blog/2011/10/usable-ui/</link>
		<comments>http://developer.palm.com/blog/2011/10/usable-ui/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 16:24:51 +0000</pubDate>
		<dc:creator>Fred Patton</dc:creator>
				<category><![CDATA[Developing with the webOS SDK]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[DevRel Team]]></category>

		<guid isPermaLink="false">http://developer.palm.com/blog/?p=4025</guid>
		<description><![CDATA[Do you have questions about best practices for using buttons in your app? Maybe you&#8217;d like advice on the best way to use buttons in a dialog box. Well, our own Tomomi Imura, webOS Developer Relations&#8217; in-house UI wizard is here to help with her new tutorial, &#8220;Creating Usable UI—Buttons and Interactive Dialogs&#8221;, available now [...]]]></description>
			<content:encoded><![CDATA[<p>Do you have questions about best practices for using buttons in your app? Maybe you&#8217;d like advice on the best way to use buttons in a dialog box. Well, our own Tomomi Imura, webOS Developer Relations&#8217; in-house UI wizard is here to help with her new tutorial, &#8220;Creating Usable UI—Buttons and Interactive Dialogs&#8221;, available now on the webOS Developer Portal. She&#8217;ll walk you through button setup, the proper use of color and text, and how best to use buttons in intuitive, consistent user dialogs.</p>
<p>Consistent user interaction is one of the keys to happy users. So, <a href="https://developer.palm.com/content/resources/develop/creating_usable_ui_buttons_and_interactive_dialogs.html">check out Tomomi&#8217;s tutorial</a> and get coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://developer.palm.com/blog/2011/10/usable-ui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weekly App Hack &#8211; 12-18 October</title>
		<link>http://developer.palm.com/blog/2011/10/weekly-app-hack-12-18-october/</link>
		<comments>http://developer.palm.com/blog/2011/10/weekly-app-hack-12-18-october/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 16:38:22 +0000</pubDate>
		<dc:creator>joshmarinacci</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Developing with the webOS SDK]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://developer.palm.com/blog/?p=4532</guid>
		<description><![CDATA[&#160; The apps are in and judging has begun. We will have the winners of the Text to Speech challenge up in a few days. Thanks to everybody who submitted apps! This week&#8217;s challenge is to do something with Exhibition Mode, one of the most under-appreciated features of webOS. Exhibition mode is a way to [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>The apps are in and judging has begun. We will have the winners of the Text to Speech challenge up in a few days. Thanks to everybody who submitted apps!</p>
<p>This week&#8217;s challenge is to do something with <a href="https://developer.palm.com/content/api/dev-guide/mojo/exhibition.html">Exhibition Mode</a>, one of the most under-appreciated features of webOS.</p>
<p>Exhibition mode is a way to turn your TouchPad into an <a href="http://en.wikipedia.org/wiki/Ambient_device">ambient display</a>. When the user puts their TouchPad onto the TouchStone dock, the device will go into a special mode where a single app is shown and the screen will never turn off.  Exhibition mode apps are used for things the user wants to see in the background rather than something they will focus their attention on.</p>
<p><span id="more-4532"></span></p>
<p>So what is a good use for an ambient display? Lots of things! The classic examples are a clock or a photo slideshow but there is so much more you could do with the concept. What information would be useful if you could glance at it rather than directly interacting with it? How about a realtime weather map? A list of tweets posted to a hashtag during a party?  A music visualizer? A webcam display? How about showing the status of the last 4 builds on your continuous build server? If the build breaks it flashes red and plays an alarm. The possibilities really are endless.</p>
<p>Since we are getting to the holiday season I chose to make a clock that displays the number of days to Christmas, in <em>decimal</em>. And just to make it a bit more fun I added falling snowflakes.  The code was actually quite simple. I used my open source drawing program, <a href="http://leonardosketch.org/">Leonardo Sketch</a>, to  draw the entire interface, then exported it to a webpage using <a href="http://goamino.org/">Amino</a> to draw everything with Canvas. Finally I added the snow and text effects with hand coding. Once I knew it worked in Chrome I just added an <code>appinfo.json</code> file and packaged it up. Nothing special is required; not even Enyo initialization (Amino will do the PalmStage stuff for you).</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" title="test2.png" src="http://developer.palm.com/blog/wp-content/uploads/2011/10/canvastest2.png" border="0" alt="Countdown to Christmas" width="400" height="293" /></p>
<p>Turning Christmas Countdown into an exhibition mode app was really easy.  I just added the line  <code>"dockMode": true</code> to my <code>appinfo.json</code> file. webOS detects this and lets the user choose my app from the Exhibition Mode preferences.  That&#8217;s all there is to it.  <a href="https://developer.palm.com/content/api/dev-guide/mojo/exhibition.html">This page has more</a> on how to use Exhibition mode, including how to tell which way your app is launched.</p>
<p>You can find the source for my at our new App Hack Github repository <a href="https://github.com/palm/Weekly-App-Hack">here</a>. It&#8217;s also available in the catalog <a href="https://developer.palm.com/appredirect/?packageid=com.joshondesign.webos.christmascountdown">here</a>.</p>
<p>You&#8217;ve got one week to make an interesting app that uses Exhibition mode. We can&#8217;t wait to see what you come up with!</p>
<p><strong>The Rules</strong></p>
<p>1) Submit your app based on the sample above to the App Catalog by  October 18th at 11:59pm Pacific Daylight Time. We will be accepting both  new apps as  well as incorporation of the theme into existing apps as  an improvement. A submission to the Beta catalog is acceptable.</p>
<p>2) Notify us that you want to participate in the App Hack by sending  us an email containing your app redirect link (it&#8217;s generated automatically and placed on the app&#8217;s detail page in &#8220;My Apps&#8221;) and any extra information  you want to share with us at <a href="mailto:apphack@palm.com">apphack@palm.com</a>. This is also due by October 18th at 11:59pm Pacific Daylight Time.  If you do not send us this note, your app <strong>will not be considered</strong> for the App Hack.</p>
<p>3) By the end of the day on Friday, October 21st, the Developer  Relations team will  announce the winning app (along with honorable  mentions and other  entrants). The winner will get a blog post dedicated  to him/her and  his/her fantastic app.</p>
<p><strong>Additional terms and conditions</strong><br />
<em> </em></p>
<p><em>NO PURCHASE NECESSARY AND PURCHASE WILL NOT INCREASE CHANCE OF WINNING. OPEN ONLY TO REGISTERED DEVELOPERS.  HP reserves the right to request additional information for consideration. False information disqualifies you and your app from consideration, making it subject to review under applicable laws. Violators may be prosecuted. This offer is void where prohibited or restricted by law. Taxes, if applicable, are winner’s responsibility.  HP employees are not eligible.  Winner may have to sign and return an eligibility and liability release, unless prohibited.  If eligible winner fails to sign and return required documents, prize may be forfeited.  HP is committed to protecting your privacy. Your personal information will not be passed on from HP without your explicit consent.  Visit our Online Privacy Statement to learn how we use automatic data collection tools and your personal information to tailor your communications. Neither party acquires any patent, copyright, mask work or trademark rights during this event. Participation imposes no obligation on either party to purchase, sell, license, transfer or otherwise dispose of any technology, services or products, and does not create any agency or partnership relationship. The terms herein may be added to or modified by HP at any time at its sole discretion. Additional terms and conditions may apply. Entry constitutes agreement to rules and HP’s decisions. Entrants release and hold harmless HP, its subsidiaries, affiliates, and their officers, directors, employees, agents from any claim arising out of entry or prize receipt or use.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://developer.palm.com/blog/2011/10/weekly-app-hack-12-18-october/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Exploring the Enyo Map Control</title>
		<link>http://developer.palm.com/blog/2011/10/exploring-the-enyo-map-control/</link>
		<comments>http://developer.palm.com/blog/2011/10/exploring-the-enyo-map-control/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 18:49:19 +0000</pubDate>
		<dc:creator>Fred Patton</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Developing with the webOS SDK]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://developer.palm.com/blog/?p=4507</guid>
		<description><![CDATA[Have you been wanting to add maps, complete with pushpins and infoboxes to your Enyo-based app? We&#8217;ve added a tutorial from our own Markus Leutwyler (@twtomcat for those following him on Twitter) that shows you all the details. You&#8217;ll find the article on the HP webOS Developer Center here. &#160;]]></description>
			<content:encoded><![CDATA[<p>Have you been wanting to add maps, complete with pushpins and infoboxes to your Enyo-based app? We&#8217;ve added a tutorial from our own Markus Leutwyler (@twtomcat for those following him on Twitter) that shows you all the details.</p>
<p>You&#8217;ll find the article on the HP webOS Developer Center <a href="https://developer.palm.com/content/resources/develop/exploring_the_enyo_map_control.html">here</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://developer.palm.com/blog/2011/10/exploring-the-enyo-map-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weekly App Hack &#8211; October 5-11</title>
		<link>http://developer.palm.com/blog/2011/10/weekly-app-hack-october-5-11/</link>
		<comments>http://developer.palm.com/blog/2011/10/weekly-app-hack-october-5-11/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 15:48:49 +0000</pubDate>
		<dc:creator>joshmarinacci</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Developing with the webOS SDK]]></category>
		<category><![CDATA[Weekly App Hack]]></category>

		<guid isPermaLink="false">http://developer.palm.com/blog/?p=4466</guid>
		<description><![CDATA[As explained in yesterday&#8217;s post, we are starting a weekly App Hack Challenge. Each week we will post a code sample or explain how to use a particular API.  You will have just seven days to use that code or API to build a cool app.  The app doesn&#8217;t have to be huge or complex, [...]]]></description>
			<content:encoded><![CDATA[<p>As explained in <a title="Presenting the webOS Weekly App Hack!" href="http://developer.palm.com/blog/2011/10/presenting-the-webos-weekly-app-hack/">yesterday&#8217;s post</a>, we are starting a weekly App Hack Challenge. Each week we will post a code sample or explain how to use a particular API.  You will have just seven days to use that code or API to build a cool app.  The app doesn&#8217;t have to be huge or complex, just something fun and interesting.  We will be accepting both new apps as well as incorporation of the theme into your existing apps as an improvement.</p>
<p>You have to submit it to the app catalog by October 11th at 11:59pm Pacific Daylight Time to enter. (Submitting to the Beta catalog is fine.) You must then notify us of your entry by email us a link to the app at <a href="mailto:apphack@palm.com">apphack@palm.com</a>.</p>
<p>The developer of the best app will earn a glory and adulation and the right to call themselves an App Hack Ninja. And to kick off the series, this week&#8217;s winner will receive a 32GB TouchPad!</p>
<p><span id="more-4466"></span></p>
<p><strong>This Week&#8217;s Theme</strong></p>
<p>This week&#8217;s theme is Text to Speech, and I have pleasure of presenting you with a sample snippet to get you started. This is the library we&#8217;ll be using: <a href="http://www.speech.cs.cmu.edu/flite/">http://www.speech.cs.cmu.edu/flite/</a>.</p>
<p>I have compiled the open source C based Flite library from CMU for ARM. Then I created a simple PDK hybrid plugin wrapper with a single method: playAudio().  It will play any text you give it using asynthesized robot voice.  All you have to do is include the plugin in your Enyo app and call the right method. Here&#8217;s a quick example:</p>
<pre>enyo.kind({
	name: "TTSTest",
	kind: "VFlexBox",
	components: [
		{
		    kind: enyo.Hybrid,
		    name: "plugin",
		    width: 0,
		    height: 0,
		    executable: "sdltts",
		    takeKeyboardFocus: false,
		    onPluginReady: "handlePluginReady"
		},
		{
		    name: "input",
		    kind: enyo.Input,
		    value:"I'm sorry Dave. I'm afraid I can't do that."
		},
		{
		    kind: enyo.Button,
		    onclick: "handleClick",
		    caption: "Say something",
		}
	],
	pluginReady: false,

	create: function() {
		this.inherited(arguments);
		console.log("in create");
	},
	handleClick: function(inSender) {
	    console.log("clicked");
	    if(this.pluginReady) {
	        var text = this.$.input.getValue();
	        console.log("saying text: " + text);
	        var status = this.$.plugin.callPluginMethod("playAudio",text);
	        console.log("status = " + status);
		}
	},
	handlePluginReady: function(inSender) {
		console.log("plugin initialized");
		this.pluginReady = true;
	},

});</pre>
<p>&nbsp;</p>
<p>The code above creates a Hybrid object with a width and height of 0 so that it won&#8217;t show up on screen. It&#8217;s just audio, no visuals.  Then it calls this.$.plugin.callPluginMethod(&#8220;playAudio&#8221;, some text);whenever you click the button. That&#8217;s all there is to it.</p>
<p>You can download the full app, including the hybrid plugin, <a href="https://developer.palm.com/blog/wp-content/uploads/2011/10/webOSAppHack1.zip">here</a>.</p>
<p>Of course, this app just speaks whatever the user types into a simple text box. I&#8217;m sure you can come up with something far more interesting.</p>
<p>See you next week!</p>
<p>- Josh</p>
<p><strong>The Rules</strong></p>
<p>1) Submit your app based on the sample above to the App Catalog by October 11th at 11:59pm Pacific Daylight Time. We will be accepting both new apps as  well as incorporation of the theme into existing apps as an improvement. A submission to the Beta catalog is acceptable.</p>
<p>2) Notify us that you want to participate in the App Hack by sending us an email containing your app redirect link and any extra information you want to share with us at <a href="mailto:apphack@palm.com">apphack@palm.com</a>. This is also due by October 11th at 11:59pm Pacific Daylight Time.  If you do not send us this note, your app <strong>will not be considered</strong> for the App Hack.</p>
<p>4) By the end of the day on Friday, October 13th, the Developer Relations team will  announce the winning app (along with honorable mentions and other  entrants). The winner will get a blog post dedicated to him/her and  his/her fantastic app.</p>
<p>5) For this first round, the winner (and only the winner) will also  receive a 32GB TouchPad!</p>
<p><strong>Additional terms and conditions</strong><br />
<em>HP reserves the right to request additional information for  consideration. False information disqualifies you and your app from  consideration, making it subject to review under applicable laws.  Violators may be prosecuted. This offer is void where prohibited, taxed  or restricted by law. HP employees are not eligible.</em></p>
<p><em>HP is committed to protecting your privacy. Your personal  information will not be passed on from HP without your explicit consent.</em></p>
<p><em>Neither party acquires any patent, copyright, mask work or  trademark rights during this event. Participation imposes no obligation  on either party to purchase, sell, license, transfer or otherwise  dispose of any technology, services or products, and does not create any  agency or partnership relationship. The terms herein may be added to or  modified by HP at any time at its sole discretion. Additional terms and  conditions may apply.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://developer.palm.com/blog/2011/10/weekly-app-hack-october-5-11/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Presenting the webOS Weekly App Hack!</title>
		<link>http://developer.palm.com/blog/2011/10/presenting-the-webos-weekly-app-hack/</link>
		<comments>http://developer.palm.com/blog/2011/10/presenting-the-webos-weekly-app-hack/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 20:19:33 +0000</pubDate>
		<dc:creator>Fred Patton</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Developing with the webOS SDK]]></category>
		<category><![CDATA[Weekly App Hack]]></category>

		<guid isPermaLink="false">http://developer.palm.com/blog/?p=4452</guid>
		<description><![CDATA[Looking for an opportunity to flex your webOS skills on a new app, but need a bit of inspiration to get your creative juices flowing? We’ve got the answer for you. For the next few weeks, we’re going to hold weekly, virtual, mini-hackathons around some cool aspects of webOS development you may not be familiar [...]]]></description>
			<content:encoded><![CDATA[<p>Looking for an opportunity to flex your webOS skills on a new app, but need a bit of inspiration to get your creative juices flowing? We’ve got the answer for you. For the next few weeks, we’re going to hold weekly, virtual, mini-hackathons around some cool aspects of webOS development you may not be familiar with yet.</p>
<p>Interested? Here’s how it works:</p>
<p><span id="more-4452"></span></p>
<p>1) We announce the theme of the Weekly App Hack on the Developer Relations blog and post a bit of relevant code to help you do something fun and interesting with webOS. This will usually be on a Wednesday.</p>
<p>2)  Start coding! You will have one week from the day we post the App Hack theme to develop your app and submit it to the App Catalog. This will be due 11:59pm California time on the following Tuesday (if the hackathon started on Wednesday). We will be accepting both new apps as well as incorporation of the theme into your existing apps as an improvement.</p>
<p>3) Once you have submitted your app to the app catalog, send an email to apphack@palm.com with your app redirect link and any extra description you want to share with us. This will also be due 11:59pm California time on the following Tuesday (if the hackathon started on Wednesday). Don’t worry, we’ll post the due date and time along with the theme on the Developer Relations blog. Note that you must send us this email for your app to be considered for the hackathon.</p>
<p>4) By the end of the day on Friday, the Developer Relations team will announce the winning app (along with honorable mentions and other entrants). The winner will get a blog post dedicated to him/her and his/her fantastic app. And for this first round, the winner will also receive a 32GB TouchPad!</p>
<p>We have started the webOS Weekly App Hack to encourage our fantastic developer community to think out of the box and develop in some fun and exciting new directions, and to give you a head start by presenting you with new code to work with. We look forward to seeing what comes out of the webOS Weekly App Hack!</p>
<p><strong>Additional terms and conditions</strong><br />
<em>HP reserves the right to request additional information for consideration. False information disqualifies you and your app from consideration, making it subject to review under applicable laws. Violators may be prosecuted. This offer is void where prohibited, taxed or restricted by law. HP employees are not eligible.</em></p>
<p><em>HP is committed to protecting your privacy. Your personal information will not be passed on from HP without your explicit consent.</em></p>
<p><em>Neither party acquires any patent, copyright, mask work or trademark rights during this event. Participation imposes no obligation on either party to purchase, sell, license, transfer or otherwise dispose of any technology, services or products, and does not create any agency or partnership relationship. The terms herein may be added to or modified by HP at any time at its sole discretion. Additional terms and conditions may apply.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://developer.palm.com/blog/2011/10/presenting-the-webos-weekly-app-hack/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Controlling Component Placement in Custom Kinds</title>
		<link>http://developer.palm.com/blog/2011/09/controlling-component-placement-in-custom-kinds/</link>
		<comments>http://developer.palm.com/blog/2011/09/controlling-component-placement-in-custom-kinds/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 14:36:08 +0000</pubDate>
		<dc:creator>sugardave</dc:creator>
				<category><![CDATA[Developing with the webOS SDK]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://developer.palm.com/blog/?p=4051</guid>
		<description><![CDATA[In this article, I want to share how you can help ensure that your custom kind&#8217;s components are contained where you want them to be. Let&#8217;s start with the following example: Here is a kind that is simply a VFlexBox with a Header (for a header), a Scroller (for holding whatever gets added later), and [...]]]></description>
			<content:encoded><![CDATA[<p>In this article, I want to share how you can help ensure that your custom kind&#8217;s components are contained where you want them to be.</p>
<p>Let&#8217;s start with the following example: Here is a kind that is simply a VFlexBox with a Header (for a header), a Scroller (for holding whatever gets added later), and a Toolbar (for a footer):<br />
<span id="more-4051"></span></p>
<pre>enyo.kind({
    name: "MyKind",
    kind: enyo.VFlexBox,
    components: [
        {name: "header", kind: enyo.Header, content: "Header"},
        {name: "scroller", kind: enyo.Scroller, flex: 1},
        {name: "footer", kind: enyo.Toolbar}
    ],
    create: function() {
        this.inherited(arguments);
    }
});</pre>
<p>&nbsp;</p>
<p>And here is an action shot of this kind:</p>
<p>&nbsp;</p>
<p><a href="http://developer.palm.com/blog/wp-content/uploads/2011/08/mykind.png"><img class="alignnone size-full wp-image-4054" src="http://developer.palm.com/blog/wp-content/uploads/2011/08/mykind.png" alt="MyKind in action!" width="1011" height="683" /></a></p>
<p>&nbsp;</p>
<p>Next, let&#8217;s use our new kind and add something to its components block:</p>
<p>&nbsp;</p>
<pre>enyo.kind({
    name: "Display",
    kind: enyo.Control,
    components: [
        {kind: "MyKind", className: "enyo-fit", components: [
            {name: "list", kind: enyo.VirtualRepeater, onSetupRow: "setupRow", components: [
                {kind: enyo.Item, components: [
                    {name: "itemName"}
                ]}
            ]}
        ]}
    ],
    create: function() {
        this.inherited(arguments);
    },
    setupRow: function(inSender, inIndex) {
        if (inIndex &lt; 15) {
            this.$.itemName.setContent("webOS");
            return true;
        }
    }
});</pre>
<p>&nbsp;</p>
<p>Here&#8217;s what you get:</p>
<p><a href="http://developer.palm.com/blog/wp-content/uploads/2011/08/mykind_wrong.png"><img class="alignnone size-full wp-image-4058" src="http://developer.palm.com/blog/wp-content/uploads/2011/08/mykind_wrong.png" alt="Wrong" width="1011" height="684" /></a></p>
<p>Okay, that doesn&#8217;t look right.  First, the repeater is in the wrong place.  It has been rendered <em>below</em> the footer of the kind we wanted to contain it.  Second, it doesn&#8217;t scroll.  Fixing the first issue will fix the second.  The first issue is caused by the fact that any time a component is added to a kind, it is <em>appended</em> to the list of <em>components that already exist</em>.</p>
<p>One option to get around this would be to write some custom methods in MyKind that could be used to populate the Scroller, but it would be a lot easier if you could declare the components block and have it &#8220;just work.&#8221;  </p>
<p>Luckily, there is an easy way to specify where new components should be rendered for a particular kind.  Add a component to your kind with the name <strong>client</strong> and any new components will be appended there.  This should work for any component type, but it is probably a good idea to stick with something like a V/HFlexBox, Scroller, or any other kind designed to hold other components.  In this example, we can just rename the Scroller in MyKind:<br />
&nbsp;</p>
<pre>...
{name: "client", kind: enyo.Scroller, flex: 1},
...</pre>
<p>&nbsp;<br />
Now when the Display kind creates its VirtualRepeater, here is what you will get:</p>
<p><a href="http://developer.palm.com/blog/wp-content/uploads/2011/08/mykind_right.png"><img class="alignnone size-full wp-image-4059" src="http://developer.palm.com/blog/wp-content/uploads/2011/08/mykind_right.png" alt="" width="1012" height="683" /></a></p>
<p>Perfect!  Now anything added to MyKind will go into the Scroller.  Using this feature should enable application developers to gain more control over their custom kinds and how they interact when used in other projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://developer.palm.com/blog/2011/09/controlling-component-placement-in-custom-kinds/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Extending Enyo HTML5 Support</title>
		<link>http://developer.palm.com/blog/2011/09/integrating-html5-features-into-enyo/</link>
		<comments>http://developer.palm.com/blog/2011/09/integrating-html5-features-into-enyo/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 22:12:03 +0000</pubDate>
		<dc:creator>rburdick</dc:creator>
				<category><![CDATA[Developing with the webOS SDK]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://developer.palm.com/blog/?p=4136</guid>
		<description><![CDATA[Developers building applications with webOS 3.0 are enjoying the benefits of the Enyo framework. Enyo is HP&#8217;s JavaScript-based framework for building mobile web applications which abstracts the complexities of building features like web service access, localization and complex user interfaces into mobile applications away from the developer. At the same time, mobile developers are increasingly [...]]]></description>
			<content:encoded><![CDATA[<p>Developers building applications with webOS 3.0 are enjoying the benefits of the Enyo framework.  Enyo is HP&#8217;s JavaScript-based framework for building mobile web applications which abstracts the complexities of building features like web service access, localization and complex user interfaces into mobile applications away from the developer.  At the same time, mobile developers are increasingly using HTML5 specific features like video, audio, canvas, to name a few, in their applications.</p>
<p>Fortunately, webOS is built on a WebKit engine with strong HTML5 support.  HTML5 development for webOS is thus supported by default.  Furthermore, the Enyo framework allows developers to take advantage of these HTML5 features in their webOS applications.  However, not all supported HTML5 elements are wrapped with convenient Enyo kinds “out of the box.”  But it is relatively easy for developers to extend Enyo’s HTML5 support.  In this article we explore how to extend Enyo to integrate HTML5 features that are not part of the Enyo framework.</p>
<p><span id="more-4136"></span></p>
<h3>Sample Application</h3>
<p>&nbsp;<br />
This article demonstrates these concepts by means of a simple Enyo sample application.  The full source can be downloaded from this link:</p>
<p><a href="http://developer.palm.com/blog/wp-content/uploads/2011/08/EnyoCanvas.zip">EnyoCanvas Sample Application Source Code</a></p>
<p>The application looks like this when run on the HP TouchPad:</p>
<div id="attachment_4163" class="wp-caption alignnone" style="width: 394px"><a href="http://developer.palm.com/blog/wp-content/uploads/2011/08/enyocanvas_2011-25-08_1610131.png"><img class="size-full wp-image-4163" src="http://developer.palm.com/blog/wp-content/uploads/2011/08/enyocanvas_2011-25-08_1610131.png" alt="" width="384" height="512" /></a><p class="wp-caption-text">EnyoCanvas Sample Application Screen Shot</p></div>
<h3>HTML5 Specific Enyo Kinds</h3>
<p>&nbsp;<br />
The easiest form of Enyo HTML5 support is those cases where Enyo provides built-in kinds for specific HTML5 features. Two examples of this are the Enyo.Video and the Enyo.Sound kinds, which implement HTML5 video and audio, respectively.  For example, adding HTML5 video to an Enyo application is as simple as adding an Enyo.Video component to your application:<br />
&nbsp;</p>
<pre>   {kind: "Enyo.Video",
    name: "video",
    style:"width:1024px; height:640px;",
    src:'http://.../somevideo.mp4'}</pre>
<p>&nbsp;<br />
In the resulting application, the Enyo.Video instance is rendered as an HTML5  element with the specified properties.<br />
&nbsp;</p>
<h3>What if There Isn&#8217;t a Kind for That?</h3>
<p>&nbsp;<br />
This is all great, but what if you want to integrate an HTML5 feature that doesn&#8217;t have a corresponding kind as part of the Enyo framework?  Fortunately, creating your own custom Enyo kinds to supplement Enyo&#8217;s HTML5 support is easy.  Thanks to the Enyo.DomNode kind, you can create custom kinds that render any HTML5 tag you like.  You can also specify a collection of custom tag properties through the domAttributes property.  Let&#8217;s take a look at how to build a custom Enyo kind to implement an HTML5 feature that is not specifically part of the Enyo framework. In the following example, we&#8217;ll create a simple HTML5 canvas Enyo kind.<br />
&nbsp;</p>
<h4>Implementing an HTML5 Canvas Kind</h4>
<p>&nbsp;<br />
We will define a new Enyo kind called Enyo.CanvasControl, derived from Enyo.Control.  Since Enyo.Control has Enyo.DomNode as a parent in its inheritance hierarchy, Enyo.CanvasControl has nodeTag and domAttributes properties that we can customize.<br />
&nbsp;</p>
<pre>enyo.kind({
   name: "MyApps.CanvasControl",
   kind: "enyo.Control",
   nodeTag: "canvas",
   canvas: "",
   context: "",
   domAttributes: {
      width: window.innerWidth,
      height:"200px"
   }
   ...
};</pre>
<p>&nbsp;<br />
Our kind specifies &#8220;canvas&#8221; as the nodeTag, and sets &#8220;domAttributes&#8221; to a width and height value.  When rendered on my TouchPad, Enyo produces markup with the  tag and those width and height attribute values as follows:</p>
<pre><code>
&lt;canvas width="768" height="200" id="mainView_canvasControl"&gt;
</code></pre>
<p>&nbsp;<br />
At this point, we now have an HTML5 canvas embedded in an Enyo application.  We can do whatever canvas 2D drawing we like now in the context of this application.  A key part of making this happen is overriding the rendered method which is called by the Enyo framework once the underlying DOM element has been created and rendered.<br />
&nbsp;</p>
<pre>rendered: function() {
   this.hasNode();	 //Sets the node property of the rendered DOM node
   this.canvas = this.node;
   this.context = this.canvas.getContext('2d');
   this.drawCanvas();
}</pre>
<p>&nbsp;<br />
This code sets and stores the canvas and 2D context values in our associated CanvasControl properties, canvas and content, for use in other parts of the code.  We then call drawCanvas to perform some 2D graphics.  Specifically, we fill a rectangle with a gradient based on the color selected in the application&#8217;s Enyo based color picker:<br />
&nbsp;</p>
<pre>drawCanvas: function() {
    var gradient = this.context.createLinearGradient(0, 0, this.canvas.width, this.canvas.height);
    gradient.addColorStop(0, "white");
    gradient.addColorStop(1, this.color);
    this.context.fillStyle = gradient;
    this.context.fillRect(0, 0, this.canvas.width, this.canvas.height);
}</pre>
<p>&nbsp;<br />
Nothing fancy, but it gives you the idea of how to bake custom HTML5 features into an Enyo application.<br />
&nbsp;</p>
<h3>Enyo And HTML5 &#8211; Better Together!</h3>
<p>&nbsp;<br />
Not only does this mean that we can now do all kinds of cool HTML5 canvas drawing in the application, but we can integrate Enyo user interface elements into the same application.  Developers can thus build TouchPad style user interfaces into canvas or other HTML5 applications without having to build UI components themselves.</p>
<p>To see how this is done, let&#8217;s take a look at how I embedded an instance of our CanvasControl kind into my application.  This is done in MainView.js:<br />
&nbsp;</p>
<pre>enyo.kind({
   name: "MyApps.MainView",
   kind: "enyo.VFlexBox",
   components:[
      {kind: "PageHeader", components: [
           {content: "Simple HTML5 Canvas + Enyo Demo", flex: 4},
           {kind: "ListSelector", name: "colorPicker", ...}
      ],
      {kind: "MyApps.CanvasControl", name: "canvasControl"},
      {kind: "Button", name: "clearCanvasButton", caption: "Clear Canvas", ...}
   ]
   ...
});</pre>
<p>&nbsp;<br />
From this code snippet, you can see that our custom Canvas kind is integrated with standard Enyo framework UI elements in the same application.<br />
&nbsp;</p>
<h3>Next Steps</h3>
<p>&nbsp;<br />
If you haven’t already, it&#8217;s time to get started with webOS 3.0 and Enyo development by <a href="https://developer.palm.com/content/resources/develop/sdk_pdk_download.html">downloading the webOS 3.0 SDK</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://developer.palm.com/blog/2011/09/integrating-html5-features-into-enyo/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

