{"id":21110,"date":"2013-11-15T10:18:27","date_gmt":"2013-11-15T09:18:27","guid":{"rendered":"https:\/\/www.rudebaguette.com\/?p=21110"},"modified":"2019-04-29T18:46:18","modified_gmt":"2019-04-29T16:46:18","slug":"the-elephant-in-the-html5-room","status":"publish","type":"post","link":"https:\/\/www.rudebaguette.com\/en\/2013\/11\/the-elephant-in-the-html5-room\/","title":{"rendered":"Offline Mode: The Elephant in the HTML5 Room"},"content":{"rendered":"<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full wp-image-21190\" alt=\"Disconnected-645x250\" src=\"https:\/\/www.rudebaguette.com\/assets\/Disconnected-645x250.jpg\" width=\"645\" height=\"250\" \/><\/p>\n<p>There seems to be 3 groups of people involved in the HTML5 discussion:<\/p>\n<ul>\n<li>Evangelists, whose role is to push technology adoption.\u00a0 In most industries they\u2019d be called salespeople but in Tech we like to coin words to make us sound specials so the tech evangelists were born!\u00a0 They are comprised of both staff from large corporations who have a direct interest in HTML5 getting used as well as members of consulting companies who have a vested interest in the technology taking hold so that they can sell new services to their customers.<\/li>\n<li>At the opposite end of the spectrum are the \u201cNatives Protectors\u201d.\u00a0 This group is comprised of people vested in the development of native apps and seeks to protect their turf.\u00a0 Between each group the conversation often sounds like a tech version of \u201cmine is better than yours and by the way, you suck\u201d<\/li>\n<li>Then, in the middle are the developers.\u00a0 People like you and me who need to make technology decisions about the roadmap for our software and the technologies we will take to take us there.\u00a0 And once you are part of this group, you know that there is no single technology that solves all the problems in the world.\u00a0 You also know that few things are more annoying than hearing people on either side claim that their approach is the \u201cright one\u201d.<\/li>\n<\/ul>\n<p>So today, while we are heavily vested into HTML5 as a technology for our software, I\u2019d like to share what I see as a major down fall of HTML5 at the moment:\u00a0 Disconnected State.<\/p>\n<p>By disconnected state I mean, \u201chow on earth is our application supposed to behave once the device is not connected to the internet\u201d<\/p>\n<p>Devices lose connectivity all the time. Just looking at my past few days you can see the fickleness of connectivity:\u00a0 I had no connection in the train between Germany and France. \u00a0Then, at my place, there seems to be a spot that simply gets no coverage.\u00a0 The Parisian subway is hit or miss, and I am about to board a plane in a few minutes and Air Chance does not offer in-flight wifi.<\/p>\n<p>How bad can it be to not have a connection?\u00a0 Sometimes it is merely an annoyance, as you cannot properly experience a software or game. For example, try out the following game, both connected and disconnected and you will see how different your experience will be: <a href=\"http:\/\/mapdive.weareinstrument.com\" target=\"_blank\" rel=\"noopener\">http:\/\/mapdive.weareinstrument.com<\/a>\u00a0 (I apologize in advance if this link ends up wasting half your day!)<\/p>\n<p>Sometimes it will lead to a direct lack of productivity.\u00a0 One of the reasons we do not use Google Docs that heavily in our company is that it is a pain to use without a web connection!<\/p>\n<p>HTML5 is still very much in flux with W3C still discussing which storage and best practice standards should be required for disconnected-app.\u00a0 As these groups work though the different options, developers need to make some strategic decisions on how software should behave when the device is disconnected.<br \/>\nFor example, developers will need to address:<\/p>\n<ul>\n<li>Should the software be accessible at all when the device is not connected?<\/li>\n<li>Which flavor of local storage (cache, local, DB) should be used in case the application needs to function when the device is disconnected?<\/li>\n<li>Are there some features that need to be \u201cturned off\u201d?<\/li>\n<li>What about security?\u00a0 Does the data stored on the device need to be secured in any way? Would it be a problem is the device is stolen?<\/li>\n<li>If an app can work in a disconnected state, which rules should be put in place in terms of synching once the device becomes connected again?<\/li>\n<\/ul>\n<p>Granted, all these concerns are operational and should also be addressed when developing a purely native app. However, the fact that there is no current \u201cofficial\u201d standard on how to store and secure the data locally via HTML5 forces up to think about the disconnected state more globally.<br \/>\nIf you create HTML5 applications that work in a disconnected state, feel free to share your approaches and concerns as well as what you feel is the Elephant in the Room in the world of HTML5.<\/p>\n<p><em>Photo courtesy of <a href=\"http:\/\/thenextweb.com\/voice\/2012\/10\/01\/weekend-roundup\/\" target=\"_blank\" rel=\"noopener\">TheNextWeb<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>There seems to be 3 groups of people involved in the HTML5 discussion: Evangelists, whose role is to push technology adoption.\u00a0 In most industries they\u2019d be called salespeople but in Tech we like to coin words to make us sound specials so the tech evangelists were born!\u00a0 They are comprised of both staff from large<\/p>\n","protected":false},"author":77,"featured_media":21190,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"subtitle":"","footnotes":""},"categories":[113],"tags":[],"class_list":["post-21110","post","type-post","status-publish","format-standard","has-post-thumbnail","category-finance"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.rudebaguette.com\/en\/wp-json\/wp\/v2\/posts\/21110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rudebaguette.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rudebaguette.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rudebaguette.com\/en\/wp-json\/wp\/v2\/users\/77"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rudebaguette.com\/en\/wp-json\/wp\/v2\/comments?post=21110"}],"version-history":[{"count":0,"href":"https:\/\/www.rudebaguette.com\/en\/wp-json\/wp\/v2\/posts\/21110\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rudebaguette.com\/en\/wp-json\/wp\/v2\/media\/21190"}],"wp:attachment":[{"href":"https:\/\/www.rudebaguette.com\/en\/wp-json\/wp\/v2\/media?parent=21110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rudebaguette.com\/en\/wp-json\/wp\/v2\/categories?post=21110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rudebaguette.com\/en\/wp-json\/wp\/v2\/tags?post=21110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}