HTML 5, Native Apps, the iPhone and Windows 8

7 03 2012

I have been a tad quiet on the blogging front for a little while, simply because I haven’t had time really to sit down and write anything (though I have found time to read a lot)….Ok excuses over…

In this post I want to look briefly at the whole HTML 5 Vs Native app debate, and how Windows 8 potentially changes that landscape…

 

HTML 5

It’s something that has been a dream of developers, a single code base, a single “app” if you like that works on any system you can think of. HTML 5 does deliver that, well sort of. You see HTML 5 maybe being touted as that multi platform solution, but the whole architecture of using a browser and HTML isn’t right for actual applications. If you want to present some information and some basic functionality (think blogs for example), then HTML makes great sense, and that after all is what it was originally conceived for, to deliver content (not applications) to any machine.

The issues arise when we start to use HTML to deliver actual applications, and this is something that has been going on for some time – long before HTML 5 raised its head (my own companies have done this too). There is nothing wrong with web apps as such, but you must realise that they do lack certain functionality, and equally important, the user experience is NOT as good as a native application.

 

The iPhone effect

Before the iPhone was released, many software development companies were starting to deliver real business solutions as “thin client” applications – essentially web apps. I personally hated these, but did see the benefits when it came to roll out, updates etc over standard “thick client” applications. Many companies even started to deliver apps via FLASH, providing the software with a richer environment, much improved user experience but still rely on the distribution architecture of the web to actually deliver the app to the end user.

With mobile devices, there was no flash support, and we started to deliver “mobile” web apps, though not that great and a little clunky, they did work to an extent…But then along came the iPhone and this did change everything.

The iPhone had a much better web experience than any other handset, yet still using web apps on such a device was not good. The iPhone though had an app store, and an environment that worked well for delivering applications to the device, and these were native applications, applications that actually worked very well and provided the user with a much improved experience. All of a sudden to support mobile well, it was expected you write a native app…

 

Flash support

Flash did provide great experiences over the web architecture; the whole plug-in concept did get round so many issues with traditional thick and thin client apps, though Flash did have a lot of issues, especially security ones…Flash was also dependent on support on the device, on PCs this wasn’t a problem, but on mobiles etc the game was different.

By not supporting FLASH and singing the praises of HTML 5, Apple effectively killed off the browser plug-in and cross platform support for technologies that could deliver thick client experiences in a thin client fashion. Instead, Apple forced that user experience to only be available via native apps, as it knew all too well, no matter how good HTML 5 is that it cannot compete with native applications…

 

Native Apps

I personally think the whole native app experience is far far better for the end user. Native apps deliver great usability, the look good and their functional capabilities far outweigh the potential of a web app. The App environments provided by Apple and now Microsoft also negate so many issues associated with installing “dodgy” software.

By controlling the distribution of applications, Apple and Microsoft effectively can ensure (to a high level) that the applications are good, that they perform well (which makes their device look good) and just as importantly, know the application isn’t up to no good. The problem with the web, installing plug-ins or actually applications is that the end user doesn’t have anyone else saying “yeap, this is fine to install”. As a consequence, the majority of computer problems, viruses etc are born out of the end user installing something by being tricked into thinking it was safe….

 

Native expectation

So many of us are now used to the native mobile app experience,  which we like, that we now expect the same sort of environments on our desktop machines, tablets go without saying.  Because of this, Apple and Microsoft are providing app stores on desktop machines, which potentially changes how we install applications on our machines – and the sort of experiences we start to expect. You could argue that the iPad has really started this migration of “apps” from the mobile phone to general devices that we use…

 

Windows 8 effect

Though the iPhone and iPad dominate their respective market places, Apple don’t dominate the desktop, and we must remember that the desktop is still a massive market. Windows 8 no matter what is written about it will change the desktop, and with Windows 8 you can only install “metro” apps via the application store. These apps are immersive full screen rich experiences, and they are native applications. So, just as we see with mobiles, we will start to users opting for “apps” over HTML 5 web experiences.

For businesses, even micro-online retailers, the importance of delivering native “apps” appears to be growing. On the plus side, this means you have the opportunity to really deliver applications and experiences of note to consumers, on the downside, you have to realise that you need more investment in the front end of your applications. (Mind you, the amount of time spent making sure your HTML website runs the same on all browsers across all platforms, and then is mobile compatible etc etc the difference may not be as great financially as you expect).





