Inzignia

Social artifacts and digital curiosities

Grow with Google: Service Workers

Good news! I’ve recently been accepted to the Grow with Google Challenge Scholarship for 2018!

Grow with Google is a large initiative to provide training for a growing tech workforce. The demand for programmers is still sky-high, and Google is working to meet that need. The program is assembled of resources for students, employees, and businesses, teaching them cutting-edge methodologies to stay competitive in our ever-changing world.

Google accepted 50,000 students this year to study in two paths: web and Android development. And each path has two tracks: beginner and intermediate. I was accepted into the intermediate web path, so for the next three months I will be studying in an online Udacity Scholarship Challenge with 10,000 other students!

Studying with this many students is really exciting because every day is a meeting of minds. The students use Slack and forums to community, often asking questions, troubleshooting quizzes, sharing tips, expressing concerns, and collaborating on projects. At the end of the course, Udacity mentors will assess our progress and participation in the official forums and award the top 1,000 students a tuition waiver for the Mobile Web Specialist Nanodegree, which is six months long.

This Developer Scholarship is a huge opportunity for me and I’m really thankful to everyone at Google and Udacity! So for the next three months, I’ll be studying 10 lessons designed to optimize an offline-first web app. So far I’ve finished the first three lessons, two of which were introductory. The third lesson introduced the service worker, which is a script your browser runs in the background, capable of intercepting network requests and interacting with the browser. Simply put, the service worker is the wizard behind the curtain making Progressive Web Apps possible. I had never used a service worker before, so I was frequently checking the API as I progressed through the lesson’s 26 components, which ramped up in difficulty. By the end, I was in control of the service worker lifecycle and my own cache, which let me put content on the page faster than the network could even respond. This causes an “app-like” experience in the browser; the user is immediately presented with content which has a degree of usability regardless of the connectivity state.

From what I can tell, the challenge course I’m doing is an extended version of Udacity’s free Offline Web Applications course. If you’re interested in learning about service workers, I strongly suggest you start there!

Ultimately, I don’t know what I will do with all of this new knowledge, but it makes my mind race! I’m already thinking about how to integrate a service worker onto my personal website. It would be great to cache my assets and serve them faster, but there isn’t much functionality on my website beyond reading at the moment. I have some projects planned that are browser-based simulations, and I can already see how a service worker could help deliver client content from the server.

If you’ve never used a service worker, it’s surprisingly easy to get started and learn the basics. Check out the resource links below to get started! As for me, I’m preparing to dive into a crash course on IndexedDB, a NoSQL database in the browser with an admittedly daunting reputation. Wish me luck!

Click here to read Part 2!

Resources

MDN: Service Worker API

Google Web Fundamentals: Service Worker: an Introduction

Udacity/Google: Offline Web Applications