<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Matt Legend Gemmell</title>
	
	<link>http://mattgemmell.com</link>
	<description>Modesty is Lying</description>
	<lastBuildDate>Tue, 24 Aug 2010 20:33:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/mattgemmell/rss2" /><feedburner:info uri="mattgemmell/rss2" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Finger Tools</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/n4VfDkhV5YE/finger-tools</link>
		<comments>http://mattgemmell.com/2010/08/11/finger-tools#comments</comments>
		<pubDate>Wed, 11 Aug 2010 17:48:16 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[experience]]></category>
		<category><![CDATA[gesture]]></category>
		<category><![CDATA[input]]></category>
		<category><![CDATA[interaction]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[multi-touch]]></category>
		<category><![CDATA[touch]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=2167</guid>
		<description><![CDATA[In my spare time, I sketch (and sometimes build) user interface concepts, to see if they actually work in real life. Most of them exist only as private tools for my own use, but I created one recently that I&#8217;d like to show you. One annoying thing about desktop UIs that has also appeared on [...]]]></description>
			<content:encoded><![CDATA[<p>In my spare time, I sketch (and sometimes build) user interface concepts, to see if they actually work in real life. Most of them exist only as private tools for my own use, but I created one recently that I&#8217;d like to show you.</p>

<p>One annoying thing about desktop UIs that has also appeared on touchscreen devices is the &#8220;verb then object&#8221; style of interaction, or what I call <em>&#8220;ink dipping&#8221;</em>. You pick a tool from some globally-positioned area (like a toolbar or palette), then move to where you actually want to <em>use</em> that tool &#8211; like having to periodically re-dip your pen in an inkwell. It requires a lot of unnecessary hand-movement, and breaks the idea of &#8220;direct interaction&#8221; to a certain degree.</p>

<p>On a touchscreen, you often have a simplified interface, with very few options, commands or tools. I was thinking about how to improve interaction in canvas-based applications (drawing, painting, charts, diagrams, etc), and it occurred to me that you often have fewer commonly-used tools than you have <em>fingers</em>.  So, I created a UI concept/prototype that I call <em>Finger Tools</em> (or perhaps <em>Touch Tools</em>, or the <em>Tool Glove</em>, or some other such thing).</p>

<div class="screenshot">
<a href="http://mattgemmell.com/images/finger_tools_full.png" title="Click to see full size"><img src="http://mattgemmell.com/images/finger_tools_small.png" width="600" height="473" alt="Finger Tools demo screenshot" /></a>
</div>

<p><span id="more-2167"></span>The Finger Tools concept is that your fingers are your tool-palette, so that useful tools and commands are <em>literally</em> always at your fingertips.</p>

<p>Here&#8217;s a video showing how it works, which you can also <a href="http://www.youtube.com/watch?v=p_9oW81qna8">watch on YouTube</a>:</p>

<div class="screenshot">
<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/p_9oW81qna8&amp;hl=en_GB&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/p_9oW81qna8&amp;hl=en_GB&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>
</div>

<p>Finger Tools are triggered by touch-holding for a period, or immediately by multi-touch interaction. That&#8217;s just my current testing setup; you could of course change the triggering mechanism to suit other situations. There are a couple of interesting points about this interface:</p>

<ul>
<li>Finger Tools are <em>naturally ambidextrous</em>, since tools trigger in priority order regardless of finger-position. Just use whichever hand you prefer.</li>
<li>You can <em>swap tools to ease manipulation</em>. If you prefer (as I do) to use your <em>index</em> finger when dragging a tool to your target area, but that tool is attached to <em>another</em> finger, you can simply lift and then replace both fingers to swap tools between them. This is also a natural consequence of tools appearing in priority order.</li>
</ul>

<p>Neither of the above features required any additional code; they&#8217;re inherent and deliberate benefits of the design.</p>

<p>There are still some rough areas, but I think it&#8217;s a promising concept. I plan to continue to develop it.</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/n4VfDkhV5YE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2010/08/11/finger-tools/feed</wfw:commentRss>
		<slash:comments>21</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2010/08/11/finger-tools</feedburner:origLink></item>
		<item>
		<title>MGSplitViewController Updated</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/hUTLhxCeimk/mgsplitviewcontroller-updated</link>
		<comments>http://mattgemmell.com/2010/08/03/mgsplitviewcontroller-updated#comments</comments>
		<pubDate>Tue, 03 Aug 2010 20:33:20 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[detail]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[master]]></category>
		<category><![CDATA[mgsplitviewcontroller]]></category>
		<category><![CDATA[split]]></category>
		<category><![CDATA[uisplitviewcontroller]]></category>
		<category><![CDATA[view]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=2153</guid>
		<description><![CDATA[Just a brief note that I&#8217;ve updated MGSplitViewController (read more about it here or get the code on github here). Added the ability to put the Master after the Detail instead of before it (based on an idea by Marco Pifferi). It works for both orientations (i.e. Master to the left or right of Detail [...]]]></description>
			<content:encoded><![CDATA[<p>Just a brief note that I&#8217;ve updated MGSplitViewController (<a href="http://mattgemmell.com/2010/07/31/mgsplitviewcontroller-for-ipad">read more about it here</a> or get the <a href="http://github.com/mattgemmell/MGSplitViewController/">code on github here</a>).</p>

<ul>
<li><p>Added the ability to put the Master <em>after</em> the Detail instead of before it (based on an idea by <a href="http://tweakersoft.com/">Marco Pifferi</a>). It works for both orientations (i.e. Master to the left or right of Detail in landscape, and Master above or below Detail in portrait), and includes an animated toggling action for your convenience.</p>

<p>Great for &#8220;list-below&#8221; portrait UIs (like Osfoora HD), or for making your Master-Detail interfaces easier to use for left-handed people!</p></li>
<li>Fixed an exception raised when the delegate doesn&#8217;t add the popover&#8217;s associated UIBarButtonItem to a suitable bar, making the popover support now entirely optional (as it should be). Thanks to <a href="http://twitter.com/pcwiz">@pcwiz</a> for reporting it.</li>
</ul>

<p><span id="more-2153"></span>There&#8217;s a new demo video embedded below, which you can also <a href="http://www.youtube.com/watch?v=sJ6oijQPQ6s">view on YouTube</a>. It&#8217;s easier to see what&#8217;s going on if you watch it in HD.</p>

<div class="screenshot">
<object width="500" height="405"><param name="movie" value="http://www.youtube.com/v/sJ6oijQPQ6s&amp;hl=en_GB&amp;fs=1?rel=0&amp;hd=1&amp;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/sJ6oijQPQ6s&amp;hl=en_GB&amp;fs=1?rel=0&amp;hd=1&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"></embed></object>
</div>

<p>If you make use of MGSplitViewController, a Paypal donation (or something from my Amazon.co.uk Wishlist) would be very much appreciated. Appropriate links <a href="http://mattgemmell.com/source">can be found here</a>.</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/hUTLhxCeimk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2010/08/03/mgsplitviewcontroller-updated/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2010/08/03/mgsplitviewcontroller-updated</feedburner:origLink></item>
		<item>
		<title>Free copies of Favorites for iPhone</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/QwIHQD02DUM/free-copies-of-favorites-for-iphone</link>
		<comments>http://mattgemmell.com/2010/08/01/free-copies-of-favorites-for-iphone#comments</comments>
		<pubDate>Sun, 01 Aug 2010 13:57:11 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[Favorites for iPhone]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[dial]]></category>
		<category><![CDATA[favorites]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[promo]]></category>
		<category><![CDATA[speed]]></category>
		<category><![CDATA[visual]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=2126</guid>
		<description><![CDATA[As you may know, I wrote a visual speed-dial (and speed-SMS, and speed-email) app for the iPhone, called Favorites &#8211; you can find out about it here, or see it on the App Store here. I&#8217;m quite proud of it, and Lauren and I use it every day (along with thousands of others, I might [...]]]></description>
			<content:encoded><![CDATA[<p>As you may know, I wrote a visual speed-dial (and speed-SMS, and speed-email) app for the iPhone, called <strong>Favorites</strong> &#8211; you can <a href="http://instinctivecode.com/favorites">find out about it here</a>, or see it <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=294328675&amp;mt=8">on the App Store here</a>. I&#8217;m quite proud of it, and Lauren and I use it every day (along with thousands of others, I might add).</p>

<div class="screenshot">
<img src="/images/faves_preview.jpg" width="600" height="293" alt="Favorites screenshots" />
</div>

<p>I was made aware today of a <a href="http://www.bestappsite.com/2010/07/23/favorites-gives-me-my-iphone-favorites-back/">glowing review of Favorites</a>, and to celebrate I thought I&#8217;d give away some free copies. The promo codes below are valid for the US App Store (Apple only issues promo codes for the US store right now; as soon as that changes I&#8217;ll gladly issue some codes for other countries).</p>

<p><span id="more-2126"></span>If you use a promo code, it would probably be helpful if you left a comment saying so, then I can cross it off the list. If all the codes have been used, remember that you can still <em>buy</em> a copy of Favorites for just $1.99 (or equivalent). I think it&#8217;s great value for money, and it all goes towards supporting nifty new apps, <a href="http://mattgemmell.com/source">source code</a> and so forth. It also comes with a free warm, fuzzy, righteous feeling (whilst supplies last).</p>

<p>I spent a <em>lot</em> of time on the user experience of Favorites, and I really hope you&#8217;ll enjoy using it. If you&#8217;re interested, you can read about <a href="http://mattgemmell.com/favorites-for-ios-4">what&#8217;s new in Favorites 1.1</a> (Retina Display support, multi-tasking, accessibility and more). If you&#8217;d like some code instead, you might be interested in <a href="http://mattgemmell.com/2010/07/05/mgimageutilities">MGImageUtilities</a>, which provides image-scaling/cropping and tinting, ideal for support Retina Display devices in your own apps.</p>

<p>Without further ado, here are the promo codes; the scored-out/dimmed ones have already been claimed!</p>

<p><strong>Update</strong>: all of the current batch of codes have been used &#8211; that was quick! Sorry if you missed out this time; if you&#8217;d still like to try Favorites, you could always buy a copy (for just $1.99)!</p>

<ol>
<li><span class="strike">9JF76Y6LMPJY</span></li>
<li><span class="strike">MNXTLJN4FL6N</span></li>
<li><span class="strike">9J7KL69MFA34</span></li>
<li><span class="strike">ERNJJTLFMA6E</span></li>
<li><span class="strike">4TRXFY677EJ4</span></li>
<li><span class="strike">EL9FKL34HYP3</span></li>
<li><span class="strike">RKYN36PRJY77</span></li>
<li><span class="strike">3FKNHTL9Y4AR</span></li>
<li><span class="strike">N9HFTJEXNLRP</span></li>
<li><span class="strike">EYKL76TRTWKM</span></li>
<li><span class="strike">TJRHMPKH3TT9</span></li>
<li><span class="strike">FP73TYAWXFM7</span></li>
<li><span class="strike">Y4EFF3PJPMRX</span></li>
<li><span class="strike">Y9EP3F37J3F3</span></li>
<li><span class="strike">TL46FWLEJLHJ</span></li>
<li><span class="strike">99KMJ4XLYLY6</span></li>
<li><span class="strike">AT4M6RTHXK9W</span></li>
<li><span class="strike">R4AWFKHEJLJ6</span></li>
<li><span class="strike">99N4REFNMNXP</span></li>
<li><span class="strike">9YXTRKM6JTWJ</span></li>
<li><span class="strike">YY73P44LF7XX</span></li>
<li><span class="strike">67APK67FWMTL</span></li>
<li><span class="strike">FRXWM7XFR4JY</span></li>
<li><span class="strike">3W3AELT9M6W9</span></li>
<li><span class="strike">YX6FERYT4LYY</span></li>
<li><span class="strike">XEJHA64HHNRK</span></li>
<li><span class="strike">3RAMMNYAMMNY</span></li>
<li><span class="strike">WM3K9NALHRYY</span></li>
<li><span class="strike">PPTTH3H6676M</span></li>
<li><span class="strike">ANR6J74H7EAT</span></li>
</ol>

<p>Remember that you can keep up to date by <a href="http://twitter.com/mattgemmell">following me (@mattgemmell) on Twitter</a>, or subscribing to this blog.</p>

<p>Enjoy using Favorites!</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/QwIHQD02DUM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2010/08/01/free-copies-of-favorites-for-iphone/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2010/08/01/free-copies-of-favorites-for-iphone</feedburner:origLink></item>
		<item>
		<title>MGSplitViewController for iPad</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/p7p_bbGjS54/mgsplitviewcontroller-for-ipad</link>
		<comments>http://mattgemmell.com/2010/07/31/mgsplitviewcontroller-for-ipad#comments</comments>
		<pubDate>Sat, 31 Jul 2010 18:10:05 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[drag]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[landscape]]></category>
		<category><![CDATA[portrait]]></category>
		<category><![CDATA[split]]></category>
		<category><![CDATA[splitview]]></category>
		<category><![CDATA[uisplitviewcontroller]]></category>
		<category><![CDATA[uiviewcontroller]]></category>
		<category><![CDATA[view]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=2110</guid>
		<description><![CDATA[MGSplitViewController is an open source replacement for UISplitViewController, with various useful enhancements. Here&#8217;s a demonstration video hosted on YouTube. It&#8217;s better if you watch it in full HD. Donations I wrote MGSplitViewController for my own use, but I&#8217;m making it available (as usual) for the benefit of the iOS developer community, because I care about [...]]]></description>
			<content:encoded><![CDATA[<p>MGSplitViewController is an open source replacement for UISplitViewController, with various useful enhancements.</p>

<p><span id="more-2110"></span>Here&#8217;s a <a href="http://www.youtube.com/watch?v=wezC7vRX9Js">demonstration video hosted on YouTube</a>. It&#8217;s better if you watch it in full HD.</p>

<div class="screenshot">
<object width="500" height="405"><param name="movie" value="http://www.youtube.com/v/wezC7vRX9Js&amp;hl=en_GB&amp;fs=1?rel=0&amp;hd=1&amp;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/wezC7vRX9Js&amp;hl=en_GB&amp;fs=1?rel=0&amp;hd=1&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"></embed></object>
</div>

<h2>Donations</h2>

<p>I wrote MGSplitViewController for my own use, but I&#8217;m making it available (as usual) for the benefit of the iOS developer community, because I care about this community and about the platform.</p>

<p>If you make use of MGSplitViewController, a Paypal donation (or something from my Amazon.co.uk Wishlist) would be very much appreciated. Appropriate links <a href="http://mattgemmell.com/source">can be found here</a>.</p>

<p>It&#8217;s taken a fair bit of work to refine the code to a flexible, reusable state, and I hope you&#8217;ll find it useful in your own projects. It&#8217;s my goal that it should save you many hours or days of work.</p>

<h2>Features</h2>

<p>Please note that, since split-views are commonly used for &#8220;Master-Detail&#8221; interfaces, I call the first sub-view the &#8220;master&#8221; and the second sub-view the &#8220;detail&#8221;.</p>

<ul>
<li>By default, MGSplitViewController mimics the appearance and (complete) behaviour of UISplitViewController, including its delegate API. It accepts two UIViewControllers (or subclasses thereof).</li>
<li>Allows toggling the <em>visibility of the master view</em> in either interface-orientation; i.e. you can have master-detail or detail-only in either landscape and/or portrait orientations (independently, and/or interactively).</li>
<li>Allows choosing whether the <em>split orientation</em> is vertical (i.e. left/right, like UISplitViewController), or horizontal (master above, and detail below). You can toggle between modes interactively, with animation.</li>
<li>Allows choosing whether the master view is <em>before</em> (above, or to left of) the detail view, or <em>after</em> it (below, or to the right).</li>
<li>Allows you to choose (and change) the <em>position</em> of the split, i.e. the relative sizes of the master and detail views.</li>
<li>Allows you to enable <em>dragging</em> of the split/divider between the master and detail views, with optional constraining via a delegate method.</li>
<li>Allows you to choose the <em>width of the split</em> between the master and detail views.</li>
<li>Preset &#8220;<em>divider styles</em>&#8220;: one for non-draggable UISplitViewController-like dividers, and one for draggable, thicker style with a grip-strip.</li>
<li>Allows you to substitute your own divider-view (an MGSplitDividerView subclass), used to draw the split between the master and detail views.</li>
</ul>

<h2>Getting the Code</h2>

<p>MGSplitViewController is hosted on github, for ease of sharing; <a href="http://github.com/mattgemmell/MGSplitViewController">you can get the code here</a>.</p>

<p>If you find it useful, it&#8217;d be much appreciated if you leave a comment to that effect here, and (ahem) note the Donations section above. Relax, that&#8217;s the last time I&#8217;ll mention it.</p>

<h2>How to use</h2>

<p>The &#8220;MGSplitViewController.h&#8221; header file (and the sample project) should be self-explanatory. It&#8217;s recommended that you use the project as a reference.</p>

<h2>Interface Builder support</h2>

<p>At time of writing, MGSplitViewController cannot be quite as elegantly <em>visually</em> configured like UISplitViewController using Interface Builder.</p>

<p>You can, however, (and it is recommended that you do) create an instance of it in a xib, and connect the masterViewController and detailViewController outlets to the required view-controllers.</p>

<h2>License and Warranty</h2>

<p>The license for the code is included with the project; it&#8217;s basically a BSD license with attribution.</p>

<p>You&#8217;re welcome to use it in commercial, closed-source, open source, free or any other kind of software, as long as you credit me appropriately. If you require a different open source license, please contact me (details below). If you need a license <em>without</em> the attribution requirement, a fee will be payable.</p>

<p>The MGSplitViewController code comes with no warranty of any kind. I hope it&#8217;ll be useful to you (it certainly is to me), but I make no guarantees regarding its functionality or otherwise.</p>

<h2>Support / Contact / Bugs / Features</h2>

<p>I can&#8217;t answer any questions about how to use the code, but I always welcome emails telling me that you&#8217;re using it, or just saying thanks.</p>

<p>If you create an app which uses the code, I&#8217;d also love to hear about it. You can <a href="http://mattgemmell.com/about">find my contact details here</a>.</p>

<p>Likewise, if you want to submit a feature request or bug report, feel free to get in touch. Better yet, fork the code and implement the feature/fix yourself, then submit a pull request.</p>

<p>You can keep up to date with what I&#8217;m working on by <a href="http://twitter.com/mattgemmell">following me (@mattgemmell) on Twitter</a>, and you can see my apps (or enquire about hiring me for your projects) at <a href="http://instinctivecode.com">my business site, Instinctive Code</a>.</p>

<p>Enjoy the code!</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/p7p_bbGjS54" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2010/07/31/mgsplitviewcontroller-for-ipad/feed</wfw:commentRss>
		<slash:comments>31</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2010/07/31/mgsplitviewcontroller-for-ipad</feedburner:origLink></item>
		<item>
		<title>Magic Trackpad</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/9HSWYp8N750/magic-trackpad</link>
		<comments>http://mattgemmell.com/2010/07/28/magic-trackpad#comments</comments>
		<pubDate>Wed, 28 Jul 2010 13:10:39 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[dragging]]></category>
		<category><![CDATA[magic]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[scrolling]]></category>
		<category><![CDATA[trackpad]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=2098</guid>
		<description><![CDATA[Apple released the new Magic Trackpad yesterday, and I got a hold of one to try. I made a video (in two parts, due to a switch from landscape to portrait halfway through) showing the device and how it works; you can watch it below. I&#8217;m very pleased with the Trackpad so far; it addresses [...]]]></description>
			<content:encoded><![CDATA[<p>Apple released the new Magic Trackpad yesterday, and I got a hold of one to try. I made a video (in two parts, due to a switch from landscape to portrait halfway through) showing the device and how it works; you can watch it below.</p>

<p>I&#8217;m very pleased with the Trackpad so far; it addresses the two major problems I&#8217;ve had with trackpads in the past: slow scrolling, and awkward dragging/text-selection.</p>

<p><span id="more-2098"></span>Part 1:</p>

<div class="screenshot">
<object width="660" height="405"><param name="movie" value="http://www.youtube.com/v/SZgKt80Pxpg&amp;hl=en_GB&amp;fs=1?rel=0&amp;hd=1&amp;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/SZgKt80Pxpg&amp;hl=en_GB&amp;fs=1?rel=0&amp;hd=1&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="660" height="405"></embed></object>
</div>

<p>(Or <a href="http://www.youtube.com/watch?v=SZgKt80Pxpg">view it on youtube</a>.)</p>

<p>Part 2:</p>

<div class="screenshot">
<object width="500" height="405"><param name="movie" value="http://www.youtube.com/v/D792iJaXYIw&amp;hl=en_GB&amp;fs=1?rel=0&amp;hd=1&amp;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/D792iJaXYIw&amp;hl=en_GB&amp;fs=1?rel=0&amp;hd=1&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"></embed></object>
</div>

<p>(Or <a href="http://www.youtube.com/watch?v=D792iJaXYIw">view it on youtube</a>.)</p>

<p>And here&#8217;s another (silent) video showing how Magic Trackpad can do &#8220;pick up and move&#8221; mouse-like multi-stage drags, making it usable on any size of screen:</p>

<div class="screenshot">
<object width="580" height="360"><param name="movie" value="http://www.youtube.com/v/IxdbI0NUXNU&amp;hl=en_GB&amp;fs=1?rel=0&amp;hd=1&amp;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/IxdbI0NUXNU&amp;hl=en_GB&amp;fs=1?rel=0&amp;hd=1&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="360"></embed></object>
</div>

<p>(Or <a href="http://www.youtube.com/watch?v=IxdbI0NUXNU">view it on youtube</a>.)</p>

<p>If you like stuff like this, you might want to keep up to date my <a href="http://twitter.com/mattgemmell">following me (@mattgemmell) on Twitter</a>.</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/9HSWYp8N750" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2010/07/28/magic-trackpad/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2010/07/28/magic-trackpad</feedburner:origLink></item>
		<item>
		<title>Favorites for iOS 4</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/3hdUz1F32ps/favorites-for-ios-4</link>
		<comments>http://mattgemmell.com/2010/07/21/favorites-for-ios-4#comments</comments>
		<pubDate>Wed, 21 Jul 2010 12:39:55 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Favorites for iPhone]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA["Retina Display"]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[favorites]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iphone 4]]></category>
		<category><![CDATA[multi-tasking]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[speed-dial]]></category>
		<category><![CDATA[voiceover]]></category>
		<category><![CDATA[wallpaper]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=2071</guid>
		<description><![CDATA[The new version of my app Favorites for iPhone has been approved and is now in the App Store; you can get it here. This version requires iOS 4 or later, and is a free upgrade if you already have it (if you don&#8217;t, it&#8217;s $2 or equivalent). I&#8217;ve made a number of improvements in [...]]]></description>
			<content:encoded><![CDATA[<p>The new version of my app <a href="http://instinctivecode.com/favorites">Favorites for iPhone</a> has been approved and is now in the App Store; you can <a href="http://itunes.apple.com/app/favorites-speed-dial-sms-mms/id294328675?mt=8">get it here</a>. This version requires iOS 4 or later, and is a free upgrade if you already have it (if you don&#8217;t, it&#8217;s $2 or equivalent). I&#8217;ve made a number of improvements in this version, and I wanted to briefly mention some of them.</p>

<p><span id="more-2071"></span>I&#8217;d like to start by mentioning three very important new features (&#8220;tent-pegs&#8221;, if you will).</p>

<h3>Multi-tasking</h3>

<p>First up, Favorites has been compiled against the iOS 4 SDK, so it will participate in &#8220;multi-tasking&#8221;, i.e. it won&#8217;t need to launch from scratch each time you use it, and you can flip back and forth to it using the app switcher on iOS 4 (on supported devices, namely iPhone 3GS or iPhone 4).</p>

<p>That&#8217;s a minor thing in terms of effort on my part, but makes an <em>enormous</em> difference to actual day-to-day use.</p>

<h3>Retina Display</h3>

<p>Second, Favorites fully supports the new Retina Display on iPhone 4. All your contacts&#8217; photos will be shown at the best possible resolution, and all of Favorites&#8217; graphics, icons and drawing code have been updated appropriately.</p>

<p>It looks very, very nice on an iPhone 4; if you have one, you should give it a try. Here&#8217;s a (slightly scaled down!) preview:</p>

<div class="screenshot"><img src="http://mattgemmell.com/images/favorites1_retina.jpg" width="590" height="885" alt="Favorites main screen showing grid of favorites."/></div>

<h3>Accessibility via VoiceOver</h3>

<p>Thirdly, and this is the one I&#8217;m most proud of by a mile, Favorites is now fully accessible to blind and visually impaired users via VoiceOver, the accessibility technology built into iOS. All functionality of the app should be accessible, and I think it works pretty well.</p>

<p>I made a video discussing some of the new accessibility support; you can <a href="http://www.youtube.com/watch?v=NnyL2grGFxo">watch it on YouTube</a>, and it&#8217;s also embedded below &#8211; it&#8217;s best if you watch it full-screen.</p>

<div class="screenshot">
<object width="500" height="405"><param name="movie" value="http://www.youtube.com/v/NnyL2grGFxo&amp;hl=en_GB&amp;fs=1?rel=0&amp;hd=1&amp;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/NnyL2grGFxo&amp;hl=en_GB&amp;fs=1?rel=0&amp;hd=1&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"></embed></object>
</div>

<p>If you&#8217;re a visually impaired user and would like to provide feedback on Favorites&#8217; accessibility support, get in touch via the <a href="http://instinctivecode.com/contact">contact page at Instinctive Code</a>.</p>

<h3>Other New Features</h3>

<ul>
<li>New style of display for names, including larger, brighter text, and more sensible clipping of long names.</li>
<li>During initial launch (which will be very rare on multi-tasking-capable devices running iOS 4), all contacts will show their names until their pictures have loaded.</li>
<li>All of the Favorites settings which were previously in Settings.app are now <em>also</em> in Favorites itself.</li>
<li>Wallpaper of your choice can now be shown behind the grid of favorites (this setting is only available inside Favorites itself, not in Settings.app).</li>
</ul>

<h3>Improvements</h3>

<ul>
<li>Performance optimizations, particularly when dragging favorites around.</li>
<li>Increased visual contrast for labels, button-borders, lists of phone-numbers/email-addresses, and more.</li>
<li>Made the overlay action-button highlight colours more vivid and distinct.</li>
<li>Favorites without pictures will now <em>always</em> show the person&#8217;s name, for easy identification.</li>
<li>The label-editing view now opens automatically if a custom label is tapped and still has the default value.</li>
<li>The info (&#8220;i&#8221;) button on the main screen is now easier to hit.</li>
<li>Fixed an issue where contacts&#8217; images could be incorrectly rotated on iOS 4 (often by ninety degrees counter-clockwise).</li>
</ul>

<p>I really hope you&#8217;ll enjoy this new version of Favorites; Lauren and I (and thousands of others, I might add) use it every day. Every feature is there for a good reason (especially the <em>absent</em> features, like multiple pages of contacts). I find it a very quick, efficient and understandable way to contact my most frequently needed family members, friends and colleagues, and I don&#8217;t feel like I need to fight with Favorites as I sometimes do with the Phone app.</p>

<p>You can <a href="http://instinctivecode.com/favorites">find out more at the Instinctive Code site</a> or you can go directly to <a href="http://itunes.apple.com/app/favorites-speed-dial-sms-mms/id294328675?mt=8">Favorites on the App Store</a>. (Oh, and if you do enjoy it, feel free to share your thoughts via a review on the App Store. :)</p>

<p>If you need support with Favorites or want to request a feature or send feedback, you can either visit the <a href="http://getsatisfaction.com/instinctivecode/products/instinctivecode_favorites_for_iphone">support site at GetSatisfaction</a> (preferred), or get in touch directly via the Instinctive Code site linked above.</p>

<p>Remember that you can also keep up to date by <a href="http://twitter.com/mattgemmell">following me (mattgemmell) on Twitter</a>.</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/3hdUz1F32ps" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2010/07/21/favorites-for-ios-4/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2010/07/21/favorites-for-ios-4</feedburner:origLink></item>
		<item>
		<title>Touch Notation</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/e_oqIOy8ils/touch-notation</link>
		<comments>http://mattgemmell.com/2010/07/14/touch-notation#comments</comments>
		<pubDate>Wed, 14 Jul 2010 15:13:59 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[drag]]></category>
		<category><![CDATA[experience]]></category>
		<category><![CDATA[gesture]]></category>
		<category><![CDATA[hold]]></category>
		<category><![CDATA[input]]></category>
		<category><![CDATA[long-tap]]></category>
		<category><![CDATA[multi-touch]]></category>
		<category><![CDATA[notation]]></category>
		<category><![CDATA[pinch]]></category>
		<category><![CDATA[rotate]]></category>
		<category><![CDATA[swipe]]></category>
		<category><![CDATA[symbol]]></category>
		<category><![CDATA[tap]]></category>
		<category><![CDATA[touch]]></category>
		<category><![CDATA[user]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=1991</guid>
		<description><![CDATA[Within the last twelve to eighteen months, I&#8217;ve crossed a threshold whereby the vast majority of my work is now aimed at touch-screen devices. I often have to sketch out feature specs, interaction designs and so forth, and I enjoy working on paper whenever I can. I quickly encountered a problem: touch-screen gestures are difficult [...]]]></description>
			<content:encoded><![CDATA[<p>Within the last twelve to eighteen months, I&#8217;ve crossed a threshold whereby the vast majority of my work is now aimed at touch-screen devices. I often have to sketch out feature specs, interaction designs and so forth, and I enjoy working on paper whenever I can. I quickly encountered a problem: touch-screen gestures are difficult to describe concisely. To solve this problem, I created a means of talking about such gestures symbolically; I call it <em>Touch Notation</em>.</p>

<p><span id="more-1991"></span>There are three primary problems I face when talking about multi-touch gestures in documents:</p>

<ol>
<li><strong>Elaborateness</strong>. To visually describe a gesture, it&#8217;s fairly common to see actual life-like drawings of fingers and hands; that&#8217;s far too much trouble to sketch, and takes up too much room when reproduced. It also doesn&#8217;t scale to small sizes.</li>
<li><strong>Verbosity</strong>. To instead <em>textually</em> describe a gesture, disproportionately many words are required: &#8220;double-tap-and-hold the object then drag to the right&#8221;. That&#8217;s tiring, and again takes up far too much room.</li>
<li><strong>Ambiguity</strong>. There&#8217;s no absolutely standard mapping of terminology to gestures, so we&#8217;re faced with deciding whether we really want &#8220;swipe&#8221;, &#8220;flick&#8221; or something else, and whether the term will be understood later.</li>
</ol>

<p>Such situations are usually helped by creating a formal terminology or notation of some kind, and indeed we all find ourselves doing so automatically and organically in our own notes. My own notation has developed over the course of a few months, and has stabilised sufficiently to be worth sharing; I find it very useful. Touch Notation&#8217;s purpose is to help me <em>talk about</em> and <em>design</em> features and interactions for touch-screen (and usually multi-touch) software.</p>

<p>That&#8217;s not all it&#8217;s useful for, though &#8211; I also use it to display gestural input in a concise, <em>reference-suitable</em> way. This usage is analogous to lists of keyboard shortcuts on the desktop, which make use of standard modifier-key symbols like Shift, Alt, Ctrl etc.</p>

<p>Touch Notation lets me make gestural-input &#8220;cheat sheets&#8221; for touch-screen apps just as easily as I can make lists of keyboard shortcuts for desktop apps. The goal is to provide one possible way of talking precisely and accurately (I hesitate to quite say &#8220;scientifically&#8221;) about touch-screen interaction. I thought it might be of interest to you too, so I&#8217;ve decided to share it.</p>

<h3>Design Priorities</h3>

<p>When developing the notation, my priorities were:</p>

<ul>
<li>It should be (relatively) easy to <em>sketch quickly</em>, and definitely easier than textual descriptions or finger-drawings.</li>
<li>It should be <em>scaleable</em>, so it can be reproduced at any size (particularly at small sizes).</li>
<li>Each symbol should be <em>unambiguous</em> within the set.</li>
<li>We should prefer using the <em>simplest, strongest forms</em> for the most common gestures.</li>
<li>All symbols should fit within <em>constant vertical space</em>, and have similar vertical visual weight.</li>
</ul>

<p>These are simple, utilitarian and common-sense constraints, with an emphasis on making something that&#8217;s usable rather than conceptually perfect (which is almost always the right approach for anything).</p>

<h3>Fingers vs Gestures</h3>

<p>Before I list the symbols, I want to briefly mention the <em>number of fingers</em> issue. I&#8217;ve seen plenty of sketches and icons where, for example, a two-finger swipe-right is represented as two right-pointing arrows, one above the other. That&#8217;s fine in itself, but it completely breaks scaleability at small sizes &#8211; particularly if you&#8217;re requiring a four-finger swipe for some reason.</p>

<p>I wanted to avoid that problem with Touch Notation, so my approach was to separate the <em>number of fingers</em> from the <em>gesture</em>. After all, a tap is conceptually the same &#8220;gesture&#8221; whether you&#8217;re tapping with one finger or with two. I specify the number of fingers first (which is optional for the most common case of only one finger), then the actual gesture (with a gap between the two sections).</p>

<p>There are a few alternate notations I&#8217;ve experimented with for showing the number of fingers:</p>

<ul>
<li><strong>Number Only</strong>. This is the one I actually use on a day-to-day basis, because it&#8217;s as simple as writing/typing a number.</li>
</ul>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/fingers_number_only.png" width="44" height="65" alt="3 fingers; number only"/></div>

<ul>
<li><strong>Number and Symbol</strong>. As with Number Only, but followed by a &#8220;Finger&#8221; symbol (shown below in the full list of symbols). Since the Finger symbol is a sort of vertical lozenge shape, you&#8217;d likely want to distinguish this from (say) the numeral 1 by using colour or some such thing.</li>
</ul>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/fingers_number_symbol.png" width="89" height="65" alt="3 fingers; number and symbol"/></div>

<ul>
<li><strong>Multiple Symbols</strong>. No number, and instead repeating the Finger symbol the appropriate number of times.</li>
</ul>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/fingers_symbols.png" width="93" height="65" alt="3 fingers; symbols only"/></div>

<p>It really depends what you find most useful or pleasing. There&#8217;s actually less visual ambiguity from the Finger symbol than you might think, since (for example) confusing it for the numeral 1 doesn&#8217;t change its meaning in isolation, and in Number and Symbol style you&#8217;re unlikely to think it&#8217;s an additional numeral 1 after the actual number because it&#8217;s very uncommon indeed to require a double-digits number of fingers to perform a gesture!</p>

<p>Personally, I find the Number Only style to be the easiest to write, and least visually ambiguous at smaller sizes. I&#8217;ll be using it in all the examples below.</p>

<h3>Touch Notation Symbols</h3>

<p>Here&#8217;s the full set of symbols, and their meanings.</p>

<h4>Tap</h4>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/tap.png" width="154" height="103" alt="Tap symbol; a filled circle"/></div>

<p>A standard tap (and release).</p>

<h4>Tap and Hold</h4>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/tap_hold.png" width="154" height="103" alt="Tap and Hold symbol; a hollow circle"/></div>

<p>A tap and hold for a moment (without releasing). This gesture is sometimes also called a <em>long tap</em>.</p>

<p>I deliberated for a while about whether this symbol should actually be Tap, and the solid circle be Tap and Hold (the hollow area representing releasing the tap, in that case), but I decided against it since Tap is by far the most common gesture and I wanted it to have as strong and simple a form as possible.</p>

<h4>Swipe</h4>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/swipe.png" width="154" height="103" alt="Swipe symbol; a filled arrow"/></div>

<p>A swipe or flick across the screen, usually with no particular origin. The arrow is rotated to indicate the actual direction of the swipe.</p>

<h4>Rotate</h4>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/rotate.png" width="154" height="103" alt="Rotate symbol; two small, filled circles with curved arrows pointing clockwise"/></div>

<p>A rotation gesture, involving at least two fingers.</p>

<h4>Pinch Out</h4>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/pinch_out.png" width="154" height="103" alt="Pinch Out symbol; two diagonally-opposed filled arrows"/></div>

<p>An expansion/pinch-out gesture, involving at least two (and usually exactly two) fingers.</p>

<p>It&#8217;s worth noting that the Pinch Out/In symbols are horizontal reflections of the fairly-standard &#8220;Enter/Exit Full Screen&#8221; icons used on Mac OS X and elsewhere. The context of use will remove any ambiguity, and the symbols are too meaningful to pass up on that basis alone.</p>

<h4>Pinch In</h4>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/pinch_in.png" width="154" height="103" alt="Pinch In symbol; two diagonally-facing filled arrows"/></div>

<p>A pinch (inwards) gesture, involving at least two (and usually exactly two) fingers.</p>

<h4>Tap and Drag</h4>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/tap_drag.png" width="154" height="103" alt="Tap and Drag symbol; a filled arrow with a filled circle at its tail"/></div>

<p>A tap and then drag, without releasing and without any explicit pause between tapping and dragging. This is distinct from a Swipe in that a Tap and Drag usually has a specific origin point: the object you&#8217;re dragging.</p>

<h4>Tap, Hold and Drag</h4>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/tap_hold_drag.png" width="154" height="103" alt="Tap, Hold and Drag symbol; a filled arrow with a hollow circle at its tail"/></div>

<p>A tap, hold for a moment, and then drag (commonly involving a transition in object-state after the hold period has elapsed).</p>

<h4>Finger</h4>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/finger.png" width="154" height="103" alt="Finger symbol; a vertical, filled rounded-rectangle or lozenge"/></div>

<p>The symbol for a finger, which can optionally be used when specifying the number of fingers required for a gesture (as described above).</p>

<h3>Examples</h3>

<p>Here are a few examples of using Touch Notation to encode various gestures. When I&#8217;m creating formal documents using Touch Notation, I tend to use black for the number of fingers and blue for the entire gestural part, just to give a subtle sense of energy and motion to the gesture. You&#8217;ll find that the gesture instructions in tutorials in the iPad versions of the iWork apps do the same thing.</p>

<ul>
<li><strong>Tap</strong> (with 1 finger)</li>
</ul>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/example_tap.png" width="62" height="65" alt="Tap with one finger"/></div>

<ul>
<li><strong>Double-tap with 3 fingers</strong></li>
</ul>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/example_3fingers_2taps.png" width="210" height="65" alt="Double tap with three fingers"/></div>

<ul>
<li><strong>Swipe right with 2 fingers</strong></li>
</ul>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/example_2fingers_swipe.png" width="147" height="65" alt="Swipe right with two fingers"/></div>

<p>I find that the best way to read these gestures is to first read the black number, prepare that number of fingers, then follow along with the blue symbols of the gesture: &#8220;with <em>this</em> number of fingers, do <em>that</em>&#8220;.</p>

<h3>Quantity Modifiers</h3>

<p>I sometimes want to specify that, say, the user will tap and hold for <em>two seconds</em>, or will rotate for <em>45 degrees</em>. I use leading or trailing numbers to indicate these situations, with the position of the number depending on the actual affinity of the value to the symbol. There are a couple of examples below.</p>

<ul>
<li><strong>Tap and Hold for 2 seconds, then drag</strong></li>
</ul>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/quantity_2s_tap_hold_drag.png" width="191" height="65" alt="Tap and Hold for two seconds, then drag"/></div>

<ul>
<li><strong>Tap and Hold (for some default period), then drag for 2 seconds</strong></li>
</ul>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/quantity_tap_hold_drag_2s.png" width="191" height="65" alt="Tap and Hold, then drag for two seconds"/></div>

<h3>Sequential and Split Input</h3>

<p>By default, since we&#8217;re dealing with multi-touch gestures, two consecutive tap symbols (for example) indicate performing two taps quickly, i.e. a double-tap. Sometimes, however, I want to express that the user should tap, wait a moment, then tap again &#8211; as two sequential gestures. I use the <em>comma</em> for this, since it has a fairly standard meaning of indicating a brief pause.</p>

<ul>
<li><strong>Double Tap</strong></li>
</ul>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/sequence_double_tap.png" width="125" height="65" alt="Double Tap"/></div>

<ul>
<li><strong>Tap, then Tap again</strong></li>
</ul>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/sequence_tap_tap.png" width="136" height="65" alt="Tap then Tap again"/></div>

<p>In touch-screen gestures, there&#8217;s also the (not so well-known) concept of a <em>split tap</em>; this is where you&#8217;re performing one action with one hand, and then (simultaneously) perform an action with the other hand, as a single gesture.</p>

<p>This is commonly used in VoiceOver, where for example the user can roll a finger over the keyboard until they hear that they&#8217;re arrived at the correct key, then tap a finger of their other hand anywhere on screen to enter that key. Split taps in VoiceOver allow for much easier text-entry where precision is only important for <em>one</em> hand.</p>

<p>I think the general concept of split input is interesting and useful, so I included it in the notation: I use a <em>forward-slash</em> to indicate the split. I don&#8217;t consider this to create ambiguity, since I only ever encode <em>one</em> gesture in a notation sequence, so I wouldn&#8217;t be using a forward-slash to mean &#8220;or&#8221;, as it can in English.</p>

<ul>
<li><strong>Tap and Hold, then Drag, and then Tap elsewhere with another finger</strong></li>
</ul>

<div class="screenshot"><img src="http://mattgemmell.com/images/touch_notation/tap_hold_drag_split_tap.png" width="200" height="65" alt="Tap and Hold, then Drag, and then Tap elsewhere with another finger"/></div>

<h3>Download your own set of Touch Notation symbols</h3>

<p>I find this notation useful, and you&#8217;re welcome to use it too. If you use it anywhere other than in-house, I&#8217;d appreciate attribution. I&#8217;m offering a Photoshop (.psd) file containing each symbol as a Shape Layer (with all symbols at their original relative sizes), a Photoshop Custom Shapes (.csh) file so you can use Touch Notation in any Photoshop document, and also the original Illustrator (.ai) file I created the symbols in.</p>

<p>You can <a href="http://mattgemmell.com/files/touch_notation.zip">download Touch Notation here</a>.</p>

<p>License info is included with the download; it&#8217;s a <a href="http://creativecommons.org/licenses/by-sa/2.5/scotland/">Creative Commons Attribution-ShareAlike license</a>.</p>

<p>Oliver Toscan also made an OmniGraffle Stencil of the Touch Notation symbols; you can <a href="http://www.lighthouseinmypocket.com/touchnotation.zip">download it here</a>.</p>

<h3>Final Thoughts</h3>

<p>I&#8217;ve found Touch Notation to be really useful in my own work; I just keep a quick symbol-reference around (though I rarely need to refer to it now) for when I&#8217;m sketching, and I&#8217;ll occasionally make formal lists of gestures for features electronically using the templates. I find that it has just the right balance of simplicity and expressiveness that I actually <em>do</em> use it.</p>

<p>I hope you find a use for it in your workflow, or at the very least get some value from comparing it to your own notation style; I always welcome any feedback you may have. If you&#8217;re feeling grateful/generous, feel free to take a look at <a href="http://www.amazon.co.uk/gp/registry/registry.html/ref=w_h_em-si-html_viewall?id=1BGIQ6Z8GT06F">my Amazon Wishlist</a>, or the Paypal Donate link on <a href="http://mattgemmell.com/source">my Cocoa Source Code page</a>.</p>

<p>Remember that you can always keep up to date with what I&#8217;m doing by <a href="http://twitter.com/mattgemmell">following me (mattgemmell) on Twitter</a>. Now, back to work.</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/e_oqIOy8ils" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2010/07/14/touch-notation/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2010/07/14/touch-notation</feedburner:origLink></item>
		<item>
		<title>MGImageUtilities</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/gXrpLo9ILyM/mgimageutilities</link>
		<comments>http://mattgemmell.com/2010/07/05/mgimageutilities#comments</comments>
		<pubDate>Mon, 05 Jul 2010 09:18:34 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA["Retina Display"]]></category>
		<category><![CDATA[category]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[crop]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[resize]]></category>
		<category><![CDATA[scale]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[tint]]></category>
		<category><![CDATA[UIColor]]></category>
		<category><![CDATA[UIImage]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=1963</guid>
		<description><![CDATA[MGImageUtilities is a collection of useful UIImage categories for iPhone and iPad developers, which may be particularly handy if you intend to support the Retina Display on iPhone 4. I use these in my visual speed-dial app, Favorites for iPhone, and I thought you might find them handy too. UIImage+ProportionalFill This category lets you resize [...]]]></description>
			<content:encoded><![CDATA[<p>MGImageUtilities is a collection of useful UIImage categories for iPhone and iPad developers, which may be particularly handy if you intend to support the Retina Display on iPhone 4.</p>

<p>I use these in my visual speed-dial app, <a href="http://instinctivecode.com/favorites">Favorites for iPhone</a>, and I thought you might find them handy too.</p>

<p><span id="more-1963"></span></p>

<h3>UIImage+ProportionalFill</h3>

<p>This category lets you resize an arbitrary image to fit into a specified physical size, using one of four resizing methods:</p>

<ul>
<li><strong>Scale</strong>: scales the image proportionally to fit entirely into the required size, like UIViewContentModeScaleAspectFit.</li>
<li><strong>Crop</strong>: scales the image proportionally to completely <em>fill</em> the required size, cropping towards its <em>center</em>. This is the most useful method, and works like UIViewContentModeScaleAspectFill.</li>
<li><strong>Start</strong>: as for Crop, but crops towards the &#8220;<em>start</em>&#8221; of the image (the top or left, depending on relative aspect ratios).</li>
<li><strong>End</strong>: as for Crop, but crops towards the &#8220;<em>end</em>&#8221; of the image (the bottom or right, depending on relative aspect ratios).</li>
</ul>

<p>This is very useful for caching on-screen-sized versions of images, and generating appropriate images for use on a Retina Display. I use it to appropriately resize photos (and many other things) throughout Favorites:</p>

<div class="screenshot"><img src="http://mattgemmell.com/images/faves_buttons.jpg" width="300" height="339" alt="Screenshot of contact photos in Favorites" /></div>

<p>The category will do the right thing based on the image&#8217;s orientation metadata (like in photos taken with the iPhone&#8217;s camera, for example), and the scale factor of the device&#8217;s main screen (i.e. the resulting image will look as sharp as possible on high-resolution devices like an iPhone 4).</p>

<h3>UIImage+Tint</h3>

<p>This category takes an image (presumably flat and solid-coloured, like a toolbar icon), and fills its non-transparent pixels with a given colour. You can optionally also specify a fractional opacity at which to composite the original image over the colour-filled region, to give a tinting effect.</p>

<p>This is very useful for generating multiple different-coloured versions of the same image, for example &#8216;disabled&#8217; or &#8216;highlighted&#8217; states of the same basic image, without having to make (or update later!) multiple different-coloured bitmap image files. I use it to make the blue and grey versions of the badges in Favorites, for use in the editing UI:</p>

<div class="screenshot"><img src="http://mattgemmell.com/images/faves_badges.jpg" width="400" height="240" alt="Screenshot of badge choosing screen in Favorites" /></div>

<h3>Download the code</h3>

<p>You can <a href="http://github.com/mattgemmell/MGImageUtilities">get MGImageUtilities on github</a>. If you don&#8217;t know how to use git, just click the &#8220;Download Source&#8221; button near the top-right of the github page to download a local copy of the code as a zip or tar archive.</p>

<p>The categories are included in a demo app (for iPhone) which shows how to use them. Here&#8217;s a screenshot of the app running:</p>

<div class="screenshot"><img src="http://mattgemmell.com/files/source/mgimageutilities.jpg" width="400" height="575" alt="Screenshot of MGImageUtilities demo app" /></div>

<p>The license for the code is included with the project; it&#8217;s <a href="http://mattgemmell.com/license" title="Source Code License">my usual BSD-like license</a> with attribution.</p>

<p>I can&#8217;t answer any questions about how to use the code, but I always welcome emails telling me that you&#8217;re using it or just saying thanks. If you&#8217;re feeling grateful/generous, feel free to take a look at <a href="http://www.amazon.co.uk/gp/registry/registry.html/ref=w_h_em-si-html_viewall?id=1BGIQ6Z8GT06F">my Amazon Wishlist</a>, or the Paypal Donate link on <a href="http://mattgemmell.com/source">my Cocoa Source Code page</a>.</p>

<p>Remember that you can always keep up to date with what I&#8217;m doing by <a href="http://twitter.com/mattgemmell">following me (mattgemmell) on Twitter</a>. I hope you find the code useful!</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/gXrpLo9ILyM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2010/07/05/mgimageutilities/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2010/07/05/mgimageutilities</feedburner:origLink></item>
		<item>
		<title>World According To Gemmell Workshop Videos</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/YcfGBQidiPU/world-according-to-gemmell-workshop-videos</link>
		<comments>http://mattgemmell.com/2010/06/29/world-according-to-gemmell-workshop-videos#comments</comments>
		<pubDate>Tue, 29 Jun 2010 09:00:08 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[speaking]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[experience]]></category>
		<category><![CDATA[gemmell]]></category>
		<category><![CDATA[interaction]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[nsconference]]></category>
		<category><![CDATA[training]]></category>
		<category><![CDATA[uk]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[user]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[watg]]></category>
		<category><![CDATA[workshop]]></category>
		<category><![CDATA[world]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=1953</guid>
		<description><![CDATA[Earlier this year I was an invited speaker at NSConference 2010 in both the UK (Reading, England) and the US (Atlanta, Georgia). I also held a whole-day workshop in both locations based on my recurring World According To Gemmell segment on The MDN Show podcast. The entire workshop was recorded (both audio and video). I [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier this year I was an invited speaker at <a href="http://nsconference.com/">NSConference</a> 2010 in both the UK (Reading, England) and the US (Atlanta, Georgia). I also held a whole-day workshop in both locations based on my recurring <em>World According To Gemmell</em> segment on <a href="http://www.mac-developer-network.com/shows/podcasts/mdnshow/">The MDN Show</a> podcast.</p>

<p>The entire workshop was recorded (both audio and video). I wore a mic, and there were several microphones and cameras around the room to capture the discussion which formed an essential part of the workshop. <a href="http://www.mac-developer-network.com/video/video101031.html">The workshop videos are now available here</a>; they&#8217;re free to attendees, or you can buy them (4.5 hours of content) for $49.99. Whilst I do get some royalties, the main proceeds go to the Mac Developer Network to help support more developer podcasts, training materials and conferences in future.</p>

<p>You can <a href="http://www.mac-developer-network.com/video/video101031.html">read a synopsis of the workshop on the video page</a>; we covered a lot of ground, and had some excellent discussion. It was split into two main parts: an initial 1-hour lecture on iPad application design with follow-up discussion, then a series of UI/UX/design questions submitted by attendees before the workshop, which we discussed as a group.</p>

<p>We discussed plenty of interesting material, and I think the videos represent the workshop well (I&#8217;ve watched the entire thing within the past few days). I hope you&#8217;ll enjoy them. Many thanks of course to <a href="http://twitter.com/macdevnet">Scotty</a>, Dave and all the MDN/NSConference staff for making the event possible.</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/YcfGBQidiPU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2010/06/29/world-according-to-gemmell-workshop-videos/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2010/06/29/world-according-to-gemmell-workshop-videos</feedburner:origLink></item>
		<item>
		<title>Shareable Experiences</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/2gDVEAm08iI/shareable-experiences</link>
		<comments>http://mattgemmell.com/2010/06/26/shareable-experiences#comments</comments>
		<pubDate>Sat, 26 Jun 2010 19:18:16 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[emotion]]></category>
		<category><![CDATA[experience]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[joy]]></category>
		<category><![CDATA[nintendo]]></category>
		<category><![CDATA[share]]></category>
		<category><![CDATA[social]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[user]]></category>
		<category><![CDATA[viral]]></category>
		<category><![CDATA[wii]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=1931</guid>
		<description><![CDATA[There&#8217;s a lot of buzz at the moment around &#8220;social&#8221; aspects of software, websites and so forth; so much so that the word is starting to lose its meaning. It&#8217;s an important consideration nonetheless, because humans are social creatures and the best kind of marketing is the kind that other people do for you, for [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a lot of buzz at the moment around &#8220;social&#8221; aspects of software, websites and so forth; so much so that the word is starting to lose its meaning. It&#8217;s an important consideration nonetheless, because humans are social creatures and the best kind of marketing is the kind that other people do for you, for free.</p>

<p>As usual, though, lots of companies get it subtly wrong, thinking that adding social functionality or a community aspect is enough. Social <em>features</em> aren&#8217;t a silver bullet; they&#8217;re actually sort of besides the point.</p>

<p><span id="more-1931"></span>Games which automatically tweet your achievements are an example of such a ham-fisted, confused approach. That kind of thing irritates and alienates those you&#8217;re trying to attract, and indeed damages the reputation of your existing customers amongst their friends or peers. Sure, it gets eyeballs for a brief moment, but the fall-off and collateral damage are horrendous. People don&#8217;t share things that way; it&#8217;s not organic and it reeks of necktie-wearing sleazy marketeering.</p>

<p>Building in social features for their own sake isn&#8217;t a route to massive success. Anyone who tries to tell you that taking an arbitrary app and adding Twitter or Facebook integration (or adding a forum to your website, or adding a StumbleUpon or Digg link, or Reputations, or Medals, or global high scores) will automatically make your customer base mushroom, is guilty of either stupidity or downright dishonesty. It doesn&#8217;t work that way, because <em>people</em> don&#8217;t work that way.</p>

<p>Here&#8217;s the reality: people don&#8217;t just share things because they have the ability to do so. <em>People share things they want others to experience.</em> It&#8217;s about the <em>thing</em>, not about the <em>sharing</em>. I&#8217;m not sure how to make that more obvious.</p>

<p>You don&#8217;t succeed at social/viral marketing just because you make it a little easier to share, and nor do you succeed based on the raw, native appeal of the experience. Rather, it&#8217;s about <em>shareability</em>.</p>

<p>Shareability is the degree to which you want <em>someone else</em> to have the same response to a thing that <em>you</em> had. One company that understands this point is Apple. They don&#8217;t just make things that <em>you</em> want to have; they make <em>things you want others to have too</em>. Ditto for Nintendo, particularly with the Wii. And the real kicker is that their stuff is particularly easy for other people to experience, because it&#8217;s easier to <em>use</em> in the first place. So, it&#8217;s an easy decision to share it.</p>

<p>That&#8217;s why focusing on social features is a skewed approach; you&#8217;re targeting a possible means to an end, rather than the end itself. It&#8217;s a classic error; exactly the kind of strategy that comes from ponderous corporations, last-century thinking, and/or click-counting cynicism.</p>

<p>The problem is that you&#8217;re supplying the &#8220;how&#8221; for sharing, and neglecting the &#8220;why&#8221;. What you <em>should</em> be doing is spending all that energy (and every penny of that budget) designing an experience that doesn&#8217;t just <em>benefit from</em> the participation of others, nor even that <em>requires</em> others, but rather that your users <em>will actually want others to enjoy</em>. That&#8217;s the critical point. Write it down somewhere.</p>

<p>At this point, marketeers will talk about reducing barriers to sharing (they&#8217;ll likely use fashionable words like &#8220;friction&#8221; too), and how important that is. They&#8217;re wrong; it&#8217;s really not that important, because <em>your customers will find a way</em>. Seriously, do you doubt that for even a second?</p>

<p>Sharing doesn&#8217;t happen because you create the <em>mechanism</em> for it; it happens because you create the <em>motivation</em>. Indeed, when the users wants to share something, they will find a way to do so even if you haven&#8217;t provided one. So spend time on motivation, not mechanism. Don&#8217;t give money to people who claim to be able to &#8220;social-up&#8221; your arbitrary product; you&#8217;re doing it wrong.</p>

<p>If you want your customers to do your marketing, you need to be thinking about more than high-scores or ad-hoc network games or multiple user accounts. For real people, the key sharing motivator is <em>joy</em>; the natural human desire to share joy with people we care about. Apple has this down. Do you?</p>

<p>It&#8217;s not enough to be social; you need to be <em>shareable</em>.</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/2gDVEAm08iI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2010/06/26/shareable-experiences/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2010/06/26/shareable-experiences</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.545 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-09-02 10:20:52 --><!-- Compression = gzip -->
