×

Get in touch.

This could be the start of something beautiful.

Thoughts / 03.15.2019

Front End Development Trends and Best Practices (Part III): at the Cutting Edge

Front End Development & Design: Part III

If you’re looking for a technology to set your company’s digital properties apart, options like Blockchain, VR, Chatbots, Machine Learning, and the Internet of Things (IoT) have likely crossed your radar. But, beyond the buzz, what business value can they can unlock for your company? And will they impact your front end development? We’ll delve into how these tech trends are shaping the future of front end technologies and what best practices are available now to help you outsmart the competition.

Chatbots

It takes a lot of creative thinking to build an engaging front end for a website that is simple to use while still helping your customers and employees get things done in an unobtrusive way. In this day and age, when having a site is a must, more companies are opting for a simple landing page with a built-in chatbot as a means to quickly set up a web presence.

Chatbots are a big part of front end developmentImage via Unsplash

A chatbot is an application that can interact with customers to find out their needs and offer relevant products and services or support. Chatbots are very practical because they can replace a site’s graphic UI with a conversational UI, allowing customers to explore services while a front end development team is working on a full-fledged version of the site. Or, depending on your needs, they can also be a more permanent solution to guide customers to exactly what they’re looking for. Chatbots help cut to the chase when customers need immediate support or want a quick explanation of a product’s functionality.

Besides serving as a quick substitute for a built-out version of a site, chatbots can help businesses even after the launch of the main website by:

  • Being available to the customer 24/7
  • Handling multiple conversations (saving you the need to hire more front-desk staff)
  • Gathering analytics for further improvement of your sales funnels and support

While chatbot development may sound intimidating, it’s actually quite doable with the right technology. There are frameworks on the market that take care of machine learning and AI algorithms, like Google’s Cloud Natural Language API and Dialogflow, Microsoft’s Cognitive Services APIs, and IBM’s Watson Conversation. Some chatbot development frameworks like Bot Platform or Botpress provide CMS-like functionality so that even non-tech-savvy users can construct a simple chatbot. That said, the development of an advanced chatbot with complex business logic will require extensive front end expertise.

Virtual Reality

Businesses often see virtual reality (VR) as an over-the-top technology to wow high-profile customers. But in the last couple of years, it’s matured enough to push immersive VR experiences to the average user — at a lower cost and faster than ever. Modern VR-enabled headsets pack enough power and precision to simulate things like surgical operations. At the same time, Google Cardboard offers VR to any smartphone user at a quite manageable $15 price tag.

Researchers at European Space Agency use VR to control rovers and satellitesEuropean Space Agency’s researchers use VR to control planetary rovers and satellites

VR web development became possible with the introduction of WebVR to the front end development community. WebVR is a JavaScript API that allows web applications to display content in a virtual reality by using a WebGL technology that renders interactive graphics in a web browser. The technology is supported by all major browsers, including Chrome, Firefox, Edge, and Samsung Internet, and its specific implementation, WebVR Polyfill, allows front end developers to implement baseline VR functionality across other web browsers.

Google, Mozilla, Samsung, and Microsoft’s most recent initiative, WebXR, builds on top of WebVR and takes into account the feedback from VR device manufacturers and web developers. The new WebXR API improves on WebVR by allowing front end developers to fit twice as many pixels into web-based VR applications; plus VR apps built with WebXR API run faster.

What this means for businesses is they can finally deliver fascinating web-based VR experiences to their customers, regardless of the VR hardware they use. Companies rely on VR applications working in a web browser to create unique virtual settings for conferences, to run employee training sessions, or to build a strong emotional connection with customers thru a gaming VR experience.

And as every bit that helps to get customer attention, web-based VR deserves serious consideration by companies in today’s world. Being among the pioneer companies that let their customers experience a product or a service up and close may go a long way in certain industries, like manufacturing and entertainment.

Augmented Reality

Augmented Reality (AR) is another trending technology that helps companies get a competitive edge in the never-ending pursuit of customers’ attention by overlaying virtual objects on the real world. We’ve all experienced AR in one way or another: when visiting an AR exhibition like ReBlink or getting help with indoor navigation in malls. And who can forget Pokemon Go? Now businesses are looking to AR to increase efficiency and engage customers.

AR application demonstrating Apple's Spaceship CampusImage via Unsplash

Until recently, these exciting AR experiences have been locked to specific platforms owned by companies like Apple, Google, or Facebook. The good news is web technologies have significantly advanced in terms of performance and accessibility to users, including mobile browsers and front end development tools. Today, all you need to run an AR application is a camera and a web browser.

