Q&A: Making the Move to HTML5
What are the benefits of HTML5 to your organization, and what skills will you need to make the transition a success?
Should your enterprise be moving to HTML5? Are you wondering about the benefits and what IT skills will be needed? For perspective on HTML5 and its implication for applications, including mobile apps, we turned to Vasily Suvorov, vice president of technology strategy at Luxoft, a software development firm headquartered in Moscow, Russia.
Enterprise Strategies: What new features in HTML5 will interest enterprise IT the most?
Vasily Suvorov: Cross platform development, short development cycles, and wide skills availability are the main factors that are driving the interest.
Browser makers are really investing into making Javascript, HTML, CSS3, Canvas, etc work faster and faster, while always extending supported features and integration with hardware acceleration for graphics and media processing.
It's clear that amount of vendor lock-in is minimal when one is using HTML5 as an apps platform.
What skills will be needed to take advantage of these features?
As a basic requirement, you need developers that understand HTML markup, CSS, and JavaScript, although the productivity boost really happens when engineers know and understand rich and growing Javascript frameworks and libraries ecosystem. Today, a complex "one-page" application typically makes heavy use of one of the Model View Controller (MVC) frameworks (such as Backbone.js, Ember.js or Angular.js), DOM (Document Object Model) manipulation libraries (such as jQuery or Zepto), HTML preparation scripts (such as as modernizr.js), or CSS management tools (such as LESS or SASS).
It is interesting that most of these toolkits or frameworks originate in open source so it helps to be familiar with places such as GitHub and IRC chat rooms for finding answers to usage and staying up-to-date.
Another important aspect is backend integration and security. After all, the frond end HTML5 app is only part of the solution, and typically all the data and related business logic resides in a back-end system. The popular and scalable way to design backends for HTML5 apps is to use REST APIs. The most advanced companies today even view these APIs as a strategic assets and make sure they are designed as a platform, meaning that anyone who is authorized to use these APIs can build an app. If executed properly, this opens opportunities for a company to attract third-party developers and start building an ecosystem around their business systems and data.
The emerging trend, especially in the mobile space, has been to use a more real-time method to connect to the backend: Websockets. Architecturally, it is very different form REST and requires different skillsets and considerations for the server part. However, it is a great technology to use for applications that need access to the latest data or asynchronous updates from the system -- for example, logistics and financial applications, dashboards, communications, and, of course, social applications.
Again, the backend technology is very important because you need to plan for scalability, especially if the apps are to be used outside your company.
What's the implication for mobile apps? How are HTML5-based mobile applications different from native ones?
The first difference is form factors and input methods. If you target not only iOS devices but also Android and Microsoft, then all kinds of screen sizes have to be accommodated. Also, from a usability standpoint, interaction with a mobile device is usually touch-based and should be very intuitive and robust to enable a satisfying user experience.
Another important factor is connectivity. Mobile devices are not always connected, so it is important to design for data synchronization and offline storage. Additional concerns include bandwidth and power management. HTML5 apps should be optimized for the amount of data they use as well as for for the initial download of scripts, images, etc.
The main difference between a native app and one based on HTML5 is how well it integrates with the device. A native app is usually faster and offers the best opportunity for taking advantage of built-in controls or creating unique controls for a tailored user experience.
I would say that today, if the goal is to create the ultimate user experience and "wow" factor, then a native approach is better. At the same time, it is relatively easy to combine native apps and HTML5 based ones into a hybrid app that leverages existing HTML content and HTML5 ease of development in built in "Webviews." With careful planning, your company can combine best of both worlds.
Are there any drawbacks to moving to HTML5?
Typically, HTML5 apps are slower, especially when you need to work with media or interactive graphics that require hundreds of objects to be animated. Also, Javascript-based "widgets" or elements of user interface are usually not as attractive or don't work as well as native UI elements.
What mistakes might an enterprise make in moving to HTML5? What best practices to you recommend for adopting the new standard?
I think that the main lesson learned is that enterprises need to approach this form a strategic standpoint and first think about the backend -- can we think of our data/processes as a platform? Then think about scalability, communications requirements, and security.
Once these are understood, then user profiles and target platforms need to be planned for.
I also think that the proper start of the mobile form end development is really not the technology but user interface and user experience. Once mockups or story boards are in place, technology selection should happen and the decision to use pure native, hybrid, or pure HTML5 can be made.