<?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>Ajaxian &#187; iPhone</title>
	<atom:link href="http://ajaxian.com/by/topic/iphone/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxian.com</link>
	<description>Cleaning up the web with Ajax</description>
	<lastBuildDate>Thu, 02 Feb 2012 22:23:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
    	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>Smart GWT 2.4 Released</title>
		<link>http://ajaxian.com/archives/smart-gwt-2-4-released</link>
		<comments>http://ajaxian.com/archives/smart-gwt-2-4-released#comments</comments>
		<pubDate>Thu, 13 Jan 2011 17:12:38 +0000</pubDate>
		<dc:creator>Dietrich Kappe</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=10512</guid>
		<description><![CDATA[Smart GWT 2.4 has been released and, as expected, they are jumping on the HTML5 and iOS/Touch bandwagon. The fact that the touch support doesn&#8217;t require code changes for existing apps is most welcome. Also, the mention of the upcoming Smart GWT Mobile with &#8220;pixel perfect iOS look and feel&#8221; sounds intriguing. Many have tried, <a href="http://ajaxian.com/archives/smart-gwt-2-4-released">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://code.google.com/p/smartgwt/logo?cct=1291427501" alt="Smart GWT Logo" style="align:right;padding:10px;" /></p>
<p><a href="http://code.google.com/p/smartgwt/">Smart GWT 2.4</a> has been released and, as expected, they are jumping on the HTML5 and iOS/Touch bandwagon. The fact that the touch support doesn&#8217;t require code changes for existing apps is most welcome. Also, the mention of the upcoming Smart GWT Mobile with &#8220;pixel perfect iOS look and feel&#8221; sounds intriguing. Many have tried, few have succeeded.</p>
<p>From the <a href="http://www.jroller.com/sjivan/entry/smart_gwt_2_4_released">release announcement</a>: </p>
<ul>
<li>GWT 2.1.1 Compatible</li>
<li>Smart GWT QuickStart Guide</li>
<li>Touch &#038; Mobile support : Support for iPhone, iPad and iPod touch devices with no code changes required.</li>
<li>Offline support : The Offline subsystem provides features for storing and retrieving values in persistent browser storage. It is also seamlessly integrated into the normal DataSource request/response cycle. With a single property DataSource.useOfflineStorage you can enable automatic offline caching of recently fetched data so that if a user goes offline they still have access to last data they viewed.</li>
<li>User Defined data highlighting allows users to highlight important or unusual data values in a ListGrid or TreeGrid based on dynamic user defined rules instead of hard coding such logic for background and foreground cell colors within code. A Highlight Editor allows end users to fully configure such highlight rules to customize their view of the data.</li>
<li>Advanced Hover components allows any UI component to be added as a hover, such as a grid, chart or even a layout combining several components when hovering over a ListGrid or TreeGrid row.</li>
<li>Simplicity theme : A new ultralight skin that is easily customizable and virtually image free. This can be viewed by selecting the &#8220;Simplicity&#8221; theme from the dropdown in the Showcase explorer.</li>
<li>IE Performance improvements : Performance improvements have been made across the board but some IE specific performance enhancements have been made and users can expect a significant improvement in responsiveness in IE.</li>
<li>24 hour Calendar support : The Calendar component now supports 24 hour time formatting.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/smart-gwt-2-4-released/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Snow Reports: One app written. Deployed to iPhone, Android, webOS</title>
		<link>http://ajaxian.com/archives/snow-reports-one-app-written-deployed-to-iphone-android-webos</link>
		<comments>http://ajaxian.com/archives/snow-reports-one-app-written-deployed-to-iphone-android-webos#comments</comments>
		<pubDate>Mon, 07 Jun 2010 12:10:27 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[WebOS]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=9517</guid>
		<description><![CDATA[Steve Gill of Nitobi has posted about a PhoneGap application called SnowReports. The application is open source and forkable on GitHub and shows how you can take a mobile Web application and port it between iPhone, Android, and webOS (and PhoneGap itself can even go beyond to other platforms such as Nokia/Blackberry). Steve also put <a href="http://ajaxian.com/archives/snow-reports-one-app-written-deployed-to-iphone-android-webos">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.nitobi.com/steve/?p=23"><img src="http://developer.palm.com/blog/wp-content/uploads/2010/06/snowgap.png" alt="" title="snowgap" width="260" height="390" class="alignnone size-full wp-image-1506" /></a></p>
<p>Steve Gill of Nitobi has <a href="http://blogs.nitobi.com/steve/?p=23">posted about a PhoneGap application called SnowReports</a>. The application is <a href="http://github.com/stevengill/SnowReports">open source and forkable on GitHub</a> and shows how you can take a mobile Web application and port it between iPhone, Android, and webOS (and PhoneGap itself can even go beyond to other platforms such as Nokia/Blackberry).</p>
<p>Steve also put together a screencast that shows porting from iPhone to webOS in 10 minutes (as well as sharing tips and tricks of PhoneGap along the way):</p>
<p><object width="460" height="277"><param name="movie" value="http://www.youtube.com/v/wWoJfQw79XI&#038;color1=0xb1b1b1&#038;color2=0xd0d0d0&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/wWoJfQw79XI&#038;color1=0xb1b1b1&#038;color2=0xd0d0d0&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="460" height="277"></embed></object></p>
<p>If I put my Palm hat on, you may have heard about our <a href="http://palmhotapps.com/">$1M dollar Hot Apps program</a>. It closes out at the end of June, but we have seen good apps rising in the ranks quickly. One recent example is <a href="http://palmhotapps.com/details.jsp?packageid=com.dogood.dropbox">Dropboxify</a>. You still have time to get an application in the running for a decent prize. If you have a PhoneGap app already, then the 10 minutes are surely worth while ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/snow-reports-one-app-written-deployed-to-iphone-android-webos/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Harmony: Canvas Drawing Tool</title>
		<link>http://ajaxian.com/archives/harmony-canvas-drawing-tool</link>
		<comments>http://ajaxian.com/archives/harmony-canvas-drawing-tool#comments</comments>
		<pubDate>Wed, 10 Mar 2010 09:50:44 +0000</pubDate>
		<dc:creator>Michael Mahemoff</dc:creator>
				<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Showcase]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=8702</guid>
		<description><![CDATA[Harmony is a new drawing tool, a HTML5/Canvas experiment with great potential. It provides some unique brush styles, and can produce some great-looking charcoal pencil style sketches, among other things. Better to try it out than explain it in words. Creator Mr. Doob (Richard Cabello) explains how he used Canvas to make it darker the <a href="http://ajaxian.com/archives/harmony-canvas-drawing-tool">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/To1A-EPz79w&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/To1A-EPz79w&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p><a href="http://mrdoob.com/lab/javascript/harmony/">Harmony</a> is a new drawing tool, a HTML5/Canvas experiment with great potential. It provides some unique brush styles, and can produce some great-looking charcoal pencil style sketches, among other things. Better to <a href="http://mrdoob.com/lab/javascript/harmony/">try it out</a> than explain it in words.</p>
<p>Creator Mr. Doob  (Richard Cabello) <a href="http://mrdoob.com/blog/post/689">explains</a> how he used Canvas to make it darker the more you draw over it:</p>
<blockquote><p>
The whole thing is quite modular so I can keep adding more brush styles whenever I get inspired. During the process I found out that, for some reason (apparently lack of hardware acceleration), Firefox and Opera do not support context.globalCompositeOperation = &#8216;darker&#8217;. This was on the HTML5 spec before but got removed. Just so you know what I&#8217;m talking about, this is like the &#8220;multiply&#8221; blending in Photoshop. Webkit does support it tho. I hope they put it back on the specs and all browsers support it.
</p></blockquote>
<p>You can also save images using data URI encoding.</p>
<p>As it works on webkit, he made sure it worked on the mobile Android and iPhone browsers. No multi-touch as yet, but the touch UI still makes a nice input mechanism.</p>
<p><a href="http://mrdoob.com/lab/javascript/harmony/"><img src="http://ajaxian.com/wp-content/images/harmony.jpg" alt="harmony" title="harmony" width="320" height="480" class="alignnone size-full wp-image-8703" /></a></p>
<p>(Thanks <a href="http://twitter.com/FND">FND</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/harmony-canvas-drawing-tool/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mouseovers on Touch Devices</title>
		<link>http://ajaxian.com/archives/mouseovers-on-touch-devices</link>
		<comments>http://ajaxian.com/archives/mouseovers-on-touch-devices#comments</comments>
		<pubDate>Tue, 23 Feb 2010 07:35:29 +0000</pubDate>
		<dc:creator>Michael Mahemoff</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=8642</guid>
		<description><![CDATA[Most of the thinking on iPad&#8217;s exclusion of Flash has been focused on battery life, performance, stability, or control of the application market, but here&#8217;s a Flash developer who&#8217;s thinking differently. Morgan Adams argues it&#8217;s all about the mouseover, and he raises a point that is just as relevant to rich Javascript apps. Many (if <a href="http://ajaxian.com/archives/mouseovers-on-touch-devices">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Most of the thinking on iPad&#8217;s exclusion of Flash has been focused on battery life, performance, stability, or control of the application market, but here&#8217;s <a href="http://www.roughlydrafted.com/2010/02/20/an-adobe-flash-developer-on-why-the-ipad-cant-use-flash/">a Flash developer who&#8217;s thinking differently</a>. Morgan Adams argues it&#8217;s all about the mouseover, and he raises a point that is just as relevant to rich Javascript apps.</p>
<blockquote><p>
Many (if not most) current Flash games, menus, and even video players require a visible mouse pointer. They are coded to rely on the difference between hovering over something (mouseover) vs. actually clicking. This distinction is not rare. It’s pervasive, fundamental to interactive design, and vital to the basic use of Flash content. New Flash content designed just for touchscreens can be done, but people want existing Flash sites to work. All of them—not just some here and there—and in a usable manner. That’s impossible no matter what.<br />
&#8230;.<br />
<strong>Mouseover examples:</strong></p>
<p>* Video players where the controls appear on mouseover and hide otherwise. (This seems to be the norm, in fact. Whereas a click on the same video does something different: usually Pause. Try Hulu for instance.)</p>
<p>* Games where you steer with the mouse without clicking (extremely common).</p>
<p>* Menus that popup up subpage links when you mouse over a main button, vs. going directly to a main category page when you click.<br />
&#8230;.
</p></blockquote>
<p>He claims all the alternatives are unsatisfactory, e.g. re-coding every application manually, introducing gestures, substituting double-clicking for clicking and clicking for mouseovers.</p>
<p>The issues are relevant to Javascript developers; for example, PPK has previously speculated on <a href="http://www.quirksmode.org/blog/archives/2008/08/iphone_events.html">the demise of mouse* events, as well as hover</a> in touch environments. How will that play out with a web app that relies on them?</p>
<p>It&#8217;s a bit like Dion&#8217;s <a href="hhttp://twitter.com/dalmaer/status/8663249663">recent tweet</a>: &#8220;I find myself typing click^H^H^H^H^Htap 20 times a day at the moment. Is there a term that abstractly could mean both? :)&#8221;. We can get away with simple substitutions with straightforward web apps maybe, but it gets a lot more complicated with seriously rich interaction styles, the kind traditionally seen in some Flash games and now possible with Javascript. We tend to think of mobile device design as a matter of massaging the look with some CSS&#8230;the harder part to get right is often the &#8220;feel&#8221; in the look-and-feel equation. Platforms, like the web, which want to support multiple interaction styles, need to provide ways to ease the transition for developers, automating degradation and enhancement in the first instance, but allowing application designers to customise further for each device. <a href="http://www.odannyboy.com/">Dan Saffer</a>&#8216;s sideshow below makes the point well, regarding gesture design in touch devices:</p>
<div style="width:425px;text-align:left" id="__ss_2495091"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/dansaffer/tap-is-the-new-click-2495091" title="Tap is the New Click">Tap is the New Click</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=tapisthenewclick-091113125811-phpapp01&#038;stripped_title=tap-is-the-new-click-2495091" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=tapisthenewclick-091113125811-phpapp01&#038;stripped_title=tap-is-the-new-click-2495091" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/dansaffer">Dan Saffer</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/mouseovers-on-touch-devices/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>PastryKit: An iPhone Webdev Library from &#8230; Apple</title>
		<link>http://ajaxian.com/archives/pastrykit-an-iphone-webdev-library-from-apple</link>
		<comments>http://ajaxian.com/archives/pastrykit-an-iphone-webdev-library-from-apple#comments</comments>
		<pubDate>Wed, 16 Dec 2009 01:31:23 +0000</pubDate>
		<dc:creator>Michael Mahemoff</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Library]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=8283</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://daringfireball.net/2009/12/pastrykit""><img alt="" src="http://img.skitch.com/20091216-r64hkd9dpghwiqd5skh8nq4j73.png" title="pastrykit" class="alignnone" width="287" height="527" /></a></p>
<p>John Gruber <a href="http://daringfireball.net/2009/12/pastrykit">has spotted</a> a library for iPhone web apps, from none other than Apple. This mysterious library, called PastryKit, seems to have flown under the radar as a Google search reveals precious little on it. In similar vein to <a href="http://iphoneized.com/2009/11/18-mobile-frameworks-development-tools-creating-iphone-apps/">other efforts</a>, Apple's library provides support for native-feel websites - websites that run in Mobile Safari, but feel like native apps. (That's the objective anyway; some look-and-feel emulators are "good enough", while others get stuck in the <a href="http://en.wikipedia.org/wiki/Uncanny_valley">uncanny valley</a>).</p>
<p>To get hands-on with PastryKit:</p>
<ul>
<li>Visit <a href="http://help.apple.com/iphone/3/mobile/">http://help.apple.com/iphone/3/mobile/</a> from your iPhone or iPod Touch. This is an official Apple site using PastryKit. If you're feeling lazy/iPhone-challenged, watch <a href="http://daringfireball.net/misc/2009/12/user_guide_demos">Gruber's screencasts</a>.</li>
<li>Now with the same site in regular Safari (on your Mac/PC), open up the Develop Menu (if it's not there, enable it in Preference|Advanced). Choose User Agent &gt; Mobile Safari 3.0 (or probably any other version number). And now you can see it in your browser. From Develop Menu, Web Inspector will let you view the script.
</li>
</ul>
<p>The HTML includes PastryKit as follows:</p>
<div class="igBar"><a href="javascript:showCodeTxt('html-2');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">HTML:</span>
<div id="html-2">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- PastryKit --&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/link.html"><span style="color: #000000; font-weight: bold;">&lt;link</span></a> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">"stylesheet"</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"dist/PastryKit-ug-compact.css"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"dist/PastryKit-ug-compact.js"</span> <span style="color: #000066;">charset</span>=<span style="color: #ff0000;">"utf-8"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p><a href="http://help.apple.com/iphone/3/mobile/dist/PastryKit-ug-compact.js">PastryKit Javascript</a> and <a href="http://help.apple.com/iphone/3/mobile/dist/PastryKit-ug-compact.css">PastryKit CSS</a> are available. Unfortunately, they're a bit <a href="http://ajaxian.com/archives/the-end-of-days-for-view-source">unclear</a> due to compression, but Gruber nonetheless pored into the source:</p>
<blockquote><p>
PastryKit accomplishes all three of the aforementioned things — hiding the MobileSafari address bar, providing fixed-position toolbars, and providing scrolling with momentum — by disabling regular scrolling and setting up its own view hierarchy and implementing its own scrolling.
</p></blockquote>
<p>The whole question of native iPhone apps was a hot topic last month after <a href="http://www.quirksmode.org/blog/archives/2009/11/native_iphone_a.html">PPK whipped up a storm</a> on the question of web apps replacing iPhone apps. The really interesting thing here is Apple's stance. They launched the iPhone with web intended to be the platform for 3rd party apps, then switched over to native apps and haven't done much to facilitate native-style web apps since then. Is a change coming? As Gruber puts it:</p>
<blockquote><p>
The $64,000 question, though, is whether PastryKit is something Apple intends (or that a team within Apple hopes) to ship publicly. It seems like a lot of effort to build a framework this rich just for this iPhone User Guide, so I’m hopeful the answer is yes. Perhaps something integrated with the next major release of Dashcode? And, perhaps with integrated UI layout tools, along the lines of Interface Builder?
</p></blockquote>
</link>
<p>As well as apperaring in the user guide website, Chris Messina noted PastryKit <a href="http://stackoverflow.com/questions/1143589/what-is-the-pastrykit-framework/1425377#1425377">apparently appears in the iTunes LP files</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/pastrykit-an-iphone-webdev-library-from-apple/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Swipe away, then quickly flip with simple jQuery plugins</title>
		<link>http://ajaxian.com/archives/swipe-flip-iphone</link>
		<comments>http://ajaxian.com/archives/swipe-flip-iphone#comments</comments>
		<pubDate>Thu, 16 Jul 2009 11:22:10 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7110</guid>
		<description><![CDATA[Ryan Scherf has created a simple jQuery plugin that "uses Mobile Safari's built in touch events to allow jQuery binding of swipe events to any DOM element. You can override the swipeLeft and swipeRight defaults functions to create your own custom process when the gesture is detected." It can be used as simple as: PLAIN <a href="http://ajaxian.com/archives/swipe-flip-iphone">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ryanscherf.net">Ryan Scherf</a> has <a href="http://plugins.jquery.com/project/swipe">created a simple jQuery plugin</a> that "uses Mobile Safari's built in touch events to allow jQuery binding of swipe events to any DOM element. You can override the swipeLeft and swipeRight defaults functions to create your own custom process when the gesture is detected."</p>
<p>It can be used as simple as:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-4');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-4">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">$<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'.swipe'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">swipe</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;swipeLeft: <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span> $<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'#someDiv'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">fadeIn</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#125;</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;swipeRight: <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span> $<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'#someDiv'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">fadeOut</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#125;</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>You can tweak the threshold for the swipe, and <a href="http://www.ryanscherf.net/demos/swipe/">take a peak at the demo</a> which is shown here:</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/NrXif_Q6QmY&#038;hl=en&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/NrXif_Q6QmY&#038;hl=en&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p><a href="http://jonraasch.com">Jon Raasch</a> has also <a href="http://jonraasch.com/blog/quickflip-2-jquery-plugin">updated his QuickFlip plugin</a> that flips any piece of HTML like a card.  The flip effect is similar to the UI animation on the iPhone, and uses an animation trick that is barely noticeable when fired quickly.</p>
<p>QuickFlip 2 resolves a number of usability and performance issues in<br />
QuickFlip.  The $.quickFlip() function can now be chained from any<br />
jQuery selector, attaching all the styling and markup it needs<br />
automatically.  Additionally a new $.quickFlipper() function makes<br />
triggering the flip effect a piece of cake.  Other than that, minor<br />
bugs have been fixed and performance has been tuned.  </p>
<p>For more info:</p>
<ul>
<li><a href="http://dev.jonraasch.com/quickflip/docs">see the docs</a>
</li>
<li><a href="http://dev.jonraasch.com/quickflip/examples/">check out the examples</a>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/swipe-flip-iphone/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Someone at Apple, please review stance on PhoneGap</title>
		<link>http://ajaxian.com/archives/someone-at-apple-please-review-stance-on-phonegap</link>
		<comments>http://ajaxian.com/archives/someone-at-apple-please-review-stance-on-phonegap#comments</comments>
		<pubDate>Tue, 19 May 2009 02:03:44 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6818</guid>
		<description><![CDATA[We are big fans of PhoneGap, the "open source development tool for building fast, easy mobile apps with JavaScript" including apps that run on the iPhone platform. The PhoneGap team has been winning awards and developers like it. However, we have just heard that some applications using PhoneGap have been targetted by the Apple review <a href="http://ajaxian.com/archives/someone-at-apple-please-review-stance-on-phonegap">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>We are big fans of <a href="http://phonegap.com/">PhoneGap</a>, the "open source development tool for building fast, easy mobile apps with JavaScript" including apps that run on the iPhone platform.</p>
<p>The PhoneGap team has been <a href="http://www.techcrunch.com/2009/04/02/5-startups-take-flight-at-web-20-launchpad/">winning awards</a> and developers like it.</p>
<p>However, we have just heard that <a href="http://blog.nachbaur.com/2009/05/open-letter-to-apple-iphone-developer.html">some applications using PhoneGap</a> have been targetted by the Apple review process:</p>
<blockquote><p>
Upon review of your application,  cannot be posted to the<br />
App Store due to the usage of private API. Usage of such non-public<br />
API, as outlined in the iPhone SDK Agreement section 3.3.2 is<br />
prohibited:</p>
<p>" An Application may not itself install or launch other executable<br />
code by any means, including without limitation through use of a plug-<br />
in architecture, calling other frameworks, other APIs or otherwise.<br />
No interpreted code may be downloaded and used in an Application<br />
except for code that is interpreted and run by Apple's Published APIs<br />
and built-in interpreter(s).</p>
<p>The PhoneGap API implemented in your application is an external<br />
framework.
</p></blockquote>
<p>This is just wrong. They haven't targeted RegexKitLite or Google Toolbox for Mac, or Joe Hewitt's cool new framework. PhoneGap only uses official APIs, so it isn't doing anything wrong there.</p>
<p>You could assume that this is on purpose, to keep people in the Obj-C sandbox. Or, you could consider the fact that the review process is probably manned by a LOT of people who sit there with check lists. I am hoping that someone at Apple gets to see the outcry from developers and steps in to do the right thing, just like they did when Trent Reznor and many others complained about the hypocrisy of his iPhone app not getting in the store.</p>
<p>So, fix it Apple. Please.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/someone-at-apple-please-review-stance-on-phonegap/feed</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>jQTouch: a mobile WebKit JavaScript framework</title>
		<link>http://ajaxian.com/archives/jqtouch-a-mobile-webkit-javascript-framework</link>
		<comments>http://ajaxian.com/archives/jqtouch-a-mobile-webkit-javascript-framework#comments</comments>
		<pubDate>Thu, 26 Mar 2009 09:02:49 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Library]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6432</guid>
		<description><![CDATA[David Kaneda has created jQTouch a "jQuery plugin with native animations, auto list navigation, and default application styles for Mobile WebKit browsers like iPhone, G1, and Pre." Features Setup jQTouch can now be initialized with one function: PLAIN TEXT JAVASCRIPT: &#160; $&#40;document&#41;.jQTouch&#40;&#123; &#160; &#160;icon: 'jqtouch.png', &#160; &#160;statusBar: 'black-translucent' &#125;&#41;; &#160; This function writes all of <a href="http://ajaxian.com/archives/jqtouch-a-mobile-webkit-javascript-framework">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jqtouch.com/"><img src="http://ajaxian.com/wp-content/uploads/jqtouch.png" alt="" title="jqtouch" width="500" height="349" class="alignnone size-full wp-image-6433" /></a></p>
<p>David Kaneda has created <a href="http://www.jqtouch.com/">jQTouch</a> a "jQuery plugin with native animations, auto list navigation, and default application styles for Mobile WebKit browsers like iPhone, G1, and Pre."</p>
<p><b>Features</b></p>
<blockquote><p>
<b>Setup</b></p>
<p>jQTouch can now be initialized with one function:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-8');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-8">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">$<span style="color:#006600; font-weight:bold;">&#40;</span>document<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">jQTouch</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;icon: <span style="color: #3366CC;">'jqtouch.png'</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;statusBar: <span style="color: #3366CC;">'black-translucent'</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>This function writes all of the meta tags needed for an iPhone web app. Here are the default settings:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-9');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-9">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;fullScreen: <span style="color: #003366; font-weight: bold;">true</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;slideInSelector: <span style="color: #3366CC;">'ul li a'</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;backSelector: <span style="color: #3366CC;">'.back'</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;flipSelector: <span style="color: #3366CC;">'.flip'</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;slideUpSelector: <span style="color: #3366CC;">'.slideup'</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;statusBar: <span style="color: #3366CC;">'default'</span>, <span style="color: #009900; font-style: italic;">// options: black-translucent, black</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;icon: <span style="color: #003366; font-weight: bold;">null</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;iconIsGlossy: <span style="color: #003366; font-weight: bold;">false</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;fixedViewport: <span style="color: #003366; font-weight: bold;">true</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p><b>Animations</b></p>
<p>There are now functions for sliding a page up, and "flipping" to a page, using WebKit's built-in 3D capabilities. Both can be <a href="http://www.jqtouch.com/preview/">seen in the new preview</a></p>
<p>These new animations are integrated into the page history, and can be navigated by using the back button.</p>
<p><b>Image Preloading</b></p>
<p>I've added a quick-and-dirty function for preloading images, which you just send as an array. For example:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-10');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-10">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;$.<span style="color: #006600;">preloadImages</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#91;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;<span style="color: #3366CC;">'themes/jqt/img/chevron_white.png'</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;<span style="color: #3366CC;">'themes/jqt/img/bg_row_select.gif'</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;<span style="color: #3366CC;">'themes/jqt/img/back_button.png'</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;<span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;<span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p><b>Minor Improvements</b></p>
<ul>
<li>New HTML structure to ease toolbar button variations and improve animations.
</li>
<li>Various performance improvements
</li>
<li>Added minified code
</li>
<li>Started a custom theme, which will be offered alongside the standard Apple theme
</li>
<li>Created a new Home Screen icon
</li>
<li>Removed some iPhone-dependent code
</li>
</ul>
</blockquote>
<p>David also answered some questions for us:</p>
<p><b>How does it compare to iUI?</b></p>
<p>It is similar in the way it can load views via built-in HTML or dynamic GET/POST requests, but it uses hardware-accelerated animations, and also includes transitions like slide up and 3D page flip. It also includes code for image preloading, a custom theme, and a much easier setup function which eliminates the need to write META tags for the app icon, viewport settings, etc.</p>
<p><b>What kind of extended functionality are you looking into</b></p>
<p>Ultimately, I plan on testing extensively on the G1 and, eventually, the Palm Pre. Other plans include a more robust theming system, and various callback methods to make extending jQTouch even easier.</p>
<p><b>With PhoneGap, would it just be a script that you can get built in?</b></p>
<p>I am currently in talks with the PhoneGap crew, and we are planning on including it stock with the kit. We're currently unsure if the script should be ported to XUI or remain based on jQuery.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/jqtouch-a-mobile-webkit-javascript-framework/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>iPhone 3.0 now with SquirrelFish Extreme?</title>
		<link>http://ajaxian.com/archives/iphone-30-now-with-squirrelfish-extreme</link>
		<comments>http://ajaxian.com/archives/iphone-30-now-with-squirrelfish-extreme#comments</comments>
		<pubDate>Wed, 18 Mar 2009 15:12:38 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[vm]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6365</guid>
		<description><![CDATA[James Churchman did a quick bit of detective work and pointed the iPhone 3.0 simulator on the WebKit detector that we blogged about in the past. The new showed this: Compared to the old version:]]></description>
			<content:encoded><![CDATA[<p>James Churchman did a quick bit of detective work and pointed the iPhone 3.0 simulator on the <a href="http://ajaxian.com/archives/squirreling-out-the-fish-on-the-iphone">WebKit detector</a> that we blogged about in the past.</p>
<p>The new showed this:</p>
<p><img src="http://ajaxian.com/wp-content/uploads/iphone3sim.png" alt="" title="iphone3sim" width="340" height="621" class="alignnone size-full wp-image-6367" /></p>
<p>Compared to the old version:</p>
<p><img src="http://ajaxian.com/wp-content/uploads/iphone2sim.png" alt="" title="iphone2sim" width="340" height="632" class="alignnone size-full wp-image-6366" /></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/iphone-30-now-with-squirrelfish-extreme/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Windows iPhone Simulator</title>
		<link>http://ajaxian.com/archives/windows-iphone-simulator</link>
		<comments>http://ajaxian.com/archives/windows-iphone-simulator#comments</comments>
		<pubDate>Fri, 20 Feb 2009 14:00:41 +0000</pubDate>
		<dc:creator>Ben Galbraith</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6055</guid>
		<description><![CDATA[There's no way to emulate the iPhone on Windows, but Shaun Sullivan has the next best thing: taking a Windows build of WebKit and embedding it inside an iPhone-like Chrome. It's not perfect, but it's as close as Windows users are going to get for now–and is very handy for checking how your site will <a href="http://ajaxian.com/archives/windows-iphone-simulator">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/iphone.jpg" alt="" title="iphone" width="250" height="467" class="alignnone size-full wp-image-6056" /></p>
<p>There's no way to emulate the iPhone on Windows, but Shaun Sullivan has the next best thing: <a href="http://labs.blackbaud.com/NetCommunity/article?artid=662">taking a Windows build of WebKit and embedding it inside an iPhone-like Chrome</a>. It's not perfect, but it's as close as Windows users are going to get for now–and is very handy for checking how your site will likely look (modulo font issues).</p>
<p>He's only tested it on Vista, however.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/windows-iphone-simulator/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>HTML5 Features in latest iPhone; Application Cache and Database</title>
		<link>http://ajaxian.com/archives/html5-features-in-latest-iphone-application-cache-and-database</link>
		<comments>http://ajaxian.com/archives/html5-features-in-latest-iphone-application-cache-and-database#comments</comments>
		<pubDate>Tue, 03 Feb 2009 05:31:36 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5861</guid>
		<description><![CDATA[Brad Neuberg told me about two cool additions to the iPhone that now use HTML5 features: Safari JavaScript Database Programming The HTML 5 specification provides a new mechanism for client-side data storage: JavaScript database support. HTML 5 is currently in development by the Web Hypertext Application Technology Working Group (WHATWG). JavaScript database support is available <a href="http://ajaxian.com/archives/html5-features-in-latest-iphone-application-cache-and-database">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Brad Neuberg told me about two cool additions to the iPhone that now use HTML5 features:</p>
<p><a href="http://developer.apple.com/documentation/iPhone/Conceptual/SafariJSDatabaseGuide/Introduction/chapter_1_section_1.html">Safari JavaScript Database Programming</a></p>
<blockquote><p>
The HTML 5 specification provides a new mechanism for client-side data storage: JavaScript database support. HTML 5 is currently in development by the Web Hypertext Application Technology Working Group (WHATWG).</p>
<p>JavaScript database support is available in Safari 3.1 and later, and in iPhone OS 2.0 and later.</p>
<p>You should read this documentation if you are a web developer who wants to store data locally on a user’s computer in amounts beyond what can reasonably be stored in an HTTP cookie.
</p></blockquote>
<p><a href="http://lists.macosforge.org/pipermail/webkit-dev/2008-September/004987.html">HTML5 Application Cache</a></p>
<blockquote><p>
Michael Nordman of Google asked "Is this stuff built into shipping Safari or iPhone browsers yet?"</p>
<p>David Kilzer replied "This feature shipped with iPhone OS 2.1.  When you use "Add to Home Screen" from the "+" button on Safari for iPhone, a web application with a manifest defined (per the HTML5 spec) will be saved with any cached resources.  Note that the manifest file *must* be served with the correct MIME type for this to work.</p>
<p>There is no shipping version of Safari for Mac OS X or Windows that supports this feature yet."
</p></blockquote>
<p>Fantastic to see!</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/html5-features-in-latest-iphone-application-cache-and-database/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>S5 Presentations with CSS Transitions</title>
		<link>http://ajaxian.com/archives/s5-presentations-with-css-transitions</link>
		<comments>http://ajaxian.com/archives/s5-presentations-with-css-transitions#comments</comments>
		<pubDate>Tue, 02 Dec 2008 10:48:28 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5258</guid>
		<description><![CDATA[Shawn Lauriat hacked CSS Transition support into the presentation app S5. Now he has posted slides from one of his talks that uses the functionality. See how you can add fun (or annoying ;) transitions to your S5 prezos, even on the iPhone:]]></description>
			<content:encoded><![CDATA[<p>Shawn Lauriat hacked <a href="http://www.frozen-o.com/blog/2008/09/s5-with-css-slide-transitions-in-webkit.html">CSS Transition support into the presentation app S5</a>. Now he has <a href="http://www.frozen-o.com/blog/2008/11/enterprise-guts-slides-up-with-css.html">posted slides from one of his talks that uses the functionality</a>.</p>
<p>See how you can add fun (or annoying ;) transitions to your S5 prezos, even on the iPhone:</p>
<p><object width="320" height="256" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab"><param name="src" value="http://frozen-o.com/misc/enterpriseguts/enterprisegutsiphone.mov"></param><param name="autoplay" value="false"></param><param name="controller" value="true"><embed src="http://frozen-o.com/misc/enterpriseguts/enterprisegutsiphone.mov" width="320" height="256" autoplay="false" controller="true" pluginspage="http://www.apple.com/quicktime/download/"></embed></param></object></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/s5-presentations-with-css-transitions/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://frozen-o.com/misc/enterpriseguts/enterprisegutsiphone.mov" length="444276" type="video/quicktime" />
		</item>
		<item>
		<title>Interactive iPhone Console using JSCocoa</title>
		<link>http://ajaxian.com/archives/interactive-iphone-console-using-jscocoa</link>
		<comments>http://ajaxian.com/archives/interactive-iphone-console-using-jscocoa#comments</comments>
		<pubDate>Mon, 24 Nov 2008 11:12:43 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jscocoa]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5198</guid>
		<description><![CDATA[KUMAGAI Kentaro has created a JSCocoa based interactive console for the iPhone: I’ve been struggling with transform property of UIView for long time. at last, I’ve decided to create UIMonkey that allows to manipulate the variables by trial and error through HTTP in Javascript with SpiderMonkey. Few days after I’ve started the project, I found <a href="http://ajaxian.com/archives/interactive-iphone-console-using-jscocoa">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://ido.nu/kuma/2008/11/22/jscocoa-interactive-console-for-iphone/"><img src="http://ajaxian.com/wp-content/uploads/jscocoaconsole.png" alt="" title="jscocoaconsole" width="500" height="292" class="alignnone size-full wp-image-5199" /></a></p>
<p>KUMAGAI Kentaro has created a <a href="http://ido.nu/kuma/2008/11/22/jscocoa-interactive-console-for-iphone/">JSCocoa based interactive console for the iPhone</a>:</p>
<blockquote><p>
I’ve been struggling with transform property of UIView for long time. at last, I’ve decided to create UIMonkey that allows to manipulate the variables by trial and error through HTTP in Javascript with SpiderMonkey. Few days after I’ve started the project, I found JSCocoa through John Resig's article and I abandoned my project and rewrited my codes on JSCocoa.</p>
<p>Now it works on the top of JSCocoa. It’s very helpful while inspecting the hierarchy of the view tree or size of the views etc.
</p></blockquote>
<p>Very cool stuff as you can run code on the fly and see it all change in the emulator. His article explains how you set it up, and gives you some fun examples.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/interactive-iphone-console-using-jscocoa/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone for JavaScript Developers</title>
		<link>http://ajaxian.com/archives/iphone-for-javascript-developers</link>
		<comments>http://ajaxian.com/archives/iphone-for-javascript-developers#comments</comments>
		<pubDate>Fri, 21 Nov 2008 11:23:17 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5164</guid>
		<description><![CDATA[John has done a really good job at wrapping up information on the various options for JavaScript developers on the iPhone platform. He discusses the various approaches: JiggyApp: JiggyApp provides a full API for developing an application - apparently separate from most of the typical APIs. Arguably, though, the code ends up being relatively usable <a href="http://ajaxian.com/archives/iphone-for-javascript-developers">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>John has done a really good job at <a href="http://ejohn.org/blog/iphone-javascript-apps/">wrapping up information on the various options for JavaScript developers on the iPhone platform</a>.</p>
<p>He discusses the various approaches:</p>
<ul>
<li><a href="http://www.jiggyapp.com/">JiggyApp</a>: JiggyApp provides a full API for developing an application - apparently separate from most of the typical APIs. Arguably, though, the code ends up being relatively usable (jailbroken only :(</li>
<li><a href="http://inexdo.com/JSCocoa">JSCocoa</a>: JSCocoa is a full bridge that maps Cocoa development into JavaScript (instead of the typical Objective-C/Cocoa mapping). The result ends up working in both OS X and on the iPhone.</li>
<li><a href="http://phonegap.com/">PhoneGap</a>: PhoneGap is an application that exposes a few JavaScript APIs to pages running MobileSafari. Right now this includes Geolocation and access to the Accelerometer.</li>
<li><a href="http://ejohn.org/files/WebTouch.zip">WebTouch</a>: The other day "Dr Nic" wrote up an article on how he had used a WebKit instance (along with HTML, CSS, and JavaScript) to render a portion of his iPhone application.</li>
</ul>
<p>I was chatting with someone on the PhoneGap team about their Android support. There is a play to be had to enable rich mobile applications all based on the Open Web stack that we know and love :)</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/iphone-for-javascript-developers/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Using UIWebView (WebKit) in your iPhone App</title>
		<link>http://ajaxian.com/archives/using-uiwebview-webkit-in-your-iphone-app</link>
		<comments>http://ajaxian.com/archives/using-uiwebview-webkit-in-your-iphone-app#comments</comments>
		<pubDate>Fri, 14 Nov 2008 13:21:55 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5066</guid>
		<description><![CDATA[Dr Nic has shared his experiences using WebKit to implement part of your iPhone app (in his case SurfView): Negatives - (void)webViewDidFinishLoad:(UIWebView *)webView is slow. "You’re running an interpreter (JavaScript runtime) on top of a device with a small CPU and small memory. Go figure." The JavaScript bridge does not appear to block the main <a href="http://ajaxian.com/archives/using-uiwebview-webkit-in-your-iphone-app">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://img.skitch.com/20081110-189ta9iaubfwxu1hke3r2rhcb.png" style="padding: 8px; float: right;" /></p>
<p>Dr Nic has <a href="http://drnicwilliams.com/2008/11/10/to-webkit-or-not-to-webkit-within-your-iphone-app/">shared his experiences using WebKit to implement part of your iPhone app</a> (in his case <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=295405621&#038;mt=8">SurfView</a>):</p>
<p><b>Negatives</b></p>
<ul>
<li><code>- (void)webViewDidFinishLoad:(UIWebView *)webView</code> is slow. "You’re running an interpreter (JavaScript runtime) on top of a device with a small CPU and small memory. Go figure."</li>
<li>The JavaScript bridge does not appear to block the main thread. This is a good/bad thing. You can invoke JavaScript code within the WebKit via your native Objective-C code.</li>
<li>The JavaScript bridge is one directional. From Objective-C/UIKit you can invoke JavaScript upon the WebKit and henceforth do wonderful things</li>
<li>Multiple languages in one project. Whilst we mainly just wanted to take a static HTML file, and dynamically update various elements with application data (e.g. the surf and weather conditions in the example above), we needed to do that via JavaScript.</li>
</ul>
<p><b>Why you may want to do it</b></p>
<blockquote><p>
WebKit for rapid prototyping: WebKit exists and it is awesome at rendering HTML and CSS, with access to the powerful CSS3 transformations and webkit-specific bonus features.</p>
<p>It is highly likely that your designer can make something beautiful looking in Photoshop and cut it up into HTML + CSS. Comparatively, its highly unlikely they can cut it up into native Objective-C code.</p>
<p>WebKit isn’t the holy grail for non-Objective-C developers, but if your grand-poobar level skills are in JavaScript and HTML, and your Objective-C/iPhone skills are still catching up, then its a wonderful prototyping platform. Especially for static, complicated displays of data. Especially if that data includes HTML content from an external feed which needs to be rendered.</p>
<p>For Oakley’s Surf Report app, Anthony is toying with replacing some of the WebKit usage with native UI elements (normal UITableView with custom UITableViewCells) so that we can get back those precious seconds and give them to the user as a Christmas present.
</p></blockquote>
<p>A very nice read.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/using-uiwebview-webkit-in-your-iphone-app/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>CSS-VFX: CSS Visual Effects Tutorials and Components</title>
		<link>http://ajaxian.com/archives/css-vfx-css-visual-effects-tutorials-and-components</link>
		<comments>http://ajaxian.com/archives/css-vfx-css-visual-effects-tutorials-and-components#comments</comments>
		<pubDate>Fri, 07 Nov 2008 12:00:39 +0000</pubDate>
		<dc:creator>Ben Galbraith</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=4993</guid>
		<description><![CDATA[We've talked a bit about Apple's extensions to HTML and CSS; &#60;canvas&#62; has of course gone on to much fame and fortune. Charles Ying pointed us to his CSS-VFX project which aims to be a collection of components and code examples that illustrate the power of CSS Visual Effects. So far, only 1 gem that <a href="http://ajaxian.com/archives/css-vfx-css-visual-effects-tutorials-and-components">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>We've talked a bit about Apple's extensions to HTML and CSS; &lt;canvas&gt; has of course gone on to much fame and fortune. Charles Ying pointed us to his <a href="http://code.google.com/p/css-vfx/">CSS-VFX</a> project which aims to be</p>
<blockquote><p>
 a collection of components and code examples that illustrate the power of CSS Visual Effects. So far, only 1 gem that illustrates a popular RIA user interface demo, "Cover Flow" is currently available. If you'd like to see more, please don't hesitate to suggest something you'd like to see.
</p></blockquote>
<p>Charles has a <a href="http://www.satine.org/archives/2008/11/06/coverflow-for-safari-on-iphone/">blog entry</a> with a video showing off a mobile Safari demo of using Apple's CSS Visual Effects to create a Cover Flow interface:</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/sHLaHGxIzb4&#038;rel=0&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/sHLaHGxIzb4&#038;rel=0&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>The demo makes use of a variety of these extensions:</p>
<blockquote><p>
    * zflow starts by loading each image from the images array. When each image is loaded, we scale the image to fit in a square region, and apply 3D CSS transforms to scale it in place.<br />
    * Reflections - zflow then takes the scaled image and creates a Canvas element that contains a gradient alpha mask of the image’s reflection (using a “reflect” function to do this) and positions the canvas element in place.<br />
    * Touch Controller - zflow creates a TouchController object, who’s job is to field touch events from Mobile Safari and calculate an appropriate offset.<br />
    * Clicking - zflow detects when no move events have been made, and zooms + rotates the focused image forward by setting a “CSS Transition”ed 3D transform on the focused image. Clicking again transitions the image back.<br />
    * Inertia - zflow achieves inertia by setting the “transition timing function” of the “tray” to an “ease-out” function, which slows things down. On the touch end event, we calculate the projected velocity and set the tray’s target position to that location. CSS Transitions handles the decay in velocity as the transition timing function executes — slowing the tray down gradually.
</p></blockquote>
<p>It makes you wonder how many folks are going to need to learn the SDK in the future...</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/css-vfx-css-visual-effects-tutorials-and-components/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Exclusive iPhone in Action Chapter Downloads</title>
		<link>http://ajaxian.com/archives/exclusive-iphone-in-action-chapter-downloads</link>
		<comments>http://ajaxian.com/archives/exclusive-iphone-in-action-chapter-downloads#comments</comments>
		<pubDate>Thu, 09 Oct 2008 15:26:09 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=4713</guid>
		<description><![CDATA[Now that the NDA has been released, book publishers are finally able to get out their wares. Christopher Allen and Shannon Appelcline have written iPhone in Action, and have kindly given the Ajaxian community free downloads of a couple of the early access chapters: SDK Programming for Web Developers delves into the introduction to Objective-C <a href="http://ajaxian.com/archives/exclusive-iphone-in-action-chapter-downloads">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Now that the NDA has been released, book publishers are finally able to get out their wares. Christopher Allen and Shannon Appelcline have written <a href="http://www.manning.com/callen/">iPhone in Action</a>, and have kindly given the Ajaxian community free downloads of a couple of the early access chapters:</p>
<ul>
<li><a href="http://ajaxian.com/downloads/books/iphoneinaction/08SDKandWeb.pdf">SDK Programming for Web Developers</a> delves into the introduction to Objective-C and MVC</li>
<li><a href="http://ajaxian.com/downloads/books/iphoneinaction/11CreatinginXCode.pdf">Creating a first project in Xcode: Hello,<br />
World!</a> gets you used to the tool chain</li>
</ul>
<p>I hope to see books that focus on what you can do with the Web APIs too of course ;)</p>
<p><em><br />
This article is based on <a href="http://www.manning.com/callen/">iPhone in Action</a>, to be published January 2009. It is being reproduced here by permission from <a href="http://www.manning.com">Manning Publications</a>. Manning early access books and ebooks are sold exclusively through Manning. Visit the book's page for more information.<br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/exclusive-iphone-in-action-chapter-downloads/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone Web Apps running at full screen</title>
		<link>http://ajaxian.com/archives/iphone-full-screen-webapps</link>
		<comments>http://ajaxian.com/archives/iphone-full-screen-webapps#comments</comments>
		<pubDate>Fri, 03 Oct 2008 21:03:28 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=4677</guid>
		<description><![CDATA[I am so happy that the NDA mess is over! Clancy has written about how you can have your iPhone Web app run in full screen and has a demo app that shows it off: PLAIN TEXT HTML: &#160; &#60;meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" /&#62; &#60;meta name="apple-mobile-web-app-capable" content="yes" /&#62; &#60;meta names="apple-mobile-web-app-status-bar-style" content="black-translucent" /&#62; &#160;]]></description>
			<content:encoded><![CDATA[<p>I am so happy that the NDA mess is over! Clancy has written about how you can have your iPhone Web app run in full screen and <a href="http://webapp.net.free.fr/Demo/Index.html">has a demo app</a> that shows it off:</p>
<div class="igBar"><a href="javascript:showCodeTxt('html-12');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">HTML:</span>
<div id="html-12">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/meta.html"><span style="color: #000000; font-weight: bold;">&lt;meta</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"viewport"</span> <span style="color: #000066;">content</span>=<span style="color: #ff0000;">"width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/meta.html"><span style="color: #000000; font-weight: bold;">&lt;meta</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"apple-mobile-web-app-capable"</span> <span style="color: #000066;">content</span>=<span style="color: #ff0000;">"yes"</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/meta.html"><span style="color: #000000; font-weight: bold;">&lt;meta</span></a> names=<span style="color: #ff0000;">"apple-mobile-web-app-status-bar-style"</span> <span style="color: #000066;">content</span>=<span style="color: #ff0000;">"black-translucent"</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p><img src="http://ajaxian.com/wp-content/uploads/fullscreeniphonewebapp.png" alt="" title="Full screen iPhone Web App" width="264" height="395" border="0" /></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/iphone-full-screen-webapps/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>iPhone Safari 3D Navigation Menu</title>
		<link>http://ajaxian.com/archives/iphone-3d-menu</link>
		<comments>http://ajaxian.com/archives/iphone-3d-menu#comments</comments>
		<pubDate>Mon, 29 Sep 2008 11:42:34 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=4621</guid>
		<description><![CDATA[Ben Putman has put together a nice iPhone Safari 3D navigation menu example that shows off the transforms and events available on the latest mobile Safari. Ben told us: In thinking of an interesting test, I've created a menu that you can rotate across a fixed y-axis with touch, allowing you to spin the menu <a href="http://ajaxian.com/archives/iphone-3d-menu">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Ben Putman  has put together a nice <a href="http://benputman.com/iphone_safari_3d_navigation/">iPhone Safari 3D navigation menu</a> example that shows off the transforms and events available on the latest mobile Safari.</p>
<p>Ben told us:</p>
<blockquote><p>
In thinking of an interesting test, I've created a menu that you can rotate across a fixed y-axis with touch, allowing you to spin the menu around and see the depth and back of elements.  There are also some examples of how animations can be used as you click and the menu unfolds.  I also added a lightbox to examine how one might view some photos although it's not really practical in this form.
</p></blockquote>
<p>Open up the <a href="http://benputman.com/iphone/iphone_3d_navagation_example.html">demo in your iPhone / Touch</a> and also take a peak at the source to see what is going on, with snippets like this:</p>
<div class="igBar"><a href="javascript:showCodeTxt('css-14');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">CSS:</span>
<div id="css-14">
<div class="css">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">.second_show <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; -webkit-animation-name: <span style="color: #ff0000;">'second_show'</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; -webkit-animation-duration: 1s;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #a1a100;">@-webkit-keyframes 'second_show' {</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; from <span style="color:#006600; font-weight:bold;">&#123;</span>&nbsp; &nbsp; -webkit-transform: translateZ<span style="color:#006600; font-weight:bold;">&#40;</span>0px<span style="color:#006600; font-weight:bold;">&#41;</span> rotateX<span style="color:#006600; font-weight:bold;">&#40;</span>180deg<span style="color:#006600; font-weight:bold;">&#41;</span>;<span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; to <span style="color:#006600; font-weight:bold;">&#123;</span>&nbsp; &nbsp; -webkit-transform: translateZ<span style="color:#006600; font-weight:bold;">&#40;</span>100px<span style="color:#006600; font-weight:bold;">&#41;</span> rotateX<span style="color:#006600; font-weight:bold;">&#40;</span>0deg<span style="color:#006600; font-weight:bold;">&#41;</span>;<span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">.second_hide <span style="color:#006600; font-weight:bold;">&#123;</span>&nbsp; -webkit-animation-name: <span style="color: #ff0000;">'second_hide'</span>;&nbsp; -webkit-animation-duration: 1s; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #a1a100;">@-webkit-keyframes 'second_hide' {</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; from <span style="color:#006600; font-weight:bold;">&#123;</span>&nbsp; &nbsp; -webkit-transform: translateZ<span style="color:#006600; font-weight:bold;">&#40;</span>100px<span style="color:#006600; font-weight:bold;">&#41;</span> rotateX<span style="color:#006600; font-weight:bold;">&#40;</span>0deg<span style="color:#006600; font-weight:bold;">&#41;</span>;<span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; to <span style="color:#006600; font-weight:bold;">&#123;</span>&nbsp; &nbsp; -webkit-transform: translateZ<span style="color:#006600; font-weight:bold;">&#40;</span>0px<span style="color:#006600; font-weight:bold;">&#41;</span> rotateX<span style="color:#006600; font-weight:bold;">&#40;</span>180deg<span style="color:#006600; font-weight:bold;">&#41;</span>;<span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p><img src="http://benputman.com/wp-content/uploads/2008/09/iphone_gui_2-211x300.jpg" border="0" /></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/iphone-3d-menu/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PhoneGap: &#8220;AIR for the iPhone&#8221;</title>
		<link>http://ajaxian.com/archives/phonegap-air-for-the-iphone</link>
		<comments>http://ajaxian.com/archives/phonegap-air-for-the-iphone#comments</comments>
		<pubDate>Mon, 22 Sep 2008 12:33:34 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=4550</guid>
		<description><![CDATA[Dave Johnson calls PhoneGap "AIR for the iPhone" because this nice little hack, first created at an iPhone BarCamp, wraps the Web view with a container. This container gives the view access to APIs available on the device, that may not be available yet via WebKit alone. AIR provides a similar container for Flash and <a href="http://ajaxian.com/archives/phonegap-air-for-the-iphone">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.nitobi.com/dave/2008/09/18/phonegap-air-for-the-iphone/">Dave Johnson</a> calls <a href="http://phonegap.com/">PhoneGap</a> "AIR for the iPhone" because this nice little hack, first created at an iPhone BarCamp, wraps the Web view with a container. This container gives the view access to APIs available on the device, that may not be available yet via WebKit alone. AIR provides a similar container for Flash and Ajax content on the desktop.</p>
<blockquote><p>
PhoneGap is a free open source development tool and framework that allows web developers to take advantage of the powerful features in the iPhone SDK from HTML and JavaScript. We're trying to make iPhone app development easy and open. For many applications a web application is the way to but in Safari you don't get access to the native iPhone APIs, and the that's the problem we're trying to solve.</p>
<p>It is written in Objective-C and allows developers to embed their web app (HTML, JavaScript, CSS) in Webkit within a native iPhone app. We're big advocates of the Open Web and want JavaScript developers to be able to get access iPhone features such as a spring board icon, background processing, push, geo location, camera, local sqlLite and accelerometers without the burden of learning Objective-C and Cocoa.</p>
<p>PhoneGap also has a web app that allows web developers to quickly package their web app into a native iPhone app by providing a URL, a name and icon graphic the web service with automagically create a native iPhone application. We haven't open sourced that code but we're going to soon.</p>
<p>PhoneGap was conceived at iPhoneDevCamp II by Nitobi developer Brock Whitten, Rob Ellis, freelance designer Colin Toomey and Eric Oesterle.
</p></blockquote>
<p>There are a few APIs available now, and others pending:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-16');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-16">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900; font-style: italic;">// Location API</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900; font-style: italic;">// Feels a little ugly compared to passing in a closure. Using a hard coded name? :)</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; getLocation<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900; font-style: italic;">//GAP will invoke this function once it has the location</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #003366; font-weight: bold;">function</span> gotLocation<span style="color:#006600; font-weight:bold;">&#40;</span>lat,lon<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'lat'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">innerHTML</span> = <span style="color: #3366CC;">"latitude: "</span> + lat;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'lon'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">innerHTML</span> = <span style="color: #3366CC;">"longitude: "</span> + lon;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900; font-style: italic;">// Accelerometer API</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #003366; font-weight: bold;">function</span> updateAccel<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'accel'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">innerHTML</span> = <span style="color: #3366CC;">"accel: "</span> + accelX + <span style="color: #3366CC;">" "</span> + accelY + <span style="color: #3366CC;">" "</span> + accelZ;&nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; setTimeout<span style="color:#006600; font-weight:bold;">&#40;</span>updateAccel,<span style="color:#800000;">100</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900; font-style: italic;">// Camera (pending)</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #003366; font-weight: bold;">function</span> takePhoto<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> photo = gap:takePhoto<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> photo;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900; font-style: italic;">// Vibration (pending)</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #003366; font-weight: bold;">function</span> vibrate<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; gap:vibrate<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>You can take a peak at the open source code on github. For example, <a href="http://github.com/sintaxi/gap/tree/master/Classes/Location.m">here is the code</a> that wraps the iPhone location service:</p>
<p>[c]<br />
@implementation Location</p>
<p>- (id)init{<br />
  NSLog(@"Gap::Location");<br />
  locationManager = [[CLLocationManager alloc] init];<br />
  [locationManager setDelegate:self];<br />
  return self;<br />
}</p>
<p>+ (void)startTracking{<br />
  NSLog(@"starting location tracker");<br />
  [locationManager startUpdatingLocation];<br />
}</p>
<p>+ (void)stopTracking{<br />
  NSLog(@"stopping location tracker");<br />
  [locationManager stopUpdatingLocation];<br />
}</p>
<p>- (void)location{<br />
  NSLog(@"location is");<br />
}</p>
<p>- (void)log{<br />
  NSLog(@"the location is...");<br />
}</p>
<p>- (void)dealloc {<br />
    [locationManager release];<br />
  [super dealloc];<br />
}</p>
<p>@end<br />
[/c]</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/phonegap-air-for-the-iphone/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

