{"id":1166,"date":"2009-10-14T11:32:59","date_gmt":"2009-10-14T18:32:59","guid":{"rendered":"http:\/\/www.bibik.org\/blog\/?p=1166"},"modified":"2009-10-14T11:32:59","modified_gmt":"2009-10-14T18:32:59","slug":"webkit-versus-the-iphone-beats-android","status":"publish","type":"post","link":"https:\/\/bibik.org\/index.php\/2009\/10\/14\/webkit-versus-the-iphone-beats-android\/","title":{"rendered":"Webkit versus, the iPhone beats Android"},"content":{"rendered":"<p>With the recent announcement of the first Android phone with the Snapdragon processor, the <a href=\"http:\/\/www.engadgetmobile.com\/2009\/10\/14\/acer-liquid-mixes-snapdragon-and-android-1-6-donut-for-a-movab\/\">Acer Liquid<\/a>, I had hopes that the browser would finally be up to snuff with the one found on the iPhone! \u00c2\u00a0 Instead of waiting for the Liquid to be released, I realized I could do some testing on my desktop. \u00c2\u00a0 The Android emulator, while not flawless, should be a pretty good indication of how the device would work with more CPU power.<\/p>\n<p>The WebKit-based browser on Android has always bugged me, mostly because I&#8217;m used to the silky smooth browser on the iPhone. \u00c2\u00a0Scrolling, flicking and nudging all work fantastically on the iPhone. \u00c2\u00a0 As I&#8217;ve mentioned before, it feels like the page is resting on a sheet of glass as there is no hesitation to the scrolling. \u00c2\u00a0Also, the flick scrolling physics are calibrated to a usable level. \u00c2\u00a0 A full-speed flick will scroll down about two pages worth of data. \u00c2\u00a0Any more than that and a user will lose context of where they are on the page.<\/p>\n<p>I fired up the Android emulator and did some tests. \u00c2\u00a0 I found one glaring flaw and one issue that could be fixed quickly. \u00c2\u00a0The reason why the browser seems so jerky is because it always starts with a jump! \u00c2\u00a0 Just try it: \u00c2\u00a0the browser ignores the scrolling motion until a certain threshold is hit. \u00c2\u00a0The threshold isn&#8217;t time-based but distance-based, 25 pixels to be exact. \u00c2\u00a0Once that 25 pixel threshold is hit, the browser doesn&#8217;t just start scrolling but moves the page those 25 pixels immediately. \u00c2\u00a0The iPhone has a threshold but it is much smaller and the initial threshold value is ignored. \u00c2\u00a0 The screen doesn&#8217;t immediately jump to have the screen position catch up to the finger.<\/p>\n<p>The smaller issue is how far the page moves once it&#8217;s flicked. \u00c2\u00a0Using Google REader as my test platform, a full-speed flick will scroll down by 10 list items on the iPhone but 29 items on Android. \u00c2\u00a0It&#8217;s a tough compromise, trying to find a multiplier that works for all scenarios. \u00c2\u00a0If a user is scrolling at normal speed, the page should move at a 1:1 ratio. \u00c2\u00a0With a flick, the user obviously wants to move through the content faster but at what rate? \u00c2\u00a0The iPhone takes a conservative approach and moves at roughly 2:1, scrolling down about two pages for a full-page flick. \u00c2\u00a0 Android takes a reasonable approach and scrolls at almost 5:1. \u00c2\u00a0For a long page, you could flick through lots of content very rapidly on Android. \u00c2\u00a0Unfortunately, 5:1 is just too great. \u00c2\u00a0 You can&#8217;t really process all five pages\u00c2\u00a0that\u00c2\u00a0just whipped past you. \u00c2\u00a0 2:1 might be too small but 5:1 is far too quick.<\/p>\n<p>I can only assume the 25 pixel threshold was to keep the user from initiating scrolling too easily, especially if they were just trying to click on a link. \u00c2\u00a0 Initiating press-and-hold on an object would be even more important as the user needs to press a specific area for at least a second. \u00c2\u00a0I think this 25 pixel threshold is too high and the jump is completely unnecessary. \u00c2\u00a0Android is open source, right? \u00c2\u00a0Where can I submit a patch to fix this?<\/p>\n<p><strong>Update<\/strong>: \u00c2\u00a0Ha, I found the actual line in the code!<\/p>\n<pre><span style=\"color: #000000;\"><a href=\"http:\/\/android.git.kernel.org\/?p=platform\/frameworks\/base.git;a=blob;f=core\/java\/android\/view\/ViewConfiguration.java\">http:\/\/android.git.kernel.org\/?p=platform\/frameworks\/base.git;a=blob;f=core\/java\/android\/view\/ViewConfiguration.java<\/a>:<\/span><\/pre>\n<pre><span style=\"color: #000000;\"><a href=\"http:\/\/android.git.kernel.org\/?p=platform\/frameworks\/base.git;a=blob;f=core\/java\/android\/view\/ViewConfiguration.java\"><\/a><span style=\"background-color: #ffffff;\">private\u00c2\u00a0static\u00c2\u00a0final\u00c2\u00a0int\u00c2\u00a0<span style=\"color: #e00000;\">TOUCH_SLOP<\/span> =\u00c2\u00a025;<\/span><\/span><\/pre>\n<p><span style=\"color: #000000;\"><span style=\"background-color: #ffffff;\">25 is too big! <\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>With the recent announcement of the first Android phone with the Snapdragon processor, the Acer Liquid, I had hopes that the browser would finally be up to snuff with the one found on the iPhone! \u00c2\u00a0 Instead of waiting for the Liquid to be released, I realized I could do some testing on my desktop. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1166","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/bibik.org\/index.php\/wp-json\/wp\/v2\/posts\/1166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bibik.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bibik.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bibik.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bibik.org\/index.php\/wp-json\/wp\/v2\/comments?post=1166"}],"version-history":[{"count":0,"href":"https:\/\/bibik.org\/index.php\/wp-json\/wp\/v2\/posts\/1166\/revisions"}],"wp:attachment":[{"href":"https:\/\/bibik.org\/index.php\/wp-json\/wp\/v2\/media?parent=1166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bibik.org\/index.php\/wp-json\/wp\/v2\/categories?post=1166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bibik.org\/index.php\/wp-json\/wp\/v2\/tags?post=1166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}