In recent years, the web has been evolving at an incredible pace. With the rise of progressive web apps (PWAs), we've seen a new wave of innovation that's changing the way we think about building for the web. At Google I/O, this trend was further solidified with the announcement of Android Instant Apps, which promises to bring native-like experiences to users. But is this really the future of PWAs?
One thing that's become clear is that there are two distinct approaches to PWA development. On one hand, we have apps like Flipkart and The Washington Post, which have created mobile-only PWAs that focus on delivering a seamless user experience. These apps are impressive, but they're also limiting themselves to just one platform.
On the other hand, we have examples of PWAs that prioritize the web aspect. Shop.polymer-project.org is a great example of this approach. It's responsive, performant, and resilient to network failures – all while requiring modern JavaScript to render certain content. This is what makes it truly progressive.
However, some PWA developers are forgetting about the importance of web-first design. They're so focused on delivering an app-like experience that they're neglecting the core principles of the web. This is a concern because it could lead to PWAs that only work in specific browsers or devices – the very opposite of what makes the web great.
The success criterion for PWAs should be "best practices on the web," not just "feels like native." By prioritizing responsiveness, connectivity independence, and installability, we can create PWAs that truly are progressive. Unfortunately, many PWA developers are settling for a lower bar – one that's more focused on delivering an app-like experience than a web-like one.
One of the biggest challenges facing PWA development is the app-shell model. This approach prioritizes rendering the interface quickly while the content has to wait. It feels like a hangover from Appcache, and it's not the best way to build for the web. Instead, we should focus on delivering a seamless user experience that doesn't sacrifice responsiveness or performance.
Another issue is the tendency to throw away progressive enhancement in favor of PWA-like functionality. This is a concern because it could lead to PWAs that don't work well in certain browsers or devices. We should be building for the web, not just trying to replicate native app experiences.
In conclusion, the future of PWAs is bright, but we need to be careful about how we approach development. By prioritizing responsiveness, connectivity independence, and installability, we can create PWAs that truly are progressive. Let's avoid the mistakes of the past and build a better web for the future.