Santa Tracker, open-sourced and delivered

April 05, 2017


Link copied to clipboard
Posted by Sam Thorogood, Developer Programs Engineer

Santa Tracker is a holiday tradition here at Google. Every year, you can celebrate the season with games, holiday experiences and educational content throughout December: not to mention watching Santa deliver presents on 24th.

Today, we're continuing the season of giving by delivering the updated open-source versions of both the Web and Android versions that ran in December 2016. These are large, real-world apps that show off the latest and greatest from Google—using APIs and frameworks like Firebase and Polymer.



This year, Santa's elves added even more engaging, fun and educational experiences to Santa Tracker: all while making Santa and his reindeer leaner than ever before—across both Web and Android.

On the Web, we built a reliable, offline-capable PWA-ified version of Santa Tracker that saved bandwidth and worked in environments with poor connectivity. For Android, we worked hard to save every precious byte by closely examining our visual assets and other libraries.

To get started, you can check out the code on GitHub at google/santa-tracker-web and google/santa-tracker-android. Both Web and Android versions include detailed build instructions.

On the Web

If you'd like to read about how the elves build Santa Tracker as an offline Progressive Web App, check out our Case Study on Google Developers. To download the source, head over to GitHub. Here are some highlights of the release-
  • Santa is a Progressive Web App, sporting a responsive design for mobile, desktop and tablet, supporting Add to Home Screen and offline.
    • Rather than saving the entire site offline (about 100mb, including resources needed for different browsers), Santa's Service Worker only saves the scenes you've visited at least once—icing over houses that aren't available offline.

  • Santa Tracker used Polymer 1.7+, packing code into reusable components. Every house in Santa's Village is a custom element, only loaded when needed, minimizing the startup cost of Santa Tracker.
  • The Web Share API allowed users on mobile to quickly and natively showcase their creativity—it's a modern API for interfacing with a platform's native share intent, replacing the sea of share buttons normally presented to users.
  • Santa sported a new and improved Chromecast experience that scaled well across all Cast devices—from the original Chromecast device through to the high-end Chromecast Ultra and supported TVs.

  • Users were delighted by showing some great video content from around Santa's Village, especially during Santa's long travel legs.
  • The Android client also used this Chromecast experience, so Android users joined the fun watching Santa deliver presents on the 24th on their big screen TVs.

On Android

In 2016, Santa went on a diet, and reduced his APK download size by over 10mb—while adding four new games and a visual refresh. To learn more about our work, check out the in-depth analysis on Android Developers—or to try it yourself, head over to GitHub. Here are some highlights of this year's app-
  • Present Quest, a new AR game where players are encouraged to explore their real-world environment to collect presents and level up!

  • Santa is smaller and faster than ever before. The download size is down 10mb from the previous release, despite including multiple new games, Santa works better on memory-constrained devices, and various sources of jank have been found and removed.
  • The app is built using split APKs - one per architecture (armv5, armv7, and x86), reducing download size. Each APK supports phones, tablets, Android TVs and provide custom watch faces on Android Wear.

Ho Ho Ho!

We hope you enjoy exploring Santa Tracker and its source code, and it inspires you to leverage the same approaches to make your own magical experiences!