<?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; Mobile</title>
	<atom:link href="http://ajaxian.com/by/topic/mobile/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxian.com</link>
	<description>Cleaning up the web with Ajax</description>
	<lastBuildDate>Fri, 19 Mar 2010 16:23:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>A Better Mobile Web; What else?</title>
		<link>http://ajaxian.com/archives/a-better-mobile-web-what-else</link>
		<comments>http://ajaxian.com/archives/a-better-mobile-web-what-else#comments</comments>
		<pubDate>Mon, 15 Mar 2010 15:41:13 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=8725</guid>
		<description><![CDATA[Cedric Dugas feels so passionate about fixed positioning in WebKit that he created A Better Mobile Web to talk about it:

The Problem
It is impossible to have an element fixed in CSS on the page in the mobile Webkit browser. When you are surfing the web on your phone, webkit opens the page completely and acts [...]]]></description>
			<content:encoded><![CDATA[<p>Cedric Dugas feels so passionate about fixed positioning in WebKit that he created <a href="http://www.abettermobileweb.com/">A Better Mobile Web</a> to talk about it:</p>
<blockquote><p>
<b>The Problem</b></p>
<p>It is impossible to have an element fixed in CSS on the page in the mobile Webkit browser. When you are surfing the web on your phone, webkit opens the page completely and acts as a viewport.</p>
<p>&#8220;Imagine a book in front of you. Take a piece of paper, cut a 320*416 square in it, and lay it over the book. To read the book, move the paper around and position the hole over the words you want to see.&#8221; -Richard Herrera</p>
<p><b>Why it is important</b></p>
<p>To create better mobile applications and websites, we need fixed positionning to give the user better tools to browse the web on handled devices. Like a real mobile app, we could have a fixed toolbar when scrolling on a site, it is critical to not take the user in hostage in very long list or on long content pages. This is something we can&#8217;t really emulate in javascript as mobile devices are not really powerful.</p>
<p><b>The solution</b></p>
<p>The Webkit team could give us a proprietary CSS property that would overwrite the viewport behavior, and this is the proposition here. Give us a CSS property like position: -webkit-viewport-fixed that we can apply on a div so it can be fixed to the viewport.
</p></blockquote>
<p>That is one feature request, but surely there we can add to that? The broad domain of &#8220;abettermobileweb.com&#8221; deserves more!</p>
<p>What would you like to see for mobile specifically that isn&#8217;t covered in the current Web and device API standard work?</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/a-better-mobile-web-what-else/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Are you feeling touchy?</title>
		<link>http://ajaxian.com/archives/feeling-touchy</link>
		<comments>http://ajaxian.com/archives/feeling-touchy#comments</comments>
		<pubDate>Thu, 25 Feb 2010 10:20:34 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=8654</guid>
		<description><![CDATA[Reposted from my personal blog where I tinker with the Web. I tweet about this stuff here.
As you move to a new platform, it is interesting to watch your brain morph over time. I remember switching from Windows to Mac. At first the fonts looked blurry and weird. The mouse pointer didn&#8217;t weight right. The [...]]]></description>
			<content:encoded><![CDATA[<p><em>Reposted from <a href="http://almaer.com/blog/feeling-touchy-learning-how-to-build-great-touch-ui">my personal blog</a> where I tinker with the Web. I tweet about this stuff <a href="http://twitter.com/dalmaer">here</a>.</em></p>
<p>As you move to a new platform, it is interesting to watch your brain morph over time. I remember switching from Windows to Mac. At first the fonts looked blurry and weird. The mouse pointer didn&#8217;t weight right. The constant app menu was strange. There were things I liked about it right away, but they were mostly the fact that I had a command line, and the fact that apps were minimal, pretty, and useful.</p>
<p>Over time though, I grew to like the Mac more and more. A few months in and it was the Windows fonts that looked too sharp and weird.</p>
<p>I am going through the same experience with webOS and the iPhone. It took me awhile to get used to the back gesture on webOS and not look for a back button. Now I know how to organize my multiple windows, and use universal search as my quicksilver, and so much more. When I open up my iPhone now I am at the point where I try to do a back gesture by mistake. webOS is a touchier, needier device, and as I develop apps and play with the platform, I start to grok that more and more.</p>
<p><b>Embrace the touch</b></p>
<p>I discussed <a href="http://almaer.com/blog/touching-horizontalscroll">touching and horizontal scrolling</a> awhile back, but the more I play with touch devices, the more I find myself wanting to build features for the touch. I have a ton of learning, but here are some of the lessons so far:</p>
<p><b>Native UI or Immersive UI</b></p>
<p>One decision that you have to make when you start building your application is the style of UI. Do you want a native looking UI for the given platform?</p>
<p><img src="http://almaer.com/blog/uploads/native-immersive-ui.png" alt="native-immersive-ui" title="native-immersive-ui" width="480" height="360" class="alignnone size-full wp-image-2632"/></p>
<p>Everyone jumped on native off the bat. We quickly saw libraries such as iUI come out that let you mimic the iPhone UI. Having a native UI can be important. You want to fit in. However, we have also seen the growth of immersive UIs. Convertbot is the example above on the right. It is task based and you feel like you are really interacting with the app. It is almost tactile.</p>
<p><img src="http://almaer.com/blog/uploads/gmail-nativemail.png" alt="gmail-nativemail" title="gmail-nativemail" width="480" height="322" class="alignnone size-full wp-image-2633" /></p>
<p>It is interesting to compare the Gmail and native Mail client UI in webOS. The Gmail version is deployed via a website, whereas the native version is of course an application, but they are very similar. Both use HTML/JS/CSS. Both have their look and feels. Do you try to look like your website (e.g. Google look and feel), or do you try to go fully native. The blending of the two gets interesting. Your brand has to live in another native world.</p>
<p><b>Haptics and touch feedback</b></p>
<p>It is usability 101 to make sure that you are always giving users feedback on their actions.</p>
<p>First, how do we signal to users that there are particular touch areas? This one is a bit of an art. We don&#8217;t really have <code>:hover</code> and the like. I actually like the idea of having a long press show helpful information, but users aren&#8217;t used to using that ability yet (see: need more gestures!).</p>
<p>Where we do have touch areas, we need to make sure to have various depress states for the touch.</p>
<p>Users will touch all over the app, so think about what you can do where.</p>
<p>We are going to see haptics in the future. For now it feels like haptics are used like this:</p>
<p><img src="http://almaer.com/blog/uploads/james-haptics-robot.jpg" alt="james-haptics-robot" title="james-haptics-robot" width="320" height="427" class="alignnone size-full wp-image-2634"/></p>
<p>But the science is coming along. Sony Ericcson has a device (Satio) with haptic support for example:</p>
<p><img src="http://almaer.com/blog/uploads/sony-satio-haptickeyboard.jpg" alt="sony-satio-haptickeyboard" title="sony-satio-haptickeyboard" width="480" height="359" class="alignnone size-full wp-image-2635"/></p>
<p><b>Using the Keyboard: Software or hardware</b></p>
<p>This brings us to keyboards. What is the optimal input for your application use cases.</p>
<p><img src="http://almaer.com/blog/uploads/keyboards.png" alt="keyboards" title="keyboards" width="480" height="360" class="alignnone size-full wp-image-2636"/></p>
<p>Feathers by Aral Balkan is a good example of both the task based nature of mobile apps, and custom software input. I like how Aral thought to create an app that solely creates Twitter messages. He didn&#8217;t create a full Twitter client that would do it all.</p>
<p>And if you have the pleasure of a hardware keyboard, how can you use that beyond the obvious inputting of text fields. The beauty of a keyboard that come out is that it doesn&#8217;t take away space from the screen. Could you offer short cut keys in the app? Different navigation? There is a lot more to explore here.</p>
<p><b>Gestures. Time to catalog and create new standards</b></p>
<p><img src="http://almaer.com/blog/uploads/gestures1.png" alt="gestures" title="gestures" width="480" height="360" class="alignnone size-full wp-image-2637"/></p>
<p>We are seeing more and more gestures in applications. It feels like we are building out the standards right now. What will be the Ctrl-C&#8217;s of mobile? We get to build out invisible ways to navigate.</p>
<p>Tweetie 2 did something interesting when it threw away the refresh button and replaced it with the pull down. Isn&#8217;t it more work? Some people don&#8217;t like it (Jimmy Fallon for one!) but a lot of people find it more gratifying because it is more natural. We have buttons in the real world, but the apes in us are more used to touching the world around us in very different ways? This is one example of going back to our roots.</p>
<p><img src="http://almaer.com/blog/uploads/shake.png" alt="shake" title="shake" width="240" height="360" class="alignnone size-full wp-image-2638"/></p>
<p>Speaking of reload, we are seeing another common gesture here too. Using &#8220;shake&#8221; to reload, or relayout.</p>
<p><b>Orientation: Try to accept them, and be more creative</b></p>
<p><img src="http://almaer.com/blog/uploads/orientation.png" alt="orientation" title="orientation" width="480" height="303" class="alignnone size-full wp-image-2639"/></p>
<p>Have you ever turned your device on its side and not seen anything happen? That frustrates me. At the least, we need to rotate the UI and let it continue. But, can we go beyond that? I have been playing with this. What if landscape brings a more immersive experience?</p>
<p>Take an app that loads a stream (e.g. Facebook, FriendFeed, Twitter, whatever). In landscape, you can view one entry at a time. If the type of entry contains a photo album say, take over the full screen to show the photos and let you flick through.</p>
<p>It really is fun to play with touch apps these days, and I get the feeling that we are still in the dark ages wrt our interaction models.</p>
<p>What patterns have you enjoyed in using and building mobile apps?</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/feeling-touchy/feed</wfw:commentRss>
		<slash:comments>5</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[Library]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[iPhone]]></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>16</slash:comments>
		</item>
		<item>
		<title>PhoneGap Updated to Support Palm webOS Apps</title>
		<link>http://ajaxian.com/archives/phonegap-updated-to-support-palm-webos-apps</link>
		<comments>http://ajaxian.com/archives/phonegap-updated-to-support-palm-webos-apps#comments</comments>
		<pubDate>Tue, 08 Dec 2009 12:00:40 +0000</pubDate>
		<dc:creator>Rey Bango</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=8156</guid>
		<description><![CDATA[The PhoneGapteam announced yesterday that they've got support for Palm's webOS Mojo API. 
PhoneGap API’s available to Palm devices include geolocation, accelerometer, notification, orientation, sms, telephony, network, file (read only), and a limited selection of device properties (see the PhoneGap Mobile Spec running on the Palm Emulator to the left).
Essentially a JavaScript shim that maps [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://phonegap.com/">PhoneGap</a>team <a href="http://blogs.nitobi.com/ryan/index.php/2009/12/07/phonegap-palm-now-availableg/">announced yesterday</a> that they've got support for Palm's webOS Mojo API. </p>
<blockquote><p>PhoneGap API’s available to Palm devices include geolocation, accelerometer, notification, orientation, sms, telephony, network, file (read only), and a limited selection of device properties (see the PhoneGap Mobile Spec running on the Palm Emulator to the left).</p></blockquote>
<p>Essentially a JavaScript shim that maps to the various mobile APIs, the PhoneGap API &#038; suite of tools makes it much easier to build mobile apps for the iPhone, Google Android and various versions of Blackberry by leveraging standard web-based technologies. You can now add Palm to the list of mobile devices being supported by the PhoneGap project.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/phonegap-updated-to-support-palm-webos-apps/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Full Frontal &#8216;09: PPK on Mobile Quirks and Practices</title>
		<link>http://ajaxian.com/archives/full-frontal-09-ppk-on-mobile-quirks-and-practices</link>
		<comments>http://ajaxian.com/archives/full-frontal-09-ppk-on-mobile-quirks-and-practices#comments</comments>
		<pubDate>Fri, 20 Nov 2009 12:58:38 +0000</pubDate>
		<dc:creator>Michael Mahemoff</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7968</guid>
		<description><![CDATA[PPK talks up the excitement of mobile web development, then brings the mood down a notch by listing the overwhelming array of browsers to be targeted! Quirksmode says it all. This talk is about quirks in mobile development, and some of the solutions out there.
Mobile CSS Quirks
So many platforms. Take just WebKit; there's iPhone Safari, [...]]]></description>
			<content:encoded><![CDATA[<p>PPK talks up the excitement of mobile web development, then brings the mood down a notch by listing the overwhelming array of browsers to be targeted! <a href="http://quirksmode.org/m/table.html">Quirksmode says it all</a>. This talk is about quirks in mobile development, and some of the solutions out there.</p>
<h3>Mobile CSS Quirks</h3>
<p>So many platforms. Take just WebKit; there's iPhone Safari, Android WebKit, Bolt, Iris, different versions, etc.  "If someone says my 'app should work in WebKit', laugh in their face. There are just too many versions of WebKit, so as PPK says it, there really is no "WebKit for mobile".</p>
<p>That said, it's good that things are starting to converge towards WebKit. As for the others: Blackberry browser "is dead" as they'll be switching to WebKit; Mozilla is very late to the game; NetFront "is not very good". Windows Mobile 6.5 is a big improvement on 6.1, and with an improved browser, but it's still IE6 based. ('Nuff said.) </p>
<p>There's also a large legacy share, and if users are used to it already, that may be what they want to keep using.</p>
<p>Landscape versus profile mode is an interesting one for those of us desktop developers whose users don't flip their heads around on a regular basis. NetFront has some very surprising and idiosyncratic ways of dealing with it.</p>
<p>The modes don't stop there. There is also mobile versus desktop mode in some browsers; sometimes users can switch these in some obscure corner of their mobile browser preferences. Again, some surprising things happen in Opera and Android. Perhaps of more concern is the difficulty he had diagnosing the situation at first, when Android was showing three divs of the same width in one mode, and not in the other.</p>
<h3>@media to the Rescue</h3>
<p>Okay, what can we do about all this? <a href="http://www.w3.org/TR/css3-mediaqueries/">Media queries</a> are extremely useful and fairly well supported in modern mobile browsers.</p>
<div class="igBar"><a href="javascript:showCodeTxt('css-4');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">CSS:</span>
<div id="css-4">
<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;">div<span style="color: #6666ff;">.sidebar </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; <span style="color: #000000; font-weight: bold;">width</span>: 300px;</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: #000000; font-weight: bold;">float</span>: <span style="color: #000000; font-weight: bold;">right</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></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;">@media all and (max-width: 400px) {</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<span style="color: #6666ff;">.sidebar </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: #000000; font-weight: bold;">width</span>: <span style="color: #993333;">auto</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: #000000; font-weight: bold;">float</span>: <span style="color: #993333;">none</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;"><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><tt>max-width</tt> and <tt>min-width</tt> have subtle issues which PPK is currently researching, but <tt>max-device-width</tt> and <tt>min-device-width</tt> give more reliable results. <tt>orientation</tt>, <tt>aspect-ratio</tt>, and <tt>dpi</tt> (also needs research).</p>
<h3>Mobile Javascript</h3>
<p>Performance-wise, IE Mobile and Blackberry extremely slow. iPhone is middle ground. The really fast browsers are Opera on Samsung and N97, and S60 on Nokia E71 and N97. The bottom line is take your time with mobile Javascript development; you generally can't expect it to "just work"; you'll have to optimise. Also, don't use iframes - they're major performance hogs.</p>
<h3>Mobile Connections</h3>
<p>Tempting fate, PPK informs us that if someone in the room starts downloading movies, the network gets slower for the rest of us.</p>
<p>Fortunately, browsers give us events to determine when user is going online and offline. Unfortunately, they're doing it wrong. Only Firefox automatically detects offline; all the others require the user to explicitly say "I'm offline now"!</p>
<h3>W3C Widgets</h3>
<p>In general mobile development, best practice is to put all the core files on the moble phone, and only download the data. But how can we do that with web apps, where the code comes down with the data? <a href="http://www.quirksmode.org/blog/archives/2009/04/introduction_to.html">W3C widgets offer a solution</a>. You just create a single HTML page with the CSS, Javascript, and images you need; add an icon and config; zip it up; and deploy. PPK reports it works in practice, and works in a "write once, run many" fashion. There are still problems to be sure, but he says it's the best interoperable solution we have today. But still many outstanding platforms: Blackberry (already talking about it), Nokia Maemo, Palm Pre, Android, and of course, iPhone.</p>
<h3>Device APIs</h3>
<p>Security risks mean critical device APIs will generally remain off limits to general websites for a while. Widgets have a better model, because they're more self-contained and can be verified, although not perfect either.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/full-frontal-09-ppk-on-mobile-quirks-and-practices/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WebOS Developer Event &#8211; Roundup</title>
		<link>http://ajaxian.com/archives/webos-developer-event-roundup</link>
		<comments>http://ajaxian.com/archives/webos-developer-event-roundup#comments</comments>
		<pubDate>Tue, 03 Nov 2009 20:01:49 +0000</pubDate>
		<dc:creator>Michael Mahemoff</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7844</guid>
		<description><![CDATA[Editor's Note:
Michael did a great job jotting down notes at our developer event in London, and we appreciate him taking the time to do a writeup. Some of the notes have been taken out of context, so we wanted to clarify: We started with a talk on the the future of the mobile Web. This [...]]]></description>
			<content:encoded><![CDATA[<p><b>Editor's Note:</b><em><br />
Michael did a great job jotting down notes at our developer event in London, and we appreciate him taking the time to do a writeup. Some of the notes have been taken out of context, so we wanted to clarify: We started with a talk on the the future of the mobile Web. This talked about the potential of the Web as the platform for devices, and why we were excited to join Palm.<br />
We don't comment on our specific SDK plans, and while we are personally excited about the Web gaining GPU acceleration via technologies like WebGL and CSS Transforms, and we would like to see webOS gain these capabilities to allow web developers to better leverage our fantastic hardware, we were answering a question about our personal opinion on what we'd like to see happen to the platform. We don't believe the term "immediate" was even mentioned by us, and we are sorry that people have read too much into this particular topic.<br />
</em></p>
<p><a href="http://developer.palm.com/"><img alt="" src="http://www.omio.com/blog/wp-content/palm-pre-webos.jpg" title="Palm Pre" class="alignnone" width="300" height="385" /></a></p>
<p>Ben and Dion have just wrapped up a <a href="http://developer.palm.com/">WebOS</a> talk in London, in conjunction with O2 Litmus. They explained why Palm is using the web as an application platform (might be preaching to the converted on this website!) and covered some of the development issues.</p>
<h3>Embracing The Web</h3>
<p>Ben and Dion open by discussing a panel Ben was on some years ago with Dave Thomas. Ben answered rich UIs as the most important trend, but Dave held up his mobile and said this is the future of software. And (according to Ben) Dave has been vindicated. Today, we have many, many, devices, and it's tricky for us to target them as both developers (technically) and businesses (commercially).</p>
<p>But what's interesting is the web browsers that have snuck into many of these platforms. The Ajax revolution changed the game for the first time, where you could build real-world web apps. (screenshots: GMail, GMaps, GOffice, Bespin, 280slides.) It's only happening just now, and pretty soon, the web will be a great place not just from portability of the code, but portability of the distribution mechanism.</p>
<p>Tools like Fluid, Mozilla Prism, give us a specialised browser for a web app. On the other end of the spectrum, we have tools like Adobe Air and Appcelerator Titanium that let developers build full-fledged desktop applications.</p>
<p>But why the web? How about other technologies like Silverlight and Flash? Well, the browser really hasn't changed that much (Netscape screenshot). But underneath, the engine has changed dramatically. We're going from the hacky world of the first browsers to one where developers will benefit greatly from the Javascript engines, renderers, and APIs available to us.</p>
<p>For example, with canvas, the ability to do dynamic graphics (nice demos). Likewise, SVGs. Custom typography; Firefox is rolling out support for even obscure features of fonts. Later in the presentation, Ben demonstrates further capabilities: OpenGL and 3D CSS transformations (<a href="http://www.satine.org/research/webkit/snowleopard/snowstack.html">more nice demos</a>); what Ben calls "the final frontier" of visual interfaces.</p>
<p>Faster Javascript engines are more than just increased performance. As Steven Levy points out, when you increase something's performance by an order of magnitude, you haven't just increased the performance; you've created something new. So we have generational garbage collection, for example, which is a sign of the virtual machines maturing and becoming much faster.</p>
<p>Related to JavaScript speed is threading. We don't have threads and given opinions of the creator of JavaScript, probably never will. But "browsers now have something that's even better than threads": web workers. It's used in different ways; for example, Chrome extensions can run in their own process this way. Another example is running a database server like SQLite in a separate process.</p>
<p>So does the web have the capabilities for today's and tomorrow's applicatons? There's a huge user base and a huge developer based - more developers than any other platform. Some people still think of JavaScript as a toy, but when they get into it, they often realize it's actually quite good, and it's not JavaScript they don't like, but things like browser incompatibilities that are troublesome.</p>
<h3>Development Details</h3>
<p>Web developers can use the Mojo framework, which provides simple Prototype based APIs. Notifications are HTML controls themselves, so you can put whatever HTML you want inside it. Security-wise, applications can get different powers</p>
<p>Palm wants to sell phones, not proprietary APIs, so it's involved with BONDI and W3C widgets standardisation efforts. One of the things they need to know from us (the developer community) "Palm pays us, but they didn't pay us enough to sell out"; Ben and Dion are developers and they're not going to tell other developers use "our funny proprietary API, you'll love it". However, they can't say when all this will happen, as they're evolving the platform pragmatically and they feel other things might have more immediate impact, e.g. OpenGL support.</p>
<p>The web distribution model is simple - user surfs to a URL! But many people actually want a catalogue, and in fact some app catalogues are becoming spam catalogues. Some even boast about how many apps there are in the catalogue, Ben notes with a wink at the big I. With Palm, developers pay $50 and it helps to avoid the problem. There will be one catalogue, but developers can control which markets they're selling in, and get useful analytics and feeds about its usage. Wanting to reduce the friction for people to buy an app, so would consider (although nothing definite) carrier billing and affiliate links.</p>
<h3>Q&#038;A</h3>
<p>The developer portal is currently being overhauled. Under consideration are ways to make things more transparent, e.g. bug tracking and planned features.</p>
<p>Ben and Dion anticipate that developers will probably be able to opt in to JavaScript obfuscation (or some other form of obfuscation). As Dion explains, View Source has been really important on the web, so there's a tension and it's likely multiple options will be available.</p>
<p>On ease of use, multitasking has been great; UI latency is still an issue even though the hardware is comparable to 3GS. The problem is the path to the GPU didn't exist, but now with CSS transforms, that will be solved in the future. As far as screen size, where Pixi broke the mold 4 months after the Pre, this happy world of coding to the same screen size on mobiles is going. Ben says it would have been easier for Palm if it wasn't the first phone to break the mould, but reality is the mobile space will break out to big screens, phones, etc etc, so it won't be one fixed resolution or even aspect ratio.</p>
<p>There will be lots of new tools for developing with and they'll be able to work with WebKit. Ben and Dion (not speaking for Palm, they're sure to add) are open to the thought of embracing Flash for native apps and keen to hear people's thoughts on it.</p>
<p>The open source question ... will Palm open source WebOS. Ben says "we (Ben and Dion) would love to do it", but it's not Android working to thousands of phones and it still has to be considered.</p>
<p><strong>Update:</strong> Turned out attendees scored free Pre's after the event. Thanks fellas :).</p>
<p>Announcement from <a href="http://www.o2litmus.co.uk">O2 Litmus guys</a>.</p>
<p>Developer mail to devrel@palm.com.</p>
<p>Event hashtag: <a href="http://search.twitter.com/search?q=%23o2palm">#o2palm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/webos-developer-event-roundup/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mobile WebKit Compatibility</title>
		<link>http://ajaxian.com/archives/mobile-webkit-compatibility</link>
		<comments>http://ajaxian.com/archives/mobile-webkit-compatibility#comments</comments>
		<pubDate>Tue, 13 Oct 2009 11:51:10 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7609</guid>
		<description><![CDATA[PPK has cried "There is no WebKit on mobile!" as he posts new compatibility tables that test WebKit across desktop and mobile:

I compare 19 WebKits in order to prove that there is no “WebKit on Mobile” and to figure out which one is the best. My hope is that eventually I’m going to gain some [...]]]></description>
			<content:encoded><![CDATA[<p>PPK has cried "There is no WebKit on mobile!" as he <a href="http://www.quirksmode.org/webkit.html">posts new compatibility tables</a> that test WebKit across desktop and mobile:</p>
<blockquote><p>
I compare 19 WebKits in order to prove that there is no “WebKit on Mobile” and to figure out which one is the best. My hope is that eventually I’m going to gain some insight in the “family tree” of all WebKits.</p>
<p>This page only contains tests of CSS and JavaScript items that work in some WebKits but not in all. Adding more items, all of which are either supported by all or by none of the WebKits, makes no sense — it’s in the items in the table below that the differences between the 19 tested WebKits lie.</p>
<p>I will probably add some HTML5 items to this list later on, provided they’re supported by at least one WebKit (probably Safari or Chrome).</p>
<p>These tests focus solely on compatibility. I say nothing about performance or user interface, and especially on mobile these factors may, in the short run, be more important than compatibility.
</p></blockquote>
<p><img src="http://ajaxian.com/wp-content/images/webkitcompattests.png" alt="webkitcompattests" title="webkitcompattests" width="500" class="alignnone size-full wp-image-7610" /></p>
<p>Alex Russell <a href="http://alex.dojotoolkit.org/2009/10/webkit-mobile-and-progress/">responded to the concern</a> that we are in a world of hurt with multiple browsers on mobile just like we are on the desktop. Alex thinks that the core notion of timeliness matters here:</p>
<blockquote><p>
I’m not convinced that the situation is nearly that bad.</p>
<p>The data doesn’t reflect how fast the mobile market changes. The traditional difference between mobile and desktop, after all, has been that mobile is moving at all. If you figure a conservative 24 month average replacement cycle for smartphones, then the entire market for browsers turns over every two years. And that’s the historical view. An increasing percentage of smartphone owners now receive regular software updates that provide new browsers even faster. What matters then is how old the WebKit version in a particular firmware is and how prevalant that firmware is in the real world. As usual, distribution and market share are what matters in determining real-world compatibility, and if that’s a constantly changing secnario, the data should at least reflect how things are changing.
</p></blockquote>
<p>He uses his own charts to make the comparison :)</p>
<p><img src="http://ajaxian.com/wp-content/images/alexrussellbrowserchart.png" alt="alexrussellbrowserchart" title="alexrussellbrowserchart" width="463" height="627" class="alignnone size-full wp-image-7611" /></p>
<p>What have you found?</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/mobile-webkit-compatibility/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Gmail Mobile team talks Latency and Code Loading</title>
		<link>http://ajaxian.com/archives/gmail-mobile-latency</link>
		<comments>http://ajaxian.com/archives/gmail-mobile-latency#comments</comments>
		<pubDate>Tue, 22 Sep 2009 11:09:43 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Tip]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7404</guid>
		<description><![CDATA[Bikin Chiu of the Gmail Mobile team picks up the HTML5 series with a piece on reducing startup latency.
It starts off by talking about lazily loading code via the old favorites of adding a &#60;script&#62; to the DOM, or XHR+eval, but then it gets beyond the typical and discusses the nuance of mobile + offline [...]]]></description>
			<content:encoded><![CDATA[<p>Bikin Chiu of the Gmail Mobile team picks up the HTML5 series with a piece on <a href="http://googlecode.blogspot.com/2009/09/gmail-for-mobile-html5-series-reducing.html">reducing startup latency</a>.</p>
<p>It starts off by talking about lazily loading code via the old favorites of adding a &lt;script&gt; to the DOM, or XHR+eval, but then it gets beyond the typical and discusses the nuance of mobile + offline caching. The hack that is used, is another oldie.... which is to hide the script and eval it later:</p>
<blockquote><p>
For an HTML 5 application that takes advantage of the application cache to reduce startup latency and to serve the application offline, there are a few caveats one should be aware of. Mobile networks have decent bandwidth, but poor round trip latency, so listing each module as a separate resource in the manifest incurs quite a bit of extra startup latency when the application cache is empty. Also, if one of the module resources fails to be downloaded by the application cache (e.g. disconnected from network), additional error handling code needs to be written to handle such a case. Finally, applications today have no control when the application cache decides to download the resources in the manifest (such a feature is not defined in the current specification of the draft standard). Typically, resources are downloaded once the main page is loaded, but that's not an ideal time since that's when the application requests user data.</p>
<p>To work-around these caveats, we found a trick that allows you to bundle all of your modules into a single resource without having to parse any of the JavaScript. Of course, with this strategy, there is greater latency with the initial download of the single resource (since it has all your JavaScript modules), but once the resource is stored in the browser's application cache, this issue becomes much less of a factor.</p>
<p>To combine all modules into a single resource, we wrote each module into a separate script tag and hid the code inside a comment block (/* */). When the resource first loads, none of the code is parsed since it is commented out. To load a module, find the DOM element for the corresponding script tag, strip out the comment block, and eval() the code. If the web app supports XHTML, this trick is even more elegant as the modules can be hidden inside a CDATA tag instead of a script tag. An added bonus is the ability to lazy load your modules synchronously since there's no longer a need to fetch the modules asynchronously over the network.</p>
<p>On an iPhone 2.2 device, 200k of JavaScript held within a block comment adds 240ms during page load, whereas 200k of JavaScript that is parsed during page load added 2600 ms. That's more than a 10x reduction in startup latency by eliminating 200k of unneeded JavaScript during page load! Take a look at the code sample below to see how this is done. </p>
<div class="igBar"><a href="javascript:showCodeTxt('html-6');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">HTML:</span>
<div id="html-6">
<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/script.html"><span style="color: #000000; font-weight: bold;">&lt;script</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"lazy"</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;">// Make sure you strip out (or replace) comment blocks in your JavaScript first.</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">/*</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;">JavaScript of lazy module</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">*/</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;"><span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span></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;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">&lt;script&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; function lazyLoad() {</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; var lazyElement = document.getElementById('lazy');</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; var lazyElementBody = lazyElement.innerHTML;</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; var jsCode = stripOutCommentBlock(lazyElementBody);</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; eval(jsCode);</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;"><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>In the future, we hope that the HTML5 standard will allow more control over when the application cache should download resources in the manifest, since using comments to pass along code is not elegant but worked nicely for us.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/gmail-mobile-latency/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>jQTouch releases new version of mobile goodness</title>
		<link>http://ajaxian.com/archives/jqtouch-releases-new-version-of-mobile-goodness</link>
		<comments>http://ajaxian.com/archives/jqtouch-releases-new-version-of-mobile-goodness#comments</comments>
		<pubDate>Mon, 31 Aug 2009 16:24:34 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7319</guid>
		<description><![CDATA[We posted on jQTouch, the jQuery based iUI-esque toolkit that David Kaneda created.
Today they have released a new version which improves on their extensible system with:

Improved 3D flip transition

Callback events throughout for page transitions, swipe events, and orientation changes

Included demos: Clock, To-do, Main functional demo

Theming: Currently has Apple and jQTouch theme (gray)


Read more about getting [...]]]></description>
			<content:encoded><![CDATA[<p>We posted on <a href="http://ajaxian.com/archives/jqtouch-a-mobile-webkit-javascript-framework">jQTouch</a>, the jQuery based iUI-esque toolkit that <a href="http://www.davidkaneda.com">David Kaneda</a> created.</p>
<p>Today they have released a new version which improves on their extensible system with:</p>
<ul>
<li>Improved 3D flip transition
</li>
<li>Callback events throughout for page transitions, swipe events, and orientation changes
</li>
<li>Included demos: Clock, To-do, <a href="http://jqtouch.com/preview/demos/main/#home">Main functional demo</a>
</li>
<li>Theming: Currently has Apple and jQTouch theme (gray)
</li>
</ul>
<p>Read more about <a href="http://code.google.com/p/jqtouch/wiki/GettingStarted">getting started</a> and <a href="http://code.google.com/p/jqtouch/wiki/CallbackEvents">the callback API</a>.</p>
<p><a href="http://ajaxian.com/wp-content/uploads/jqtouchbeta.png"><img src="http://ajaxian.com/wp-content/uploads/jqtouchbeta.png" alt="" title="jqtouchbeta" width="500" height="297" class="alignnone size-full wp-image-7320" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/jqtouch-releases-new-version-of-mobile-goodness/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>iPhone 3GS runs faster than claims, if you go by SunSpider</title>
		<link>http://ajaxian.com/archives/iphone-3gs-runs-faster-than-claims-if-you-go-by-sunspider</link>
		<comments>http://ajaxian.com/archives/iphone-3gs-runs-faster-than-claims-if-you-go-by-sunspider#comments</comments>
		<pubDate>Wed, 24 Jun 2009 20:03:36 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7006</guid>
		<description><![CDATA[Rana Sobhany of Medialets has posted on Sun Spider benchmarks of the iPhone 3GS as well as other devices which shows off the performance angle of 3GS:

The WebKit Open Source Project provides a JavaScript test Suite dubbed SunSpider. According to the description on the SunSpider home page, “this benchmark tests the core JavaScript language only, [...]]]></description>
			<content:encoded><![CDATA[<p>Rana Sobhany of Medialets has posted on <a href="http://www.medialets.com/blog/2009/06/24/speed-test-iphone-3gs-even-faster-than-apple-claims/">Sun Spider benchmarks of the iPhone 3GS</a> as well as other devices which shows off the performance angle of 3GS:</p>
<blockquote><p>
The WebKit Open Source Project provides a JavaScript test Suite dubbed SunSpider. According to the description on the SunSpider home page, “this benchmark tests the core JavaScript language only, not the DOM or other browser APIs. It is designed to compare different versions of the same browser, and different browsers to each other.” We at Medialets have found it to be one of the best attempts to measure real world JavaScript performance in a balanced and statistically sound way.</p>
<p>Medialets ran the SunSpider test suite in the following environments:</p>
<ol>
<li>Safari 4.0.1 on a 2.0 GHz Intel Core 2 Duo White MacBook.
</li>
<li>The MacBook results were used as a baseline for relative comparisons.
</li>
<li>Mobile Safari on the iPhone 3G with iPhone OS v2.2.1
</li>
<li>Mobile Safari on the iPhone 3G with iPhone OS v3.0
</li>
<li>Mobile Safari on the iPhone 3GS with iPhone OS v3.0
</li>
<li>The “Browser” app on the T-Mobile G1 with Android OS v1.5 (Cupcake)
</li>
<li>The “Web” app on the Palm Pre with Web OS v1.0.2
</li>
</ol>
<p>Each device was fully restored and rebooted immediately before running the test suite. Every attempt was made to assure that no atypical background tasks were executing while the tests were running. The SunSpider tests automatically run five times sequentially and the mean average from all five tests are reported. Network speed and latency have no effect on the results of the test.
</p></blockquote>
<p>We all know to beware of benchmarks, but it does show off how powerful these devices are getting!</p>
<p><img src="http://www.medialets.com/blog/wp-content/uploads/2009/06/sunspider-benchmarking-tests-2009-06-22.png" width="500" /></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/iphone-3gs-runs-faster-than-claims-if-you-go-by-sunspider/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Titanium gets hardened with new beta that features Mobile and more</title>
		<link>http://ajaxian.com/archives/titanium-gets-hardened-with-new-beta-that-features-mobile-and-more</link>
		<comments>http://ajaxian.com/archives/titanium-gets-hardened-with-new-beta-that-features-mobile-and-more#comments</comments>
		<pubDate>Tue, 09 Jun 2009 10:16:52 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Appcelerator]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6905</guid>
		<description><![CDATA[Appcelerator has announced a Titanium beta that adds to their desktop vision with new APIs and developer tool but also allows you to create mobile applications using HTML/CSS/JavaScript (and in fact Ruby, Python, ...) that run on iPhone and Android.
You can take a look at what it takes to develop for desktop and mobile in [...]]]></description>
			<content:encoded><![CDATA[<p>Appcelerator has announced <a href="http://www.appcelerator.com/2009/06/titanium-beta/">a Titanium beta</a> that adds to their desktop vision with new APIs and developer tool but also allows you to create mobile applications using HTML/CSS/JavaScript (and in fact Ruby, Python, ...) that run on iPhone and Android.</p>
<p>You can take a look at what it takes to develop for desktop and mobile in this screencast from Kevin Whinnery:</p>
<p><object width="480" height="276"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5067085&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=01AAEA&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5067085&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=01AAEA&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="480" height="276"></embed></object></p>
<p>I instantly thought of <a href="http://phonegap.com/">PhoneGap</a> and asked Jeff Haynie about the differences. It appears that Titanium Mobile handles the device mapping in a different way. Instead of focusing just on device APIs and giving developers access to those APIs via JavaScript, it goes a little further. The Titanium tool will compile down your code and you will see that native widgets will be used in places. As the mobile version moves forward, they expect to do more of that kind of work, so instead of a WebView + APIs, you have native where you can, and WebView where you can't.</p>
<p>From watching the Titanium Developer tool at work, you can quickly see that it is nicely taking care of you, the Web developer, as you go through the process of dealing with phones. Dealing with the SDKs from Apple and Android can be messy business and the tool really tries to make it much more seamless. The same can be said for the packaging and deployment process.</p>
<p>It is great to see yet another product that comes along to help Web developers take their existing skills and have them work on mobile platforms. Personally, the thought of going to Objective-C land isn't a pleasant one for me, so this and PhoneGap make total sense. If other platforms such as Android and hopefully webOS catch on, then it will make even more sense to go cross platform. Who better to write code on difference devices that Web devs since we have to deal with it every day ;)</p>
<p>Need a visual builder? You could take the upcoming 280 Atlas, use Interface Builder or Atlas itself, and deploy your app to the phone. Great times for the Web platform.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/titanium-gets-hardened-with-new-beta-that-features-mobile-and-more/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google talking about HTML 5 and the Mobile Web</title>
		<link>http://ajaxian.com/archives/google-talking-about-html-5-and-the-mobile-web</link>
		<comments>http://ajaxian.com/archives/google-talking-about-html-5-and-the-mobile-web#comments</comments>
		<pubDate>Wed, 08 Apr 2009 12:20:20 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6529</guid>
		<description><![CDATA[The Google Mobile folks talked about the new Gmail Mobile launch that uses HTML 5 technology to speed up the experience, and work offline.

On the developer side of the house we get to see a little teaser of what the team will be sharing with us:

Of course we didn't get there without a few hard [...]]]></description>
			<content:encoded><![CDATA[<p>The Google Mobile folks <a href="http://googlemobile.blogspot.com/2009/04/gmail-gets-new-engine-for-iphone-and.html">talked about the new Gmail Mobile launch</a> that uses HTML 5 technology to speed up the experience, and work offline.</p>
<p><img src="http://2.bp.blogspot.com/_4GHuwMk1foo/Sdt-aCZMAkI/AAAAAAAAAUU/MXepcqwBHvw/s400/gmailpost.jpg"/></p>
<p>On the <a href="http://google-code-updates.blogspot.com/2009/04/html5-and-webkit-pave-way-for-mobile.html">developer side of the house</a> we get to see a little teaser of what the team will be sharing with us:</p>
<blockquote><p>
Of course we didn't get there without a few hard knocks. As an evolving standard, HTML5 has been fast-changing target and we've skinned our knees and bruised ourselves along the way. So rather than just deliver the fruit of all those bumps and scratches to end users in our own products, we decided we wanted to write a few blog posts to share what we've learned so that others can take advantage of HTML5 as well.
</p></blockquote>
<p>Great to see the mobile Web continue to merge as just One Web, and I look forward to hearing from the trenches on issues the team ran into, so we can learn from them.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/google-talking-about-html-5-and-the-mobile-web/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Palm Pre at Web 2.0 Expo</title>
		<link>http://ajaxian.com/archives/palm-pre-at-web-20-expo</link>
		<comments>http://ajaxian.com/archives/palm-pre-at-web-20-expo#comments</comments>
		<pubDate>Thu, 02 Apr 2009 05:30:23 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[palm]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6474</guid>
		<description><![CDATA[Close to 5pm, and you started to see a huge snaky line making its way to the keynote area where Palm was about to have a reception and short announcement. People were jazzed to hear more about the Pre, and Michael Abbott was there to open up access to developers:

Today, Palm expanded the Mojo SDK [...]]]></description>
			<content:encoded><![CDATA[<p>Close to 5pm, and you started to see a huge snaky line making its way to the keynote area where Palm was about to have a reception and short announcement. People were jazzed to hear more about the Pre, and Michael Abbott was there to <a href="http://blog.palm.com/palm/2009/04/the-webos-developer-community-leaps-ahead.html">open up access to developers</a>:</p>
<blockquote><p>
<a href="http://investor.palm.com/releasedetail.cfm?ReleaseID=374872">Today</a>, Palm expanded the Mojo SDK program for webOS, announcing that a broad group of developers will be provided with the software development kit to create applications for the Palm Pre phone (as well as other future devices running webOS).</p>
<p>Speaking at the Web 2.0 Expo, Palm’s senior vice president of Applications Software and Services Michael Abbott also highlighted some of the most <a href="http://investor.palm.com/releasedetail.cfm?ReleaseID=374872">exciting aspects</a> of webOS -- including a new branded service that lets developers create apps that push live content across the Internet -- and invited the audience to apply for the <a href="http://developer.palm.com/">early access program</a> at the Palm Developer Network website.
</p>
<p>The power of webOS lets developers rethink how they develop for mobile devices -- and creates opportunities for new kinds of apps. Abbott highlighted several key features of webOS that open up new avenues for the creative ingenuity of the developer community: </p>
<ul>
<li>a cards metaphor that simplifies multi-tasking </li>
<li>Palm Synergy to unify information from sources like Google, Facebook, and Exchange </li>
<li>a user-friendly approach to notifications that ensures the user is up to date without distracting them from the task at hand.&nbsp;</li>
</ul>
<p>An often-overlooked aspect of webOS is that Web applications run natively on the phone. They don’t depend on access to a server, and can run even when there is no access to the Internet. But the full power of webOS is unleashed when the device works together with “the cloud” – the combination of all of the Web sites and services that a user interacts with.</p>
</blockquote>
<p>We also got to see a new walk through of the Pre:</p>
<p><object width="640" height="400" id="cf217a9oi" name="cf217a9on" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="movie" value="http://p.castfire.com/qoyIo/video/74751/treocentral-_2009-04-01-152403.flv"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed width="640" height="400" src="http://p.castfire.com/qoyIo/video/74751/treocentral-_2009-04-01-152403.flv" id="cf217a9ei" name="cf217a9en" type="application/x-shockwave-flash" allowFullScreen="true" allowScriptAccess="always"></embed></object></p>
<p>Come on HTML5 Phone :)</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/palm-pre-at-web-20-expo/feed</wfw:commentRss>
		<slash:comments>1</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[JavaScript]]></category>
		<category><![CDATA[Library]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[iPhone]]></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 the meta tags needed for an iPhone web app. Here are the [...]]]></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-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;">$<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-11');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-11">
<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-12');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-12">
<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>10</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[JavaScript]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[iPhone]]></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>PPK on Mobile Browser Compatibility</title>
		<link>http://ajaxian.com/archives/ppk-on-mobile-browser-compatibility</link>
		<comments>http://ajaxian.com/archives/ppk-on-mobile-browser-compatibility#comments</comments>
		<pubDate>Fri, 13 Mar 2009 22:03:30 +0000</pubDate>
		<dc:creator>Rey Bango</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6323</guid>
		<description><![CDATA[Peter-Paul Koch (AKA ppk) has truly provided a tremendous service to the development community over the years building one of the most important resources in determining compatibility of web standards among the major browsers, the Compatibility Master Table.  This resource is referenced often by developers and publications and is exhaustively granular in its data.
With [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://quirksmode.org/about/">Peter-Paul Koch (AKA ppk)</a> has truly provided a tremendous service to the development community over the years building one of the most important resources in determining compatibility of web standards among the major browsers, the <a href="http://quirksmode.org/compatibility.html">Compatibility Master Table</a>.  This resource is referenced often by developers and publications and is exhaustively granular in its data.</p>
<p>With his focus shifting to the mobile space, PPK continues to serve the community by providing similar data for mobile browsers. </p>
<blockquote><p>Right now I’m doing basic tests while also figuring out what “basic tests” means in the mobile space. It turns out that I even have to test basic CSS stuff like font-style. Many of my already-existing tests use such typographic CSS to denote whether a browser supports a certain selector or effect; but if a mobile phone doesn’t support the CSS in the first place, my tests will misfire horribly.</p></blockquote>
<p>His <a href="http://quirksmode.org/m/table.html">Mobile Compatibility Tables</a>, while still very new and a work in progress, will surely be of tremendous help to the many developers who are now looking to mobile web development as the next big wave. </p>
<p><a href="http://quirksmode.org/m/table.html"><img src="http://ajaxian.com/wp-content/uploads/mobilecompatibilitytables.png" alt="" title="mobilecompatibilitytables" width="300" height="256" class="alignnone size-medium wp-image-6329" /></a></p>
<p>He's already collected a large amount of information on the following mobile browsers:</p>
<ul>
<li>Opera Mobile</li>
<li>Opera Mini</li>
<li>WebKit</li>
<li>NetFront</li>
<li>Blackberry</li>
</ul>
<p>and for the following browser capabilities:</p>
<ul>
<li>Events including key &#038; click</li>
<li>Basic DOM &#038; Ajax support</li>
<li>Basic font CSS</li>
<li>CSS Media</li>
<li>Focus, blur, scroll</li>
<li>Screen orientation support</li>
<li>Font sizes</li>
</ul>
<p>If you're a mobile web application developer, I urge you to go visit this great resource and even offer PPK feedback to expand his data.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/ppk-on-mobile-browser-compatibility/feed</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>What is PhoneGap?</title>
		<link>http://ajaxian.com/archives/what-is-phonegap</link>
		<comments>http://ajaxian.com/archives/what-is-phonegap#comments</comments>
		<pubDate>Fri, 13 Mar 2009 11:27:55 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6314</guid>
		<description><![CDATA[ 
Ben and I have been promoting PhoneGap as a great solution for Web developers to create applications with the technology they know and love, without having to jump off of the cliff to other proprietary worlds. PhoneGap is still new, but gets more impressive every day.
The team is getting more interested, and put together [...]]]></description>
			<content:encoded><![CDATA[<p><embed src="http://blip.tv/play/xAzxwhuDxWs" type="application/x-shockwave-flash" width="320" height="240" allowscriptaccess="always" allowfullscreen="true"></embed> </p>
<p>Ben and I have been promoting PhoneGap as a great solution for Web developers to create applications with the technology they know and love, without having to jump off of the cliff to other proprietary worlds. PhoneGap is still new, but gets more impressive every day.</p>
<p>The team is getting more interested, and put together a video on <a href="http://blogs.nitobi.com/andre/index.php/2009/03/10/what-is-phonegap-the-movie/">What is PhoneGap?</a>.</p>
<p>You can see a budding list of existing <a href="http://www.phonegap.com/projects">applications that use PhoneGap already</a> and note that PhoneGap isn't just about the iPhone anymore.... Android and RIM are in the house.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/what-is-phonegap/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Google Maps on Palm Pre; Gmail on iPhone</title>
		<link>http://ajaxian.com/archives/google-maps-on-palm-pre-gmail-on-iphone</link>
		<comments>http://ajaxian.com/archives/google-maps-on-palm-pre-gmail-on-iphone#comments</comments>
		<pubDate>Thu, 19 Feb 2009 09:55:22 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6028</guid>
		<description><![CDATA[Vic Gundotra, my former VP at Google, gave some great demonstrations of HTML 5 and the Mobile Web the Mobile World Congress in Barcelona.
He showed off the Palm Pre device running a Web application on their platform:

Video courtesy of PreCommunity.com
Gmail Demo on iPhone and HTC Magic
Then he showed Gmail Offline running on iPhone and HTC [...]]]></description>
			<content:encoded><![CDATA[<p>Vic Gundotra, my former VP at Google, gave <a href="http://www.readwriteweb.com/archives/google_goes_html5_demoes_expermental_gmail.php">some great demonstrations of HTML 5</a> and the Mobile Web the Mobile World Congress in Barcelona.</p>
<p>He showed off the Palm Pre device running a Web application on their platform:</p>
<p><object width="480" height="295"><param name="movie" value="http://www.youtube.com/v/NLMFUrzVWkk&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/NLMFUrzVWkk&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"></embed></object></p>
<p><em style="font-size: smaller;">Video courtesy of <a href="http://precommunity.com/">PreCommunity.com</a></em></p>
<p><strong>Gmail Demo on iPhone and HTC Magic</strong></p>
<p>Then he showed Gmail Offline running on iPhone and HTC using HTML 5 Storage API</p>
<p><object width="480" height="295"><param name="movie" value="http://www.youtube.com/v/VmjxmOtNZCk&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/VmjxmOtNZCk&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"></embed></object></p>
<p><em style="font-size: smaller;">Video courtesy of <a href="http://androidcommunity.com/google-offline-gmail-webapp-video-demo-from-mwc09-20090218/">AndroidCommunity.com</a></em></p>
<p>Once again we get to see HTML pushing hard in the mobile space.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/google-maps-on-palm-pre-gmail-on-iphone/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>webOS and Mojo framework for Palm Pre; Finally get some info</title>
		<link>http://ajaxian.com/archives/webos-and-mojo-framework-for-palm-pre-finally-get-some-info</link>
		<comments>http://ajaxian.com/archives/webos-and-mojo-framework-for-palm-pre-finally-get-some-info#comments</comments>
		<pubDate>Tue, 17 Feb 2009 05:53:14 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[mojo]]></category>
		<category><![CDATA[palm]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5974</guid>
		<description><![CDATA[
Fancy writting a Web application on the architecture above? Since announcing the Palm Pre we have seen a lot of people wondering about the goods under the hood. We now have an online reference to check out.
Once you get past the high level stuff, you get to the meat:

Stages and Scenes
Palm's user experience architecture provides [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://developer.palm.com/assets/images/book/palm_0109.png"/></p>
<p>Fancy writting a Web application on the architecture above? Since announcing the Palm Pre we have seen a lot of people wondering about the goods under the hood. We now have an <a href="http://developer.palm.com/webos_book/book1.html">online reference</a> to check out.</p>
<p>Once you get past the high level stuff, you get to the meat:</p>
<blockquote><p>
<a href="http://developer.palm.com/webos_book/book6.html">Stages and Scenes</a></p>
<p>Palm's user experience architecture provides for a greater degree of application scope than is normally considered in a web application. To support this and specific functions of the framework, Palm has introduced a structure for webOS applications built around <span class="bk_i_red">stages</span> and <span class="bk_i_red">scenes</span>.</p>
<p>A <span class="bk_i_red">stage</span> is a declarative HTML structure similar to a conventional HTML window or browser tab. Palm webOS applications can have one or more stages, but typically the primary stage will correspond to the application's card. Other stages might include a dashboard, or other cards associated with different activities within the application. You should refer back to the earlier example of the Email application where the main card held the Email inbox and another card held a draft Email. Each email card is a separate stage, but part of the same application.</p>
<p><span class="bk_i_red">Scenes</span> are mutually exclusive views of the application within a Stage. Most applications will provide a number of different kinds of scenes within the same stage, but some very simple applications (such as Calculator) will have just a single scene. An application must have at least one scene, supported by a controller, a JavaScript object referred to as a <span class="bk_i_red">scene assistant</span>, and a scene view, a segment of HTML representing the layout of the scene.
</p></blockquote>
<blockquote><p>
<a href="http://developer.palm.com/webos_book/book6.html">Application Lifecycle</a></p>
<p>Palm webOS applications are required to use directory and file structure conventions to enable the framework to run the applications without complex configuration files. At the top level the application must have an appinfo.json object, providing the framework with the essential information needed to install and load the app. In addition, all applications will have an index.html file, an icon.png for application's Launcher icon, and an app folder, which provides a directory structure for assistants and views.</p>
<p>By convention, if the app has images, other javascript or application-specific CSS, then these should be contained in folders named images, javascripts, and stylesheets respectively. This is not required but makes it simpler to understand the application's structure.</p>
<p>Launching a webOS application starts with loading the index.html file and any referenced stylesheets and javascript files, as would be done with any web application or web page. However, the framework intervenes after the loading operations and invokes the stage and scene assistants to perform the application's setup functions and to activate the first scene. From this point, the application would be driven either by user actions or dynamic data.
</p></blockquote>
<p><b>Features</b></p>
<ul>
<li><b>Storage</b>: HTML5 storage is natively accessible</li>
<li><b>Widgets</b>: Can look like this:
<div class="igBar"><a href="javascript:showCodeTxt('html-14');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">HTML:</span>
<div id="html-14">
<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; <span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> x-mojo-element=<span style="color: #ff0000;">"ToggleButton"</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"my-toggle"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&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>
</li>
<li><b>Services</b>: The architecture looks like this:<br />
<img src="http://developer.palm.com/assets/images/book/palm_0112.png"/>
</li>
<li><b>Developer Tools</b>: SDK comes with emulator and command line tools</li>
</ul>
<p>Still looking forward to more details, examples, and such.... but exciting to see the data coming out!</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/webos-and-mojo-framework-for-palm-pre-finally-get-some-info/feed</wfw:commentRss>
		<slash:comments>3</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[Mobile]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[iPhone]]></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 in Safari 3.1 [...]]]></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>
	</channel>
</rss>
