Cialis brand name Users probably don’t care what’s a web site and what’s a web app. Cialis brand name But I believe web practitioners should, cialis brand name if only to know when certain best practices apply, cialis brand name and when they don’t.
Cialis brand name But does an established distinction exist between the two genres of experience? Not as far as I know. Cialis brand name Is it to do with creation versus consumption? Linkability? User experience? Or the architecture underlying the way they are built?
Cialis brand name Personally I think there is a way to clearly delineate the two types of experience, cialis brand name but I’m also sure it’s not the only way to do so, cialis brand name and that the distinctions are very likely to vary with individual’s perspective. Cialis brand name I’m unabashedly trawling for debate.
Cialis brand name
Cialis brand name There’s one notable result of the disruption that mobile is wreaking upon the way we think about the web. Cialis brand name The blogosphere, cialis brand name the conference circuit and various online communities – not to mention boardrooms up and down the country – are abuzz with hypotheses regarding the “One True Way” to do something, cialis brand name the “Dawn of” this, cialis brand name or the “Death of” that.
Cialis brand name No doubt I’m a part of this. Cialis brand name It’s quite fun. Cialis brand name (Although let’s be honest, cialis brand name none of us really has a clue about how mobile’s going to play out eventually.)
Cialis brand name In the real world, cialis brand name such binary proclamations are less useful than we like to think. Cialis brand name Building mobile and web experiences for real users, cialis brand name real business – and with real constraints of many kinds – is not at all easy. Cialis brand name Being buffeted around by voguish black-and-white philosophies (or even the outmoded ones) is of reduced benefit when you’re really trying to navigate the shades of gray in between.
Cialis brand name One of the shadiest boundaries to have to consider when using web technologies is that netherworld that lies between ‘web application’ and ‘web site’. Cialis brand name As far as I can tell, cialis brand name there aren’t established definitions that help us decide what is one and what is another – let alone a decision tree that developers and designers can follow to decide what sort of experience they should deliver to their users in different circumstances.
Cialis brand name On one hand, cialis brand name the differentiation between these two things seems rather academic. Cialis brand name If a user can access what I want them to access, cialis brand name and can do what I want them to be able to do, cialis brand name then who cares how we label that experience? It’s the web right? (Stop reading now.)
Cialis brand name But again, cialis brand name this belies the subtlety of the real world, cialis brand name and especially in mobile. Cialis brand name It’s 2011: iPhone-plus-four. Cialis brand name Users want apps. Cialis brand name Marketers want apps. Cialis brand name Boardrooms want apps. Cialis brand name This is, cialis brand name we’ve been trained to believe, cialis brand name the way in which we enhance our phones’ capabilities and access information in elegant, cialis brand name consistent ways. Cialis brand name We can assert as much as we want that users should only be using their devices’ web browsers, cialis brand name but apps sell, cialis brand name and will continue to.
Cialis brand name Of course, cialis brand name many of these apps are written with native technologies, cialis brand name and distributed via non-web-based stores. Cialis brand name This article is not about them: they are likely to become evolutionary dead-ends. Cialis brand name But if the web is to succeed as a distribution medium – and as a stack of technology – it will have to rise to match the expectation that’s been set. Cialis brand name It will have to provide what is needed to create and deliver app-like experiences, cialis brand name just as well as it can classical site- and document-based content.
Cialis brand name Nevertheless, cialis brand name in frequent discussions about the mobile web, cialis brand name its best practices, cialis brand name and its tools, cialis brand name you’ll hear many arguments qualified with clauses like “oh, cialis brand name but things are different if you’re building an app” or “this is a better technique for traditional sites”. Cialis brand name I know, cialis brand name because I do too.
Cialis brand name And so, cialis brand name as we enter conference season again, cialis brand name I thought it might be interesting to see if there’s any consensus about what these two things even are, cialis brand name and how we can differentiate between them. Cialis brand name What is a mobile web app? And when is it not a mobile web site?
Cialis brand name For me, cialis brand name there are a few possible vectors that we can consider.
Cialis brand name Creation versus Consumption
Cialis brand name Imagine a large structured collection of interlinked documents, cialis brand name where the user is essentially limited to a read-only interaction (give or take the odd comment form or search box). Cialis brand name There’s no doubt that such a thing should be classified as a site. Cialis brand name Blogs, cialis brand name news sites, cialis brand name academic papers – these are clearly the heartland of the classical web. Cialis brand name Online stores too? Probably.
Cialis brand name But what about micro-blogging services? Photo-sharing? Online email clients, cialis brand name document editors, cialis brand name IDEs even? Games? It seems debatable as to whether one should classify twitter.com as a site or an app (especially on a mobile device), cialis brand name but I am most certainly using an application when I’m logged into GMail, cialis brand name Google Docs, cialis brand name or playing Angry Birds – let alone working in some web-based data admin interface.
Cialis brand name Interestingly, cialis brand name this second category of experiences all seem to be read-write (or at least, cialis brand name highly interactional). Cialis brand name So can we classify sites as being read-only and apps as being read-write? That certainly seems simple enough: sites are to consumption as apps are to creation.
Cialis brand name Does this feel right? One problem here is that there are some beautiful and enjoyable app-like experiences – Flipboard comes to mind – which are clearly oriented towards consumption. Cialis brand name (But then again, cialis brand name maybe the logic is backwards here… perhaps Flipboard is what the web site of the future should look like, cialis brand name though Gawker’s infamous app-like blog felt clunky). Cialis brand name And how would you classify Facebook? Entirely user-generated content, cialis brand name but it still looks and feels quite like a site.
Cialis brand name Linkability
Cialis brand name If you are launching an experience from a desktop or homescreen icon, cialis brand name it is easy to feel that you are in a sandboxed and closed environment whose boundaries are explicit and inescapable. Cialis brand name If you start your experience by entering a URL into a browser, cialis brand name conversely, cialis brand name you’re more likely to feel that you are at the start of journey – one where every link clicked can immediately take you to another page or another site or another domain, cialis brand name across the web’s endless interlinked landscape with no boundaries.
Cialis brand name So does this serve as a way to distinguish between site and app? Most native apps certainly do have impermeable boundaries: outbound and especially inbound. Cialis brand name Even the iPhone Twitter app opens up links in a modal, cialis brand name embedded web view rather than spawning a new Safari window (much to my frustration, cialis brand name at least).
Cialis brand name But web apps? Need these be silos? No, cialis brand name of course not. Cialis brand name They’re still running in a browser, cialis brand name and (unless in hybrid environment) hanging off a URL like any web site does. Cialis brand name There’s no reason for a web app not to contain links that lead you off to other parts of the web, cialis brand name either in new browser tabs or the present one. Cialis brand name While reliable deep-linking back into web apps seems to be less commonplace, cialis brand name this is more a function of implementations and browser’s fragmented History APIs than some fundamental flaw in the web’s architecture. Cialis brand name (I never shared purists’ distaste of hash-bangs, cialis brand name for example. Cialis brand name These are a symptom of developers trying to make this inbound linkability and bookmarkability work for single-page web apps: fixing the web, cialis brand name not breaking it.)
Cialis brand name So, cialis brand name like others, cialis brand name I’d definitely hold up linkability as a huge advantage of web apps over native apps – but not as a reliable way to distinguish between web apps and web sites.
Cialis brand name User Experience
Cialis brand name Another way we might classify apps and sites is by assessing the user interface and experience presented. Cialis brand name What are the visual cues that an app’s an app, cialis brand name and a site’s a site?
Cialis brand name The use of fixed toolbars is certainly an obvious one: at the top, cialis brand name containing a title and maybe a back button; at the bottom a series of large tab-navigating buttons within easy thumb-reach. Cialis brand name This is a UI/UX paradigm that, cialis brand name pioneered by iOS, cialis brand name emerged entirely from the native application world, cialis brand name and which, cialis brand name before 2007, cialis brand name had absolutely no precedent in the classical or mobile web worlds.
Cialis brand name Ditto disclosure lists. Cialis brand name Ditto sliding transitions between master and detail records. Cialis brand name Ditto action sheets, cialis brand name spinners, cialis brand name and momentum-based scrolling. Cialis brand name Ditto even the disablement of pinch & zoom on document-like content (controversial to some, cialis brand name and yet understandable if you argue that viewport zooming was merely the browser’s way of dealing with legacy, cialis brand name not-made-for-mobile web content in the first place).
Cialis brand name Many developers work hard to bring these platform behaviors in their web apps. Cialis brand name And many web frameworks work hard to make it easy for them to do so. Cialis brand name (My employer is one of those, cialis brand name of course.) Many rightly blanche at the thought of slavishly mimicking a particular operating system – nothing looks dafter than iOS pinstripes in an Android browser – but the point is that many of these generalized UX characteristics are highly suitable for one-handed, cialis brand name touch-based interactions. Cialis brand name No-one will claim that legacy desktop web sites (often replete with tiny mouse-centric sidebar menus and table layouts) can ever match a dedicated app-like user experience. Cialis brand name Responsive web sites can indeed improve this greatly, cialis brand name with navigation often flowing to the top or bottom of documents for certain screen sizes. Cialis brand name But still, cialis brand name these sites are rarely mistaken for apps.
Cialis brand name Because the visual appearance is the “I somehow just know this is an app” argument, cialis brand name and one that users might particularly relate to, cialis brand name I do give the UI/UX distinction a lot of credence. Cialis brand name But still, cialis brand name it’s a very fuzzy boundary. Cialis brand name What if my site displays a fixed toolbar, cialis brand name but no back button? What if my list looks like hyperlinks instead of tappable disclosures? What if I style plain scrolling instead of momentum? This is a question that the likes of jQuery Mobile have pondered too, cialis brand name in an attempt to follow a site-like, cialis brand name progressive enhancement philosophy. Cialis brand name Nevertheless plenty of developers are undoubtedly going to describe the results as apps.
Cialis brand name Architecture
Cialis brand name So this leaves us looking for a more technical distinction. Cialis brand name Is there an architectural, cialis brand name boxes-and-arrows argument that might clarify the difference?
Cialis brand name The web we’ve known and loved for almost 20 years – undoubtedly a web of sites! – is unashamedly thin-client in design. Cialis brand name Web servers do all the heavy lifting, cialis brand name hosting the storage, cialis brand name business logic, cialis brand name and the construction of the user interface that the user sees. Cialis brand name Indeed it is surprising that we’ve had to suffer so much browser inconsistency over the years considering that all they’ve had to do is turn a stream of
> into pixels.
Cialis brand name But the rise of the use of AJAX was a clue that this architecture wasn’t always particularly elegant. Cialis brand name A user clicks a link to another page on your site? That might mean a whole set of HTTP connections (again), cialis brand name a blocked server thread (again), cialis brand name a clutch of database connections (again), cialis brand name the execution of a bunch of business logic (again), cialis brand name the generation of a whole new slab of markup (again), cialis brand name and its dispatch back across the wire (again). Cialis brand name And that’s all before expecting the browser to re-render the entire user interface (again).
Cialis brand name I love URLs, cialis brand name hyperlinks and SEO as much as the next man, cialis brand name but that’s some price to pay to simply display a new record of content.
Cialis brand name On the other hand, cialis brand name consider an architecture in which the browser is given far more autonomy and responsibility. Cialis brand name Think “AJAX++”, cialis brand name perhaps, cialis brand name where not only fragments of the DOM are elegantly updated, cialis brand name but where the entire application can reside and execute in the browser.
<body/>-like document whose main purpose is merely to include a
<head> of the linked resources required to execute.
Cialis brand name This is the world of the thick web client – or ‘Rich Internet Application’ in slightly out-moded nomenclature. Cialis brand name A world in which patterns like MVC can be used again to describing client-side behavior, cialis brand name as well as a server-side technique. Cialis brand name With this approach, cialis brand name once a client-side application has loaded its resources and is up and running, cialis brand name it can function more or less independently of the server that originally provided those resources, cialis brand name and creates and maintains a DOM that looks very different to that originally sent in the HTML’s markup.
Cialis brand name (One might wish to argue that GMail is really just a site comprising a set of documents. Cialis brand name Conceptually, cialis brand name perhaps. Cialis brand name But comparing the app’s view-source with an inspected DOM tree will present a dramatically different perspective.)
Cialis brand name With perhaps the exception of simple games, cialis brand name these applications nearly always need to bind back to some sort of web-based data API. Cialis brand name As required, cialis brand name though, cialis brand name they can then easily cache that offline in their own data stores, cialis brand name greatly increasing the responsiveness and user-experience of the application, cialis brand name and making the prospect of continued offline operation a reality. Cialis brand name This is a bold new step for the web. Cialis brand name Not the web as constantly humming HTTP-pipes, cialis brand name but undoubtedly the web as stack of standardized, cialis brand name open technologies, cialis brand name working in interesting and evolutionary new ways.
Cialis brand name I don’t want to give the impression that I feel this type of architecture should be used for all web experiences, cialis brand name nor even that it’s easier to build. Cialis brand name Creating apps this way can be a daunting experience for many. Cialis brand name Using imperative APIs may seem like a step too exotic next to the familiarity of declarative markup-based documents generated from a server. Cialis brand name Your mileage will most certainly vary, cialis brand name and definitely some sorts of experience are better suited by one approach, cialis brand name others by the other. Cialis brand name No binary proclamations implied.
Cialis brand name
Cialis brand name But the point is that perhaps this is the watershed that we are looking for: a relatively clear definition between web site and web application.
Cialis brand name The former we can define as an experience constructed on a thick server, cialis brand name delivered, cialis brand name with declarative markup, cialis brand name to thin browser clients, cialis brand name which then render what they’re told. Cialis brand name Sprinkle on some progressive enhancement to maximize the user-experience and increase the chances of delivering a suitably degraded experience to legacy browsers.
Cialis brand name The latter, cialis brand name on the other hand, cialis brand name is an experience constructed on a thick browser client, cialis brand name from imperative instructions dispatched, cialis brand name probably only once, cialis brand name from a thin server (or, cialis brand name in the case of a hybrid app, cialis brand name even no server at all). Cialis brand name The philosophy of progressive enhancement survives – perhaps better characterized as ‘feature detection’ in this programmatic environment – although such apps often assume a certain higher baseline of browser capability. Cialis brand name Local storage is utilized, cialis brand name MVC-like patterns are followed, cialis brand name concerns of data, cialis brand name logic and presentation are completely separated, cialis brand name and markup, cialis brand name if present at all, cialis brand name might be used merely for templates to be applied to that data.
Cialis brand name So…
Cialis brand name …yes, cialis brand name I’m a developer. Cialis brand name I think in boxes and arrows. Cialis brand name But as a relatively unambiguous classification criteria, cialis brand name this final, cialis brand name architectural distinction works best for me. Cialis brand name Assuming you agree that such classification matters at all (in particular to those developing such experiences), cialis brand name how does this suit as a working hypothesis?
Cialis brand name Discuss, cialis brand name etc.