<?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>The Sea of Ideas &#187; apple</title>
	<atom:link href="http://paulbakaus.com/tag/apple/feed/" rel="self" type="application/rss+xml" />
	<link>http://paulbakaus.com</link>
	<description>Capturing the thoughts of Paul Bakaus</description>
	<lastBuildDate>Thu, 02 Feb 2012 15:34:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>The usability series: Responsiveness</title>
		<link>http://paulbakaus.com/2009/04/30/the-usability-series-responsiveness/</link>
		<comments>http://paulbakaus.com/2009/04/30/the-usability-series-responsiveness/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 10:17:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Productivity]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[responsiveness]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://paulbakaus.com/?p=158</guid>
		<description><![CDATA[Usability is something I consider a major part of my professional life. I even tend to think of it as the key to any good website or application. If it&#8217;s unusable, it doesn&#8217;t help if it can spit out flying dragons. That&#8217;s why rather than doing one summary post on the fundamentals, I decided to [...]]]></description>
			<content:encoded><![CDATA[<p>Usability is something I consider a major part of my professional life. I even tend to think of it as the key to any good website or application. If it&#8217;s unusable, it doesn&#8217;t help if it can spit out flying dragons. That&#8217;s why rather than doing one summary post on the fundamentals, I decided to discuss one usability pattern at a time and dig into it really deep. As first entry in this series, I decided to go with a key fundamental often forgotten even by the pro&#8217;s &#8211; <strong>responsiveness</strong>.</p>
<h3>What&#8217;s it all about?</h3>
<p>For real people to actually use your application in daily life, it&#8217;s not enough to bundle it with a nice UI and a bunch of cool features, it has to be really responsive as well. The reasoning is simple &#8211; people hate to wait. People hate to wait in<br />
lines (except the British, hehe), they hate to wait for their salary, they hate to wait for the weekend to arrive and they<br />
hate to wait for the next season of their beloved TV series. Ok, sometimes the anger can transform into excitement (and vica versa) &#8211; but raise your hopes too much, this seldom happens in the case of web apps. Yes, people hate to wait after the click.</p>
<p>Responsiveness is often described by <em>how quickly an application reacts upon a user triggered action</em>. Basically <strong>everything we do in the web is interaction</strong>- the website or application waits for an user action and then replies. There has been already a lot of research on today&#8217;s topic, concluding for instance that people already get the feeling they&#8217;re waiting if the result doesn&#8217;t come up in less than 0.5 seconds. But the answer to the problem is the tricky bit.</p>
<h3>The obvious solution: Performance optimizations  </h3>
<p>Many of todays apps and websites are Ajax driven, to the extend that a user initiated action triggers a request to the server. This is why the most obvious solution coming to mind is to<strong> improve the time each request takes</strong>. Be careful though &#8211; this is also exactly why responsiveness is so often forgotten in the frontend planning. People tend to think of it as something non-visual, therefore they let the backend guys do the work.</p>
<p>Now after you speeded up the requests and your backend, you have to take the frontend really serious. The <strong>JavaScript powering your website is often the most visible bottleneck</strong> because it&#8217;s directly happening on the client, even before any backend request can happen. And it&#8217;s not only JavaScript &#8211; heavy usage of CSS Frameworks (especially resets) for instance can horribly slow down any application as well. Remember &#8211; <strong>if your frontend performs bad, the backend guys don&#8217;t even have a chance to make up for it</strong>. Of course I could go into detail how to actually optimize your code, but that&#8217;s content for another blog post.</p>
<h3>Transparency and disguise</h3>
<p>In the last couple years I noticed a general pattern when designing a responsive experience. There are essentially two ways to tackle it: The first is <strong>total transparency</strong> &#8211; the user should <em>never</em> be clueless, and if the application is in a loading state, tell it to your user so he doesn&#8217;t get annoyed too much. The second, and to me the one with almost unlimited potential is <strong>illusion</strong>.</p>
<h3>Fixing the experience without fixing the implementation</h3>
<p>Something only very few people I met realized is that <strong>an application can be improved even without fixing the implementation</strong>. There is really only one thing that matters to the user &#8211; how the application feels. Yes, let me repeat that: Your implementation doesn&#8217;t have to <strong>be  </strong> responsive &#8211; it just has to <strong>feel</strong> that way.</p>
<h3>Apple &#8211; masters of illusion</h3>
<p>The best way to describe what I mean by making your application *feel* responsive is through a perfect example. It&#8217;s the best <strong>illusion of responsiveness</strong> I&#8217;ve seen so far. I&#8217;m talking about the <strong>iPhone</strong>.</p>
<p>The iPhone runs a very sophisticated operating system based on Mac OS X, with thousands of API&#8217;s for developers to use. Combined with the fact that the iPhone isn&#8217;t running particularly fast hardware (more than a standard cellphone, but way less than any netbook), simple performance optimizations could only get you so far here, and this is is where the magic comes in.</p>
<p>Almost every interaction on the <strong>iPhone uses an animation to transition from one state to another</strong>. You&#8217;ll see animations when you launch or quit applications, when you slide through screens and on many other instances, sometimes so tiny you don&#8217;t realize it. Since they&#8217;re very well integrated into the general flow of the interaction, <strong>they not only excite users but serve as visual cue helpers</strong> that let the user &#8216;grasp&#8217; what&#8217;s happening. But the key is what happens during the animation: Any application you launch or close on the iPhone needs time to initialize and to de-initialize. You guessed it already: It&#8217;s all done when the user is distracted by a beautiful zoom effect. How cool is that?</p>
<p>As a summary: <strong>At the cost of slowing down the operating system</strong> in technical terms (every animation takes a fixed amount of time), Apple improved the whole user experience and <strong>made the iPhone feel extremely responsive</strong>  .</p>
<div style="height:1px;overflow:hidden">
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://www.rxpillsstore.com/">canadian pharmacy no prescription</a></div>
<h3>Loading indicators</h3>
<p>As a conclusion to the illusion technique, in 90% of all cases <strong>a loading indicator is evil</strong>. Why on earth would you want to highlight the slow parts of your application? That being said, a loading indicator is always better than a frozen state and a clueless user. As a general rule, <strong>only add a loading indicator to your application if all other improvements fail</strong>. For instance, there are situations where you absolutely can&#8217;t predict when the result will arrive. Imagine a multiplayer game with two players, and you&#8217;re waiting for the other player to select his character. In this case you have to notify the user that the game is waiting for a response.</p>
<p>See you next time!</p>
]]></content:encoded>
			<wfw:commentRss>http://paulbakaus.com/2009/04/30/the-usability-series-responsiveness/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