Disappointed with the cloud?

12 10 2011

A recent eBizQ question has sparked this post, essentially it asked “Why are so many disappointed with the cloud?”, and this question was based on the fact that few organisations have made the move to the cloud, and those that have, many are stating they are disappointed with the results…So why would you be disapoointed? After all, it does what it says on the tin…

 

Cloud variants

A big problem is what do people mean when they say the “cloud”? If we take a look at the big players here, Amazon, Microsoft and Google, we see 3 different interpretations. Amazon deliver IaaS, which is Infrastructure as a Service. So essentially they deliver you an infrastructure for you to leverage as you please. This is very different to Microsoft’s Azure take on things, in which Azure delivers PaaS – Platform as a Service. Think of IaaS as your physical servers, all connected with nothing on them, and think of PaaS as physical servers, but running the server OS. Essentially Azure is the operating
system for the “cloud”.

Unfortunately, “cloud” is a very broad and “loose” description, so organisations must understand what type of “cloud” they are leveraging or buying into.

 

Expectations…

First off, let’s remember that the “Cloud” isn’t a solution, it’s just another platform. As a company you didn’t purchase Microsoft Windows Sever and expect it to solve all your IT needs did you? The “cloud” is a platform, nothing more, and yet as a platform it has capabilities that just aren’t available anywhere else.

Convenience, or something more?

Some argue that Cloud can be seen as IT convenience, which is true to an extent. If you view the cloud as nothing more than convenience, then you will no doubt also argue that the cloud makes far more sense to small organisations, as opposed to mature companies that have invested heavily in data centres – effectively providing them with cloud like capabilities. In many cases this is
very true, I myself have written posts illustrating reasons why the “cloud” is not applicable to some companies or IT solutions. Yet, “cloud” is more than just convenience, it’s about scalability, availability, reduced administration and reduced IT overheads. If you are a mature organisation, then no doubt your data centre will be specified to meet your maximum demands placed on it, as it
has to. For most of the time this means you have a lot of “spare capacity” and in effect, are wasting money. With the “cloud” and especially PaaS, you only pay for what capacity you need at that time. So you can quickly scale to meet demand peeks, but when you have little demand, your costs decrease as you lose that spare capacity.

We also have to look at capabilities here, using “cloud” based solutions we have a real option for continuous connected availability across a range of devices. We can share “state” between devices etc which makes it far easier to jump right back into work, where I was, even when I swap from my work PC to my work tablet or laptop at home, heck even to my Phone.

 

Security

This is a big issue, and unfortunately many security concerns are simply invalid. The cloud doesn’t mean open access to all! However, in some cases, compliance and regulatory demands mean you cannot jump to certain cloud providers or solutions. For example, for compliance you may well need to keep your data stored in your geographic location, so you can’t have it physically residing in the US when your company and the owners of the data are in the UK. That will include your data back too. So, you need to be aware just what your cloud provider is doing with your data / files, and make
sure they can meet your compliance needs.

 

Cloud based solutions

The big problem why organisations are disappointed with the “cloud” is the actual applications, their capabilities and user experiences. To be blunt, most cloud based “apps” pale when compared to traditional desktop based applications. Why is that? Well it’s mainly down to implementation of the software application, nothing really to do with the “cloud” as a platform.

Most “cloud” solutions are fully in the cloud, so essentially you access them through a browser. This is a massive problem and hindrance, and for business, web applications just don’t meet the needs. I don’t care what anyone says; running software in a browser is ok for only a handful of solutions – not for everything. Some of the problems with web based applications are listed below, and these are real problems and cause for disappointment with cloud based solutions at the moment:

  1. Integration – how do you integrate multiple solutions? How do you integrate a cloud solution with standard desktop bound solution?
  2. Customisation – do you really have an option to have your software customised to your needs? Again probably not, as the solution is there for “all – in the cloud”, not just you
  3. Cross platform – HTML 5 is what keeps getting mentioned, but the issues still remain about how it performs within different browsers. In addition, think a bit wider. Does HTML based apps really deliver what you want cross platform? Think “cross devices”, how can you get the best user experience across multiple devices and their operating systems. Think PC, Mac, Windows Phone, iPhone, Android, Tablets, Laptops, XP, Win 7 etc
  4. Asynchronous – many web based apps aren’t really Asynchronous, which means your user experience can suffer, especially when you are making round trips to the cloud and back (same problem applies to basic websites that are implemented poorly)
  5. Data Extract – what is available, does it meet your needs, and whats the user experience here
  6. Synchronisation – Can you synchronise between devices and return to your application in the same state?
  7. Backup – what backups and formats can you get?
  8. Application upgrades – will you be charged for upgrades?
  9. Service Level Agreements – just what agreements can you get in place?

 

