{"id":1488,"date":"2012-03-11T10:26:14","date_gmt":"2012-03-11T17:26:14","guid":{"rendered":"http:\/\/www.techory.com\/blog\/?p=1488"},"modified":"2012-03-11T11:19:11","modified_gmt":"2012-03-11T18:19:11","slug":"creating-responsive-html5-touch-interfaces","status":"publish","type":"post","link":"https:\/\/www.techory.com\/blog\/creating-responsive-html5-touch-interfaces\/","title":{"rendered":"Creating Responsive HTML5 Touch Interfaces"},"content":{"rendered":"<p><strong>Sunday, March 11 &#8211; 12:30PM &#8211; 1:30PM<br \/><\/strong>Stephen Woods Sr Software Engineer Flickr<\/p>\n<p>When working on the desktop, we&#8217;re worrying about browsers. You have to cover every case with various browser-specific CSS. On mobile, we worry about devices and not browsers.<\/p>\n<p>Most mobile platforms run webkit, but there are a few other (less used) browsers out there.<\/p>\n<p>Screen Size: Media Queries, Break points, liquid layouts.<\/p>\n<p>We need to concentrate on interfaces that feel good<br \/>Modern mobile devices are crappy computers with decent video cards.<\/p>\n<p>How do you make a devices (low powered) feel like it&#8217;s high powered &#8211; perceived performance. Tivo plays the sound the second you hit the button. On the web we throw up spinners. Touch interfaces are tactile &#8211; they need to have immediate feedback. When you touch something, you feel how it works, you have a much better sense of when it doesn&#8217;t work.<\/p>\n<p>When interface stops moving during a gesture, it feels like it died.<\/p>\n<p><strong>TouchEvent<br \/><\/strong>One on Android<br \/>11 on iOS<\/p>\n<p><strong>Making Gestures Work<\/strong><br \/>Prioritize user feedback<br \/>Use hardware acceleration<br \/>Manage your memory<br \/>Don&#8217;t do loading during gestures.<\/p>\n<p>Use native if possible when scrolling<br \/>-webkit-overflow-scrolling: touch;<br \/>Scrolling is very very important.<\/p>\n<p>Don&#8217;t use native pinch to zoom &#8211; you can&#8217;t control it.<br \/>Use Matrix Transforms instead.<\/p>\n<p><strong>Dealing With Browsers<br \/><\/strong>Feature Detect<br \/>Add transitions, don&#8217;t depend on them.<br \/>Gesture interaction is an enhancement, clicks should still work.<br \/>Be able to disable features per user-agent, if necessary.<\/p>\n<p><strong>Tools<br \/><\/strong>Adobe Shadow<br \/>Charles Proxy<br \/>Just change the UA in Webkit<br \/>Pile of Devices (just test on the real thing)<br \/><a href=\"http:\/\/phonegap.github.com\/weinre\/\">Weinere<\/a><br \/>(Device Simulators &amp; Emulators are useless for web development)<\/p>\n<p><a href=\"http:\/\/slideshare.net\/ysaw\/creating-responsive-html5-touch-interfaces\">http:\/\/slideshare.net\/ysaw\/creating-responsive-html5-touch-interfaces<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sunday, March 11 &#8211; 12:30PM &#8211; 1:30PMStephen Woods Sr Software Engineer Flickr When working on the desktop, we&#8217;re worrying about browsers. You have to cover every case with various browser-specific CSS. On mobile, we worry about devices and not browsers. Most mobile platforms run webkit, but there are a few other (less used) browsers out&#8230;  <a class=\"excerpt-read-more\" href=\"https:\/\/www.techory.com\/blog\/creating-responsive-html5-touch-interfaces\/\" title=\"Read Creating Responsive HTML5 Touch Interfaces\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[16],"tags":[],"class_list":["post-1488","post","type-post","status-publish","format-standard","hentry","category-sxsw"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.techory.com\/blog\/wp-json\/wp\/v2\/posts\/1488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.techory.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.techory.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.techory.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.techory.com\/blog\/wp-json\/wp\/v2\/comments?post=1488"}],"version-history":[{"count":2,"href":"https:\/\/www.techory.com\/blog\/wp-json\/wp\/v2\/posts\/1488\/revisions"}],"predecessor-version":[{"id":1490,"href":"https:\/\/www.techory.com\/blog\/wp-json\/wp\/v2\/posts\/1488\/revisions\/1490"}],"wp:attachment":[{"href":"https:\/\/www.techory.com\/blog\/wp-json\/wp\/v2\/media?parent=1488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.techory.com\/blog\/wp-json\/wp\/v2\/categories?post=1488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.techory.com\/blog\/wp-json\/wp\/v2\/tags?post=1488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}