One of the front end technologies that web developers use to build web-based AR experiences is AR.js. It’s a front end framework built on top of three.js (JavaScript 3D library) and ARToolKit (the very first AR library). AR.js lets front end teams design cross-platform marker-based AR experiences. Marker-based means that the user needs to scan a unique marker — an AR or QR code — to trigger a pre-programmed AR experience.

The next big player enabling AR development on the web is WebXR Device API. We already mentioned it in relation to VR web technologies, but WebXR is a work in progress with engineers from Google, Mozilla, Samsung, Amazon, and other big-name companies actively contributing to its AR initiative. The goal is to unlock advanced interactions and compelling visual effects in web-based AR apps so that users can do more than merely observe virtual objects in AR. For instance, users will be able to manipulate virtual objects with gestures, voice commands, and more. Of course, this functionality is currently in the development phase, but here are some basic examples from Google — with a user dropping AR sunflowers into a living room and colleagues building a virtual AR object.

Machine Learning

After Google introduced TensorFlow.js at Google I/O ‘18, Machine Learning (ML) has become a reality for the web. ML entails two necessary components: building models and training a machine with these models so that, let’s say, after feeding several cat images to a machine, it learns to identify cats in pictures by itself. Or if, for instance, your customer describes a problem to your chatbot, they are automatically redirected to the most fitting support engineer who can successfully resolve the issue and get the customer’s loyalty back. Such web-enabled ML applications can help companies set their services apart.

Abstract representation of the AI/Machine Learning conceptImage via Unsplash

Sure, ML done with JavaScript was a possibility before TensorFlow.js with libraries like Brain.js and deeplearn.js. (The latter was acquired by Google and merged with TensorFlow.js.) However, those JavaScript libraries were nowhere close to TensorFlow.js’s potential.

TensorFlow.js is intended to “train and deploy machine learning models in the browser.” Front end developers can rely on this cutting-edge technology to bring ML-based experiences right to customer’s web experience. (Here’s a quick demo that lets you experience ML in a browser first-hand.)

This ML-enabling JavaScript library offers an outstanding development experience: front end engineers can build and train models right in a browser, no setup required. Since browsers host ML experiences, available inputs become richer: ML models can gather data from cameras, microphones, GPS, accelerometers, and gyroscopes, to name a few. The additional benefit is improved privacy because all data collected for training ML models stays in the user’s browser, and nothing is transmitted to a server.

On the flip side, the performance of TensorFlow.js is slower compared to “native” Python-based ML programming. To train a model in a browser, TensorFlow.js has to access the machine’s GPU through WebGL, and the resulting performance can be two to ten times slower than the Python version of TensorFlow with AVX. Of course, we should remember that this is just the beginning of JavaScript ML, and Google is actively working on resolving these performance issues.

It’s definitely a great time to experiment with web-based prototypes that leverage the power of machine learning to provide a competitive advantage. It’s easy to see the value in innovations like recommendations engines that offer your customers new products and services based on their actions, just like suggestions you see on Netflix.

Smartwatches

Thanks to the success of the Apple Watch, smartwatches are becoming a ubiquitous accessory. According to CCS Insights, smartwatch sales should reach 140 million devices in 2022. And while the number is humble compared to smartphone, PC, and laptop sales, companies are still likely to win over more customers by upgrading their web properties to support smartwatches.

Front end UI on Apple WatchImage via Pixabay

It’s worth noting that when we say “front end development for smartwatches,” we mean the Apple Watch. Despite there being more than 50 models of smartwatches with Wear OS on the market, Google still hasn’t sorted out web browsing on these gadgets.

Apple, on the other hand, has decided that the time for web browsing on your wrist is now and added this functionality to Watch OS 5 in 2018. Now Apple Watch owners can browse websites and perform basic actions like scrolling web pages, zooming in and out, and navigating back and forth in their browsing history. However, some of the advanced web browsing features, like video playback, support for JavaScript service workers, and web fonts are still missing. Apple will be adding them later.

With the release of Watch OS 5, Apple (true to its nature) pushed out some guidelines and front end development best practices for its smartwatch. Without going into too much detail, we’ll mention the main aspects of designing smooth front end experiences for Apple Watch:

  • Take into account three screen sizes.
  • Apply appropriate attributes to form controls for phone numbers, dates, time, etc.
  • Use special HTML markup on text- and image-heavy web pages for optimal display.
  • Use open graph meta-tags to create nice-looking sharable link previews.

Optimizing a website for optimal viewing experience on the Apple Watch is yet another differentiator that can put businesses ahead of the pack and help them win the loyalty of a tech-savvy audience.

Internet of Things

We have quite a peculiar situation with front end development for the Internet of Things (IoT) — cloud-based systems pulling data from a network of interconnected smart devices and sensors.