Improving the cloud experience…

So I have spent some time highlighting why organisation may well feel disappointed with the “cloud”, but now I want to point out how cloud providers and more importantly, software vendors, can replace disappointment with real excitement…

First off, your “Cloud” provider, you need to choose carefully, make sure you understand what they are providing (IaaS, PaaS, SaaS capabilities) and then understand what they do to meet you compliance needs. Take into consideration what you want to deliver via the “Cloud” – does your desired solution even work in the cloud or on a particular cloud platform?

I personally recommend the Microsoft Azure platform, simply because it delivers far more than just typical PaaS, it delivers brilliant development tools, application capabilities and synchronisation capabilities (it is also tied in pretty tightly with the up-coming releases of Windows 8 and Windows Server 8 – keep that in mind).

Windows 8 leverages Cloud capabilities heavily (Microsoft's Azure)

Windows 8 leverages Cloud capabilities heavily (Microsoft's Azure)

Secondly, and most importantly, choose “cloud” solutions that leverage your devices – so that’s your actual PC, Mac, Phone etc…The big change is how we use the “cloud”, moving away from a single UI within the browser to an actual “application” solves so so sooooo many of the issues highlighted. So what do I mean?

Cloud based applications need not run in the “cloud”, they need only be distributed or leverage cloud services, data and content. So the application is installed and runs on the device, accessing cloud services, data and content. When we move to this model, you see how usability, experience, and capabilities all drastically increase. So:

  1. Integration – This is made a lot easier, real application integration can take place, be that using cloud services in another application, or actually sharing data on your device between applications (this can be taken further with Windows 8 and the use of contracts and charms)
  2. Customisation – Customising applications for a client is made a lot simpler, it becomes something that is in essence, not that different to customisation of typical desktop in house applications today
  3. Cross platform – well the iPhone has shown us that using platform specific technologies deliver the best user experience. Would you rather use the iPhone app for that, or trundle off to the website. You will use the app. So this is no different, deliver “Apps” for the desired platforms and HTML 5 for platforms where you will not support apps. (Remember, that you are not maintaining multiple versions of solution code, rather multiple front ends, nothing more)
  4. Asynchronous – Running typical applications allows developers to really use asynchronous capabilities within their solutions, improving performance and the user experience, not to mention
    dodging the browser time out issues
  5. Synchronisation – with apps you can leverage the cloud to then store your synchronisation data, which makes it possible to synchronise your applications across all your devices in real time
  6. Upgrades – these are made easier, even for customers who run highly customised applications

 

Quick finish…

Essentially, disappointment in the “cloud” is actually disappointment caused by “cloud” expectations being wrong, choosing the wrong cloud provider, or using cloud solutions that are limited, limited because they are stuck in a browser…With time, we will see greater understanding of what cloud providers actually provide, greater understanding of IaaS vs PaaS and we will see software providers delivering “apps” as opposed to just browser based solutions.

See the cloud as a platform, nothing more, and choose solutions based on their capabilities for meeting your business requirements. Good cloud based solutions, that leverage apps, will not only meet your expectations, but will offer you more features, more functions, less administration and ultimately run at a cheaper cost for you…





Silverlight, WPF, HTML 5, Metro and err…Flash…

20 09 2011

There is a lot of talk about these technologies, especially
after the Windows 8 BUILD preview. For many, Silverlight and WPF appear to be
dead, simply because it isn’t supported in the Metro world of Windows 8…This
technically is and isn’t true, depends what you think is in a name…

Windows 8 Metro

Looking for Files from any application in the Metro world, 1 single user experience

WPF and Silverlight

Both of these are essentially built on .NET libraries, which
in the desktop mode are still there, just as they are in Windows 7. However, in
the Metro world, these libraries have made their way into the WinRT library
collection, with this in mind and the fact that Metro runs XAML, you see that,
well the names may have changed, but Silverlight and WPF does run in Metro.

To “Metro” your application you do have to make some
changes, and these are very small indeed, we are talking a few changes to
include libraries and that’s about it. These changes though appear to be mainly
focused on touch enabling your application fully in the Metro world.

So if you wrote WPF applications and or Silverlight apps
that run OOB (out of browser), then things are pretty much business as normal. However,
if you wrote RIAs in Silverlight and had them running in the browser, then you
won’t be too happy. You see IE10 in the Metro world will not support plugins,
and that’s probably all down to touch and touch based libraries. If you want to
run Silverlight in a browser, then you need to be in desktop mode and use IE10…Not
perfect, but makes sense…

We also have to remember what we want to have as our
experience on the machine. You see, Silverlight in browser mode, and even
Flash, does deliver “Applications”, but the user experience can be very
different between apps. In the Metro world, Metro isn’t just about making your
apps run on that part of the OS, but is also about a seamless experience, look
and feel between all applications. It is also about integrating these
applications with the OS and other installed applications. What does that mean?
Well you cant have a Flash or Silverlight app running in Metro that then doesn’t
behave as other apps do, or more importantly how a user expects them too. In
the Metro world we can “Search” inside apps, we can seamlessly share content
and data between apps that never knew anything about each other. If we allow a
Silverlight app from a browser to run, then it won’t support this level of
experience, and more often than not, it won’t look and feel like a “Metro” app.
That consistent look and feel is what users want, expect and Microsoft has to
enforce…

Charms and searching within Apps

All apps should behave the same, deliver that same look and feel and support functions such as "Search" and "Share" in the same way. A single user experience

Apps

Apps are essentially the future for the desktop and the web,
Microsoft understands this, just as well as Apple does. You see the web was
never designed to deliver us “Applications”, rather it was designed and
architected to distribute and deliver content. This is primarily why we have
plug-ins for browsers, as even HTML 5 has limitations on what you can and can’t
do. Throw into the mix the horrible issues that arise with browser
compatibility and you see why Apps are far better for the user and for the OS.

Just as we have with mobile phones (and Apples iPad for
example), we will have an app store, which allows us to purchase (or get for
free) applications, for Windows 8, these will be XAML (WPF / Silverlight apps)
or HTML 5 with Javascript (though I believe and suspect XAML will be the
technology of choice).  In this way, Apps
will behave in similar fashions, so it makes it easy for any user to add more
apps to their machine and use them quickly and efficiently. This isn’t the case
with browser plugins nor with typical “chrome” based applications.

Death of Flash?

Well not really, but I do fear this signals the beginning of
the end for Flash. Essentially if you develop in Flash, I would be jumping ship
fast! I also have a chuckle when I think of apps such as Tweet Deck, which essentially
will have to be “Metroed” or make its users have to move to the desktop. Since
I have seen Tweet@rama in demos on Windows 8, I think Tweet Deck will have to
get itself “Metroed”, if it wants to stay alive…

Flash will be on the desktop side of things only for Windows
8, and that includes AIR. So what does this mean for Flash? Well why would a
user want to “flip” into desktop mode, go to a website or open a Flash based
application and leave the lovely Metro world behind? It isn’t going to happen.
Sure for business applications, complex studios (such as photoshop), users won’t
mind moving back to the desktop, but then it makes sense to be in desktop mode
for these kind of complex applications. But most things in Flash are either to
enrich our web experience or to provide a cross platform simple(ish)
applications – such as Tweet Deck. So in the new world, those apps would be
delivered by XAML in Metro and by HTML 5 in the browser, leaving nothing for Flash
to deliver.

The future…

Well the future of the web is HTML 5, the future of real
RIAs is Apps as too is the future of desktop applications. For complex
applications and legacy applications we will have the classic Desktop mode from
Windows 8, and I think this makes a lot of sense. Essentially Windows 8 is
everything to everybody; no matter what they want, expect and need to run…

WPF and Silverlight developers will simply be named Metro
developers (or something similar), web developers HTML 5 developers and Flash
will slowly disappear from the PC as it has already the iPad and probably Mac
OS…