<?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>lexanderA &#187; browser</title>
	<atom:link href="http://lexandera.com/tag/browser/feed/" rel="self" type="application/rss+xml" />
	<link>http://lexandera.com</link>
	<description>A blog about the web, mobile web, semantic web and mobile semantic web.</description>
	<lastBuildDate>Sun, 06 Jun 2010 18:27:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Replacing menus with dashboards</title>
		<link>http://lexandera.com/2009/09/replacing-menus-with-dashboards/</link>
		<comments>http://lexandera.com/2009/09/replacing-menus-with-dashboards/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 09:00:23 +0000</pubDate>
		<dc:creator>Aleksander Kmetec</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[dashboard]]></category>
		<category><![CDATA[Menu]]></category>
		<category><![CDATA[tabs]]></category>
		<category><![CDATA[url field]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://lexandera.com/?p=485</guid>
		<description><![CDATA[Is it just me, or do most dialogs on Android seem to be removed really, really far away from the main parts of applications?
Not sure what I&#8217;m talking about?
Let&#8217;s take a look at the browser, for example. Just entering a new URL requires you to go through 3 different screens:

By the time you can start [...]]]></description>
			<content:encoded><![CDATA[<p>Is it just me, or do most dialogs on Android seem to be removed really, really far away from the main parts of applications?</p>
<p>Not sure what I&#8217;m talking about?</p>
<p>Let&#8217;s take a look at the browser, for example. Just entering a new URL requires you to go through 3 different screens:</p>
<p><a href="http://lexandera.com/wp-content/uploads/2009/09/1_current.png"><img class="alignnone size-full wp-image-498" src="http://lexandera.com/wp-content/uploads/2009/09/1_current_small.png" alt="" width="714" height="180" /></a></p>
<p>By the time you can start typing it feels like you&#8217;re already in a different application<sup class='footnote'><a href='#fn-485-1' id='fnref-485-1'>1</a></sup>. Switching to a different window also involves going to a special part of the application designed to handle this single task.</p>
<p>This pattern is not limited just to the browser. Entering an address in the maps application or searching the list of your contacts also involves going through several steps.</p>
<p>Back to the browser&#8230;</p>
<p>If you take a look the UI of a regular browser you can immediately see a number of frequently used elements such as the location bar, the back button and tabs for switching between windows. Those UI elements are always visible and usable with a single click. On mobile devices things are a bit different. Because of limited screen sizes most of browser&#8217;s UI is either eating away precious screen real estate (like on the iPhone) or is hidden behind a menu button (like on Android).</p>
<p>Except that because of the nature of menus, many of those features are not hidden just behind the menu button, but also behind an item on that menu.</p>
<p>Now, just as I&#8217;m typing this, <a class="zem_slink" title="Marissa Mayer" rel="wikipedia" href="http://en.wikipedia.org/wiki/Marissa_Mayer">Marissa Mayer</a> is on the stage at <a class="zem_slink" title="TechCrunch50" rel="homepage" href="http://www.TechCrunch50.com">TechCrunch50</a> introducing <a href="http://fastflip.googlelabs.com/">Google fast flip</a> and talking about how Google is obsessed with speed and shaving milliseconds off of repetitive interactions. So what can can we do to speed up interaction with Google&#8217;s mobile browser?</p>
<p>First, we need to understand what&#8217;s wrong with menus.</p>
<p>A typical menu is a list of actions available for that application, but most of those actions can&#8217;t be performed from the menu itself. Instead, selecting an item takes you somewhere else where that action can finally be performed. In essence, a menu keeps asking the question &#8220;What do you want to do?&#8221; over and over again and the user then needs to explicitly say that he wants to go to to the place where he can type in an URL or go to the place where he can switch to a different window, etc.</p>
<p>How do we handle this situation where we know that in many applications the user&#8217;s answer to the menu&#8217;s question is going to be the same most of the time?</p>
<p>Like it is the case usually these days, the solution can already be found on the iPhone. No real surprise there. The iPhone doesn&#8217;t have built-in support for application menus which could be copied, but it does have this:</p>
<p><a href="http://lexandera.com/wp-content/uploads/2009/09/music_dashboard.png"><img class="alignnone size-full wp-image-499" src="http://lexandera.com/wp-content/uploads/2009/09/music_dashboard.png" alt="" width="211" height="159" /></a></p>
<p>What you&#8217;re looking at is a special dashboard for controlling music playback, which can be brought up by pressing the home button twice.</p>
<p>With a bit of bad luck &#8211; or bad judgment &#8211; this could have easily been implemented as a list of items such as &#8220;adjust volume&#8221; and &#8220;control playback&#8221;, with each of them leading to a new screen where that action could be performed. But instead its designers made it possible to perform common actions directly from the pop-up and added a &#8220;Music&#8221; button that takes you to that other app where the rest of the playback controls are.</p>
<p>So let&#8217;s take this dashboard pattern and apply it to Android&#8217;s browser menu:</p>
<p><a href="http://lexandera.com/wp-content/uploads/2009/09/2_alt1.png"><img class="alignnone size-full wp-image-500" title="2_alt1_small" src="http://lexandera.com/wp-content/uploads/2009/09/2_alt1_small.png" alt="2_alt1_small" width="544" height="180" /></a></p>
<p>While some features (like bookmarks) still remain hidden behind a menu button, the two most commonly used ones are immediately presented in usable form. The &#8220;go&#8221; button is replaced by an actual location bar and the &#8220;Windows&#8221; button is replaced by thumbnails of windows. You now no longer need to announce first that you want to go to a different page or switch to a different tab; you can perform that action directly instead.</p>
<p>A quick before/after comparison:</p>
<div>
<table id="c0m_" border="0" cellspacing="0" cellpadding="3" bordercolor="#000000">
<tbody style="font-size:90%;">
<tr>
<td style="border-bottom: 1px solid grey;"><strong>Action</strong></td>
<td style="border-bottom: 1px solid grey;"><strong>Before</strong></td>
<td style="border-bottom: 1px solid grey;"><strong>After</strong></td>
</tr>
<tr>
<td>Loading a web page</td>
<td>press &#8220;menu&#8221; → press &#8220;go&#8221; → focus URL field (3 steps)</td>
<td>press &#8220;menu&#8221; → focus URL field (2 steps)</td>
</tr>
<tr>
<td>Switching to a different window</td>
<td>press &#8220;menu&#8221; → press &#8220;tabs&#8221; → select tab (3 steps)</td>
<td>press &#8220;menu&#8221; → select tab (2 steps)</td>
</tr>
</tbody>
</table>
</div>
<p>Removing a single step here and there may not seem like much, but it adds up. Making a typo in the URL or working with several windows suddenly becomes just a little bit less frustrating. A simple improvement that can be achieved simply by ignoring the established meaning of the word &#8220;menu&#8221;.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/pixy.gif?x-id=6586ad72-cb6a-4cc4-902f-85df0363cdfb" alt="" /><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<div class='footnotes'>
<div class='footnotedivider'></div>
<ol>
<li id='fn-485-1'>Sure, if you have a phone with a physical keyboard you can just start typing and invoke the default action without going through menus, but what if your phone uses an onscreen keyboard or if you want to use some other action? <span class='footnotereverse'><a href='#fnref-485-1'>&#8617;</a></span></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://lexandera.com/2009/09/replacing-menus-with-dashboards/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>On named parameters</title>
		<link>http://lexandera.com/2009/05/on-named-parameters/</link>
		<comments>http://lexandera.com/2009/05/on-named-parameters/#comments</comments>
		<pubDate>Mon, 04 May 2009 04:07:30 +0000</pubDate>
		<dc:creator>Aleksander Kmetec</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Autocomplete]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[Named parameters]]></category>
		<category><![CDATA[URL]]></category>

		<guid isPermaLink="false">http://lexandera.com/?p=352</guid>
		<description><![CDATA[Here&#8217;s a proof that quitting your job and not working on anything for two months is not good for you: I just spent two days pondering why named function parameters are loved by coders and considered an important part of many programming languages while named parameters in URLs are considered to be ugly, harmful and [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a proof that quitting your job and not working on anything for two months is not good for you: I just spent two days pondering why named function parameters are loved by coders and considered an important part of many programming languages while named parameters in URLs are considered to be ugly, harmful and one of the leading causes of scurvy. Developers will even find a way to emulate named function parameters in languages which don&#8217;t support them by default while at the same time they will try their best to make all the parameters in URLs of their websites strictly positional. It makes everyone look a bit confused and bipolar, if you ask me.</p>
<p>Here&#8217;s a quick overview of the situation.</p>
<p>Named parameters in URLs: BAD<br />
<em><span><span> http://domain.com/list?type=fruit&amp;page=1&amp;items=20</span></span></em></p>
<p>Positional parameters in URLs: GOOD<br />
<em><span><span> http://domain.com/list/fruit/1/20</span></span></em></p>
<p>Named parameters in function calls: GOOD<br />
<em>foo.list(:type =&gt; &#8220;fruit&#8221;, :page =&gt; 1, :items =&gt; 20)</em></p>
<p>Why is this so? It might have more than just a little bit to do with the fact that coders spend a lot of their time reading, writing and modifying function calls, while URLs are only rarely modified by anyone (or even read, for that matter). The need to modify URLs is so rare in fact that many security holes exist only because developers never even remotely considered that someone might insert an unfriendly value into one of the parameters. It makes sense then that if URLs are only meant to be looked at, to make them short and pretty and clean of any characters which make them appear as if they&#8217;ve been involved in an explosion at the ASCII factory.</p>
<p>Why then is the URL, this unfriendly sequence of characters, still presented as a fully editable value? Is it really not possible to turn it into anything more than a barely readable &#8220;you are here&#8221; sign?</p>
<p>Microsoft managed to do something interesting with the way directory paths (URL&#8217;s distant relatives) are displayed in Vista and Windows 7: each directory is a separate button and clicking any one of them takes you directly to that directory.</p>
<div id="attachment_354" class="wp-caption alignnone" style="width: 489px"><img class="size-full wp-image-354" title="Windows explorer in Vista" src="http://lexandera.com/wp-content/uploads/2009/05/urlbar-vista-path.png" alt="Windows explorer in Vista" width="479" height="55" /><p class="wp-caption-text">Two different ways of displaying the same directory path</p></div>
<p>Couldn&#8217;t something similar be done for URLs? Here&#8217;s my suggestion: make it easy to experiment with different parameter values. Hide all the &#8220;noise&#8221; characters. Turn each key/value pair into a button and offer alternative values when somebody clicks them.</p>
<p><img class="alignnone size-full wp-image-355" title="Location bar" src="http://lexandera.com/wp-content/uploads/2009/05/urlbar-builder.png" alt="Location bar" width="481" height="87" /></p>
<p>Now, this might not catch on with your average Joe Streetperson, but it does look like it could be useful to developers when they are testing a website or a web service which returns different XML/JSON based on parameter values.</p>
<p>Think of it as <a class="zem_slink" title="IntelliSense" rel="wikipedia" href="http://en.wikipedia.org/wiki/IntelliSense">Intellisense</a> for the location bar.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/pixy.gif?x-id=2a9c2d7e-a319-43b2-9f0c-bffe5f520223" alt="" /><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://lexandera.com/2009/05/on-named-parameters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android WebChromeClient</title>
		<link>http://lexandera.com/2009/01/android-webchromeclient/</link>
		<comments>http://lexandera.com/2009/01/android-webchromeclient/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 03:30:16 +0000</pubDate>
		<dc:creator>Aleksander Kmetec</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[WebView examples]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[WebChromeClient]]></category>
		<category><![CDATA[WebView]]></category>

		<guid isPermaLink="false">http://lexandera.com/?p=179</guid>
		<description><![CDATA[My blog stats are telling me that many visitors are arriving here looking for examples on how to implement WebChromeClient on Android. I don&#8217;t (yet) have a nice article about how to do it, but you can have a look at how I implemented WebChromeClient in Mosembro, if you came here for that reason. Just [...]]]></description>
			<content:encoded><![CDATA[<p>My blog stats are telling me that many visitors are arriving here looking for examples on how to implement <a href="http://code.google.com/android/reference/android/webkit/WebChromeClient.html">WebChromeClient</a> on <a class="zem_slink" title="Android" rel="homepage" href="http://code.google.com/android/">Android</a>. I don&#8217;t (yet) have a nice article about how to do it, but you can <a href="http://code.google.com/p/mosembro/source/browse/trunk/src/com/lexandera/mosembro/Mosembro.java">have a look at how I implemented WebChromeClient in Mosembro</a>, if you came here for that reason. Just use your browser&#8217;s search functionality and look for &#8220;new WebChromeClient&#8221;.</p>
<div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/b89819f7-2769-4fb9-91f8-ab40a0b3e67b/" title="Zemified by Zemanta"><img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=b89819f7-2769-4fb9-91f8-ab40a0b3e67b" alt="Reblog this post [with Zemanta]"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://lexandera.com/2009/01/android-webchromeclient/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