Abstract IoT schemeImage via Pixabay

In its simplest form, an IoT device can be a smart kettle that you control from an app or a voice-enabled smart home device like Amazon Echo. An enterprise-grade example of an IoT product would be a cold chain monitoring system for delivery trucks carrying frozen goods made up of a web interface displaying critical data that comes from a variety of temperature sensors, GPS units, and smartphone apps. What makes the case for front end development in IoT particularly unusual is that IoT products often don't need a UI. Users interact with such products through web or mobile apps that come with GUIs of their own.

However, when there is a need to provide users with a web UI in an IoT device, it will have certain constraints. Namely that smart “things” often have small screens and their performance is limited by hardware. Developing web-based interfaces for such devices is a viable alternative to using restrictive native programming languages.

Web development best practices that help UI designers and engineers address these limitations when developing front ends for IoT endpoints include:

  • Responsive web interfaces that scale accordingly on various screen sizes.
  • Minimal use of JavaScript, and little to no animations.
  • Caching algorithms to access critical data even in no-coverage areas.

IoT technology has found applications in various B2C and B2B products across many industries: from logistics for large corporations to smart homes. And smart endpoints (aka “things”) will vary accordingly: from sensors with zero UI to consumer durables with a web-based graphic UI. It’s important to carefully think through an IoT product’s use, form, and architecture at the start of a project and decide what types of endpoints will need a UI. Customers will appreciate responsive interfaces that scale appropriately depending on the screen size of an endpoint and enhance the operation of their devices.

No-Code & Low-Code

No-code/low-code is another disruptive trend in software development that aims to democratize the process of building software and save businesses time and money. No-code and low-code development tools are, in essence, powerful templates that enable development and deployment of feature-rich web applications with little or no coding knowledge. Citizen developers (people with no qualification in programming) and expert software engineers alike can utilize a graphical user interface built into a no-code/low-code development platform to design the front end and back end components of a web application.

Citizen developers use low-code and no-code solutions in front end developmentImage via Unsplash

The difference between no-code and low-code development tools (as their names suggest) lies in the type of users they target. The former welcome anyone, regardless of their coding experience, and the latter provide more flexibility to developers by letting them operate on a code level. A distinct advantage of no-code and low-code platforms is, of course, their ability to auto-generate code and replace a lot of the hand-coding that is common to a standard software development process. Users drag and drop UI elements and sequence events into workflows, while a no-code/low-code platform generates the source code, database, and everything else that goes into building the front end and back end of a web app.

It’s worth noting that, while no-code and low-code development tools can help businesses deliver web apps faster and at a lower cost (by automating front end development), application of these tools is still limited to crafting comparatively simple web apps, with transparent business logic and basic workflows. Development of AR and VR web apps or the use of AI remain out of reach for no-code and low-code platforms. All this is not to say that these development tools are perfect instruments to liberate software development, but that they can allow business users and stakeholders alike to champion front end development, especially at proof-of-concept stages.

An ideal use case for low-code and no-code approach in front end development is the early days of a startup that does not have a front end engineer on the team. The founders, having only a business perspective, can build a simple prototype themselves and test it out in the wild.

Blockchain

At the moment, blockchain is probably the most hype-generating technology. Everyone — from a stay-at-home dad to your grandma — knows about the rise and fall of Bitcoin. And they’re maybe even familiar with how it played a role in voting around the 2018 midterm elections.  Both of those developments were made possible by blockchain. Still, how does this disruptive technology fit in with front end development? And how can businesses leverage it to take their web development services to the next level?

Abstract blockchain representationImage via Pixabay

While the majority of blockchain development happens on the back end, front end developers might still need tools to integrate a web client with a blockchain-based infrastructure. And as the saying among front end developers goes, “If it’s on JavaScript, there’s a library for that!” Indeed, front end development teams may rely on web3.js library, an Ethereum compatible JavaScript API. Web3.js supports all popular front end development frameworks, like React, Angular, or Vue, and allows the front end piece of a web app to interact with the blockchain component, for instance, when users need to sign transactions or messages with their private keys.

Of course, we are still in the very early days of blockchain adoption in commercial products, and we have yet to see how blockchain technology will blend with front end development. At the same time, the appearance of projects like Esprezzo — a blockchain middleware for front-end developers — holds great promise for the future of blockchain and front end development.

What’s Your Front End About?

Hopefully, we’ve shed some light on these front end development trends and sparked interest in exploring the opportunities that these cutting-edge technologies create in web development. Being in the first wave of the companies that implement these front end innovations is always a risk: the technologies are evolving as we speak. Yet, early adopters are likely to get considerable competitive advantages by better understanding their customers’ needs and meeting them across the whole spectrum of devices.