Local blog for Japanese speaking developers
オープンソース版サンタを追いかけようの提供について
2017年4月14日金曜日
この記事は
デベロッパー プログラム エンジニア、
Sam Thorogood
による Google Developers Blog の記事 "
Santa Tracker, open-sourced and delivered
" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
サンタを追いかけようは、Google のクリスマス恒例のサービスです。毎年 12 月には、24 日にプレゼントを届けるサンタを見ることをはじめとして、ゲームやこの時期ならではの体験、教育コンテンツなどでクリスマスをお祝いできます。
先週、プレゼントの季節の続きとして、2016 年 12 月に公開されたウェブと Android 向けのオープンソース版サンタを追いかけようをアップデートしたものを公開いたしました。これは、Firebase や Polymer などの API やフレームワークを活用し、Google の最新かつ最高の技術を駆使した現実の大規模アプリの実例です。
今年のサンタを追いかけようには、サンタの妖精たちが魅力的でおもしろく、ためになるコンテンツを追加しています。しかし、ウェブでも Android でも、サンタとトナカイは今まで以上にスリムになっています。
ウェブ版は信頼性が高くオフラインにも対応した PWA になっています。使用する帯域幅も少なく、ネットワーク接続が不安定な環境でも動作します。Android 版は、画面表示用のアセットやライブラリなどを綿密に調査し、1 バイトでもサイズを小さくしようと努めたものです。
サンタを追いかけようを使ってみるには、GitHub(
google/santa-tracker-web
および
google/santa-tracker-android
)からコードをチェックアウトします。ウェブ版と Android 版の両方に詳細なビルド手順が付属しています。
ウェブ
妖精たちがサンタを追いかけようをどのようにしてオフライン Progressive Web App として構築しているかを知りたい方は、
Google Developers の事例紹介
をご覧ください。ソースは、
GitHub にアクセス
してダウンロードできます。今回のリリースに含まれる主な機能は、次のとおりです。
モバイル、PC、タブレットのすべてで、サンタはレスポンシブ デザインを活用した Progressive Web App になっています。ホーム画面に追加とオフラインもサポートされています。
サンタの
Service Worker
は、サイト全体(各ブラウザに必要なリソースを含め、約 100 MB)をオフライン用に保存するのではなく、少なくとも 1 度アクセスしたシーンのみを保存します。オフラインで利用できない家は氷漬けになります。
サンタを追いかけようは Polymer 1.7+ を利用して、コードを再利用可能なコンポーネントにまとめています。サンタ村のすべての
家
にはカスタム要素があります。これらの要素は必要な場合のみロードされるので、サンタを追いかけようは最小限のコストで起動できます。
モバイル ユーザーは、Web Share API によってネイティブ機能を使ってすばやく制作物を共有できます。これは、プラットフォーム ネイティブの共有インテントとインターフェースする最新 API で、一般的にユーザーに表示されるたくさんの共有ボタンの代わりになります。
サンタは、新しく改善された Chromecast を活用しています。これは、オリジナルの Chromecast 端末からハイエンドの Chromecast Ultra、そして対応した TV まで、すべてのキャスト端末で利用できます。
サンタが長い旅をしている間、ユーザーはサンタ村周辺で
すばらしい
動画
コンテンツ
を楽しめるようになりました。
Android クライアントもこの Chromecast 機能を利用しています。そのため、Android ユーザーは 24 日にサンタがプレゼントを届ける姿を大画面 TV で見ることができるようになりました。
サンタの妖精たちは 2017 年に向けて、
Blockly に関わった Google のチームが書いた
Code a Snowflake などの楽しい新教育コンテンツを作っています。
Android
2016 年にサンタはダイエットを行いました。そして、4 つの新しいゲームが追加され、見た目も大幅に変更されているにもかかわらず、APK ダウンロード サイズを 10 MB 以上も削減できました。この作業について詳しく知りたい方は、
Android デベロッパー ブログの詳細分析
を確認するか、
GitHub にアクセス
して自分で分析してみてください。今年のアプリに含まれる主な機能は、以下の通りです。
新しい AR ゲーム Present Quest が追加されます。プレイヤーは現実世界の環境を探検してプレゼントを集め、レベルを上げてゆきます。
サンタは今まで以上に小さく、高速になります。複数の新しいゲームが追加されているにもかかわらず、ダウンロード サイズは前回のリリースより 10 MB ほど小さくなっています。メモリが限られた端末でもサンタが問題なく動作するようになり、さまざまな細かい問題も解消されています。
アプリは、アーキテクチャごと(armv5、armv7、x86)の分割 APK で構築されており、ダウンロード サイズが小さくなっています。各 APK は、スマートフォン、タブレット、Android TV をサポートしており、Android Wear のカスタム ウォッチフェイスも提供されています。
サンタを追いかけようは、
Remote Config
、友人を招待できる
App Invites
、妖精たちがアプリのユーザーについてもっと詳しく把握できるようになる
Firebase Analytics
などの Firebase 機能を活用しています。
ホッホッホ!
ぜひ、サンタを追いかけようやそのソースコードをお楽しみください。そして、使われているアプローチを参考に、皆さん独自のすばらしい作品を生み出してください!
Posted by
Yuichi Araki - Developer Relations Team
ラベル
.app
1
.dev
1
#11WeeksOfAndroid
13
#11WeeksOfAndroid Android TV
1
#Android11
3
#DevFest16
1
#DevFest17
1
#DevFest18
1
#DevFest19
1
#DevFest20
1
#hack4jp
3
11 weeks of Android
2
A/B Testing
1
A4A
4
Accelerator
3
Accessibility
1
Actions on Google
16
Activation Atlas
1
Addy Osmani
1
ADK
2
AdMob
32
Ads
65
Ads API
58
Advanced Protection Program
3
AdWords API
11
Agency
1
AI
13
AIY
3
AIY Vision Kit
2
ALPN
1
AMP
114
AMP Cache
9
AMP Camp
2
AMP CSS
1
AMP Extension
1
AMP Fest
1
AMP for Email
4
AMP Optimizer
1
AMP Packager
1
AMP Playground
1
AMP Plugin
1
AMP SSR
1
AMP Story
4
AMP Toolbox
1
amp-bind
1
amp.dev
1
AMPHTML Ads
1
Analytics
9
Andorid
12
Android
391
Android 10
1
Android 11
20
Android 11 Compatibility
1
Android 11 final release
1
Android 11 meetups
1
Android 9
1
Android App Bundle
1
Android App Development
21
Android Architecture
1
Android Architecture Components
1
Android Auto
1
Android Design Support Library
1
Android Developer
13
Android Developer Story
4
Android Developers
12
Android Enterprise
5
Android for cars
2
Android Go
1
Android Jetpack
6
Android N
18
Android O
14
Android Open Source Project
1
Android P
7
Android Pay
1
android privacy
1
Android Q
13
android security
2
Android Security Year in Review
1
Android Studio
47
Android Studio 4.1
1
Android Support Library
6
Android Things
15
Android Tools
2
Android TV
11
Android Vitals
4
Android Wear
29
android11
6
androidmarket
3
androidstudio
1
AndroidX
6
Angular
2
Angular 2
2
AngularJS
2
Anthos
2
AoG
1
aosp
1
API
25
APIExpert
45
apk
2
APM
1
app
3
App Action
1
App Bundle
2
app engine
23
App Indexing
7
App Invites
6
App Maker
2
AppCompat
2
Apps Script
11
aprilfool
4
AR
2
Architecture Components
7
ARCore
1
ArtTech
1
Associate Android Developer Certificate
1
Audio
7
Auth Code
1
Authentication
9
AuthSub
2
Autofill
3
AutoML
1
Autotrack
2
award
1
Awareness API
1
Beacons
6
BERT
1
Best Practices
1
Better Ads Standards
3
BigQuery
10
Billing
1
Biometrics
1
BLE
4
Blink
1
Blockly
1
blogger
1
BodyPix
1
Brillo
1
Brotli
2
Budou
1
Buildbetterapps
2
Calendar
3
campaign
1
Campus
1
Canvas
1
Cardboard
4
Career
1
Case Study
1
CCPA
1
CDS 2020
3
CDS Recap 2020
3
Certificate
2
chrome
182
Chrome Custom Tab
3
Chrome Dev Summit
5
chrome extension
14
Chrome for Android
2
Chrome for iOS
3
Chrome OS
7
Chrome Tech Talk Night
4
Chromebook
4
Chromecast
7
chromewebstore
9
Chromium
6
CLI
1
ClientLogin
3
Closure Compiler
1
Cloud
22
Cloud AI Platform
1
Cloud Firestore
5
Cloud Functions
9
Cloud IoT Device SDK
1
Cloud Next
9
Cloud OnAir
2
Cloud OnBoard
4
Cloud PubSub
1
Cloud Storage
1
Cloud Study Jams
3
Cloud Summit
1
Cloud Test Lab
2
Cloudflare
1
CNN
1
Coalition for Better Ads
2
CocoaPods
1
code review
1
codejam
5
codelab
5
Codepen
1
Colaboratory
1
Community
5
compatibility
1
Compose
1
compute engine
3
Contests
1
Context
1
controls
1
Conversation API
1
conversations
2
Cookie
9
Coral
2
COVID-19
2
Crash Reporting
2
Crashlytics
2
Custom Element
1
Custom Model
1
dark theme
1
Dart
2
DataCenter
1
Daydream
4
Deep Learning
4
Delegation
1
Demo Party
1
Design Patterns
1
Design Sprint
3
DesignBytes
1
Designer
1
DevArt
3
DevBytes
6
Developer
14
Developer Console
4
Developer Preview
6
Developer Relations
2
Developer Review
1
Developers Story
4
DevFest
10
DevFestX
3
DevOps
1
devtools
4
Dialogflow
1
Differential privacy
1
Digital Goods API
1
DirectShare
1
Discover
1
DNS-over-HTTPS
4
Domain
1
Doodle
1
DoubleClick
4
Doze モード
1
drive
2
DX
1
Dynamic Links
3
EarlGrey
1
Easter Egg
1
ECMAScript 2015
1
Eddystone
4
Edge
1
egypt
1
Encryption
1
English
2
Envoy
1
ES2015
1
ES2016
1
ES6
2
ES7
1
Event
6
Featured
22
FIDO
5
final release
1
Firebase
120
Firebase Admin SDK
6
Firebase Analytics
10
Firebase Auth
4
Firebase Cloud Messaging
10
Firebase Crashlytics
2
Firebase Database
5
Firebase Libraries
1
Firebase Notifications
1
Firebase Performance
3
Firebase Remote Config
6
Flash
1
Flutter
6
Flutter App Development
1
font
3
fraud
1
G Suite
19
game
41
Game Developers Conference 2018
1
Game Developers Conference 2019
1
Gboard
1
GCP
17
GCPUG
1
GDC
1
GDD11JP
56
GDD2010JP
23
GDE
2
GDG
21
GDG Cloud
1
Geo
55
Gingerbread
1
GLIDE
5
Gmail
5
Gmail API
2
Go
1
golang
5
goo.gl
1
Google
7
Google Analytics
3
Google API
1
Google Apps
14
Google Apps Script
4
Google Assistant
10
Google Assistant SDK
2
Google Cast
8
Google Cloud
34
Google Cloud Day
4
Google Cloud INSIDE Digital
2
Google Cloud INSIDE Games & Apps
8
Google Cloud INSIDE Media
1
Google Cloud INSIDE Retail
3
Google Cloud Messaging
11
Google Cloud Platform
16
Google Code-in
1
Google Developer Experts
2
Google Developers Academy
1
Google Developers live
5
Google Developers Summit
2
Google Drive
6
Google Earth
1
Google Fit
2
Google for Games
2
Google for Mobile
2
Google for Startups
4
Google for Work
1
Google I/O
17
Google Impact Challenge
1
Google Maps
62
Google Maps Platform
50
Google ML Summit
2
Google Open Source Peer Bonus
1
Google Pay
4
Google Photo
1
Google Play
144
Google Play App Safety
1
Google Play Console
14
Google Play developer distribution agreement
1
Google Play Developer Policies
2
Google Play Game Services
10
Google Play Instant
1
Google Play Services
23
Google Play Store
1
Google Play アプリ署名
1
Google Plus
14
Google Search
7
Google Sheets API
3
Google Sign-In
12
Google Slides API
5
Google Summer of Code
1
Google Tag Manager
1
Google Trust Services
2
Google マップ
4
Google+
2
Googleapps
10
GoogleGames
1
GoogleI/O
28
GoogleLabs
1
GooglePlay
3
GoogleTV
1
GPS
1
Gradle
1
gRPC
2
GTUG
5
GWT
2
hack4jp
2
hackathon
7
Hangouts Chat
2
Hosting
3
HTML5
17
HTML5Rocks
1
HTTP/2
5
HTTPS
14
I/O Extended
4
ID Token
1
Identity
15
Identity Toolkit
1
IGF2010
4
IGF2020
2
Ignite
4
IME
11
Indie Game
7
Indie Games Festival
7
Indie Games Festival 2018
2
Indie Games Festival 2019
12
Indie Games Festival 2020
7
Inevitable ja Night
30
Insights
1
Instagram
1
Instant Apps
6
intern
2
Invites
1
IO19
3
iOS
21
IoT
7
IPv6
1
Issue Tracker
2
IWD
1
Japanese
5
Japanese Input
1
JavaScript
10
Jetpack
4
Jetpack Compose
3
K-12
1
Key Transparency
1
Knowledge Graph
1
Kotlin
22
Kotlin Android Extensions
1
Kotlin Beginners
3
Kotlin Vocabulary
2
Kubernetes
2
l10n
8
latest
16
latest news
1
LaunchPad
2
lifull
1
Lighthouse
1
LINE
1
Local AI
1
Location
1
Lollipop
10
Machine Learning
29
MAD Skills
2
MADSkills
1
Maker Faire Tokyo
1
Marshmallow
10
Material
1
Material Design
31
MDL
1
MDN
1
metrics
1
MIDI
2
mikan
1
Mixed Contents
4
ML
1
ML Kit
12
Mobile
15
Mobile Bootcamp
4
Mobile Sites certification
1
Mobile Vision
4
mod_pagespeed
1
Model Maker
1
monetization
2
monetize
3
Mozc
15
Music
1
NativeDriver
2
NativeScript
1
Navigation
1
NBU
1
ndk
3
Nearby
5
News
1
Next Extended
1
Next Tokyo
3
Nexus
2
Nexus S
1
NFC
1
Node.js
3
notifications
2
Noto CJK
1
Now in Android
12
NPAPI
2
NPN
1
oauth
12
open source
1
OpenAI
1
opencensus
1
OpenGL
4
OpenID
3
OpenID Connect
4
OpenSocial
1
opensource
18
OpenTitan
1
Optimization
1
Page Experience
1
Password Manager
1
Payment
8
Payment Handler API
1
Payment Request API
1
PDF
1
PEM
33
people
2
People API
3
Performance
14
Performance budget
1
permissions
1
PersonFinder
1
Physical Web
3
Pi
1
Pixel
1
Place Picker
1
Platform Stability
1
Play Billing
2
Play Billing Library
2
Play Console
2
Play Store
1
Player Analytics
4
Playtime 2017
1
Policy
6
policy compliance
2
policy violations
2
Polymer
7
privacy
13
Privacy Sandbox
13
Progressive Web Apps
14
project hosting
1
Promise
1
Promo code
1
Protocol Buffers
1
PRPL
1
publicdata
1
Push API
1
Push Notification
6
PWA
3
Python
2
QUIC
2
QWIKLABS
3
RAIL
1
React
1
React Native
2
Realtime Database
9
Recap Live Japan 2019
3
reCaptcha
1
Redux
1
release
1
Remote Config
3
Remote Display API
1
Requirements
1
Resonance Audio
1
Rewarded Video Ads
2
Runtime Permission
1
Safe Browsing
3
safety
1
Sample Code
2
Santa Tracker
1
schema.org
1
secur
1
security
70
Service Worker
4
SHA-1
1
sketchup
1
SmartLock for Passwords
4
social
4
Social Good
1
Social Media
1
software development
1
SPDY
3
speak2tweet
1
Spreadsheet
3
SSR
1
stable release
1
startup
7
Storage
2
story
1
streetview
3
Study Jams
9
subscriptions
4
Swift
2
SwiftShader
1
Symantec
1
tapple
1
Task
4
Team Drive
1
techtalk
13
TensorFlow
41
TensorFlow Federated
1
TensorFlow Lite
8
TensorFlow Object Detection API
1
TensorFlow Probability
2
TensorFlow.js
4
test
4
Test Lab
6
TF Certificate
2
TFX
1
TLS
1
ToS
1
trace
1
Transliteration
1
Trusted Web Activity
1
Twitter
1
Udacity
20
Unity
3
UX
5
V8
3
VP9
1
VR
11
Vulkan
2
Watch Face
2
wave
2
Wear OS
3
Weave
1
Web
34
Web Animations
1
Web Components
7
Web Manifest
1
Web Packaging
3
Web Stories
2
Web Story
3
Web Vitals
5
web.dev
1
WebAssembly
5
WebGL
1
WebM
1
WebMusic
5
WebRTC
1
WebView
1
Women Techmakers Scholars Program
1
Wordpress
1
WTM
6
Xcode
1
YouTube
17
YouTube API
1
インタビュー
1
コードサンプル
1
プライバシー
1
機械学習
3
言論の自由
1
節電
3
定期購入
1
東日本大震災
9
日本語入力
41
ブログ アーカイブ
2021
1
2020
12
11
10
9
8
7
6
5
4
3
2
1
2019
12
11
10
9
8
7
6
5
4
3
2
1
2018
12
11
10
9
8
7
6
5
4
3
2
1
2017
12
11
10
9
8
7
6
5
4
3
2
1
2016
12
11
10
9
8
7
6
5
4
3
2
1
2015
12
11
10
9
8
7
6
5
4
3
2
2014
12
11
10
9
8
7
6
5
4
3
2
1
2013
12
11
10
9
8
7
6
5
4
3
2
1
2012
12
11
10
9
8
7
6
5
4
3
2
1
2011
12
11
10
9
8
7
6
5
4
3
2
1
2010
12
11
Feed
Follow @googledevjp
"プロダクトに関するご意見は
プロダクトフォーラム
にお願いします"