Web is an open place and many people and companies collaborate in moving it forward, but the Google I/O conference is probably the biggest event where a bunch of new features and concepts are introduced.
In this article, we are taking a look at some of the most exciting announcements at last week's Google I/O.
Lazy loading might not be the fanciest feature, but it will have a significant impact on the web. Web pages contain more and more images and loading them all straight away is usually a bad idea. There's already a few ways of lazy loading website content, but these typically require significant logic and are bad for SEO. The new feature aims to simplify this by just adding one single attribute to the img (or iframe) tag.
Portals allow loading of 3rd party content inside of a page (somewhat like an iframe), but give a lot of new possibilities. With portals, pages can seamlessly communicate with each other, and it supports animations between pages. The portal can also take over the address bar when it's in focus.
Shape detection & Web Perception Toolkit
The Shape Detection API allows the web app to use the camera to detect text, faces and multiple types of barcodes. Since the Shape Detection API is not yet supported in most browsers, Google made the Web Perception Toolkit. The toolkit exposes those functionalities to the developers but will fall back to WebAssembly or regular JS in browsers where the feature is not yet supported.
3D & AR
Over the last couple of years, the web became more interactive and entangled with the real world. To accelerate that, Google is adding support for showing 3D models within the search results. Those 3D models can also be rendered in the environment by using augmented reality.
Firebase performance & Lighthouse performance budgets
Firebase expanded their performance service from Android and iOS platforms to the web. Now, with the addition of a JS snippet, you can track the performance of your page or app through multiple browsers, operating systems, regions, countries or other parameters. It’s like Google Analytics, but for performance. There is also a new version of Lighthouse which supports custom performance budgets per project.
To support crawling of single page apps, Google used a Chromium-based crawler for some time. However, this crawler had significant limitations. Until now, one of those limitations was the Chromium version which was much older than the browser version of a typical user. With the latest update, Google will use the newest Chromium to crawl the web. This means things won’t break if the project doesn’t support older browsers, and developers will be able to remove some of the polyfills that were needed only for the crawler.
Duplex on the web
Last year on Google I/O, Google announced Duplex - a way to automate interaction with restaurants and other services when using phone calls. Duplex on the web tries to do the same thing, but online. Duplex will be able to preselect some options based on your preferences (e.g. it can know what type of car you use when renting a car), fill payment details or even guide you through the process if the web site is in a language you don’t understand.
Installable web apps & trusted web activities
Installable web apps are nothing new on mobile, but now you can install Progressive Web Apps on desktop too. Every operating system has its specifics, and Chrome is trying to combine the OS features (like the title bar) with the app branding (theme color and icon).
Trusted web activities go a step further - they allow developers to publish their PWAs on the Play Store. This allows for new channels of discoverability, and interaction. From now on, users can use the app like any other native app.
One of the goals of the Chrome team is to bring the web platform closer to the native platform feature-wise. They call this effort project Fugu, because like the fish, those features need to be prepared very delicately - doing something wrong could be very harmful to the platform. Here are some of the highlights:
If you’re creating a web app that has some shareable content, Web Share feature allows you to use the native share dialog. This way, you don't have to worry about multiple share targets. On the other hand, if you’re working on a new social network, you can use this feature to offer other apps to share their content with you.
Making a media player? Now you can make use of the media keys on the user's keyboard. This might not be the most exciting feature, but in combination with the installable web apps, it opens a lot of new opportunities.
Native File System API
Access to the native file system is one of the holy grails of the web - it opens a lot of new possibilities, but can also be very dangerous. The Chrome team is approaching this very carefully not to compromise user security and privacy.
Access to contacts is often mentioned as a major difference between native and web apps. Like the native file system, it has a huge impact on user privacy, so developers are making sure the feature is implemented in a way that the user is always in control.
Font Access API
Sure, you can use awesome web fonts for some time now, but this API allows developers to know which fonts the user has installed locally. Font Access API will enable the use of fonts the user already has installed - either to avoid loading unnecessary fonts or to offer more choices for things like web-based word processors.
...and many more
Google introduced a lot of other new features we didn’t cover here. Those include wake lock, WebHID, Notification triggers and many more. To learn about them, make sure to check out the video from Google I/O 2019.
Exciting times ahead
With the newly announced features, the web platform is closing in on mobile platforms. Considering the reach and momentum the web has, it's getting harder and harder to decided which tech stack to use for new apps.
The other set of announced features makes web development more comfortable and faster by moving some of the responsibilities of developers to the platform. With new features coming to the platform and adding a lot of new APIs, any change that simplifies development is very welcome.
The mentioned features are just a small part of the new things that happened at the conference. If you’re interested in other segments like Android, Machine Learning or Cloud infrastructure, check out the event page.