読者です 読者をやめる 読者になる 読者になる

LIFULL Creators Blog

「株式会社LIFULL(ライフル)」の社員によるブログです。

Google I/O 2017 旅日記 〜DAY THREE〜

f:id:LIFULL-etotake:20170519203143j:plain

こんにちは。Android開発グループの衛藤です。
前回の記事では、DAY TWOをお送りしました。
本日Google I/O 2017最終日!
最後まで楽しんできます!

なお、「今日は非常に暑いので、いくつかのセッション場所を変えるよ!」というアナウンスが来ていました。
確かに暑い・・・でも湿気が少なくカラッとしていて気持ちが良い暑さですね。
コーラとスプライトが進みます。

Rewarding for engagement with Firebase

www.youtube.com

Firebaseを利用して、いかにユーザーを獲得し定着させるかについてのセッションです。
ここでは、ゲームを例として新しいユーザーを獲得し、かつ報酬を与える仕組みについて解説されました。
使用したFirebaseの機能は、

  • Dynamic Links
  • RemoteConfig
  • RealtimeDatabase
  • Cloud Functions
  • Authentication
  • Notification

細かく解説されていたのが、Dynamic Linksの短縮についてです。
Dynamic Linksを使用すると、プラットフォームを問わず同じリンクを定義出来るため、友人の招待などに有効な手段ですが、 そのままだと非常にリンクが長くなってしまいます。
そこで、Cloud Functionsを使用し、元々のDynamic Linksから短いURLを生成→Databaseに保存する
という処理を行っていました。

f:id:LIFULL-etotake:20170519203615j:plain:w500
このように、見た目も非常にスッキリし受け取った側も驚かずにすみそうですね。

招待した後は、RealtimeDatabaseを使用し報酬を受け取れる通知、受け取ったかどうかの管理をDatabaseで行うというものです。
このI/O通して言えることですが、ほとんど自前のサーバは立てずに全てGCPを使って様々なサービスが作れそうです。

Machine Learning API

www.youtube.com

GCPのMachine Learning系のAPIの使い方を紹介しています。
たくさんのAPIが使用可能であり、紹介されたのは以下5つでした。

Vision API

Vision APIは画像処理系のAPIです。3:45あたりから。
Web Annotationと言うものがあり、画像が何かというものに加え、webから情報を取ってきてリンクも取得できるようです。
サンプルではWikipediaの説明リンクが含まれていました。
かなり便利です。

Speech API

音声系のAPIです。12:58あたりから。
音声からテキストを生成するAPIのようです。
デモを見る限りだと、まだ正確ではないのでしょうか?
しかしながらこれまでの発展から考えると飛躍的に向上すると期待しています。

Natural Language API

自然言語処理系のAPIです。16:50あたりから。
この中で特に気になったのが、センテンスからscoreが出るというものです。
例えば、25:30からのデモでありますが、
「I really liked the sushi but the service was terrible」(寿司は良かったが、サービスがひどかった)
これを解析すると、sushiは0.8スコアに対し、サービスは-0.9スコア という結果が出ています。
人々の評価から対象物の定量的な評価を出すことができそうです。

Translation API

翻訳APIです。26:55あたりから。
第1世代からかなり精度が上がったらしいです。
対外国人向けのサービス等に取り入れられる実践レベルになっているのではないでしょうか。

Video Intelligence API

動画系のAPIです。30:44あたりから。
動画の中で、どの物体(犬とか)が何秒目に出てくるかを判定することが出来ています。
デモの中の、「baseball」や「Android」で検索した場合の挙動が非常にわかりやすくて便利です。
何か新しいサービスが作れそうですね。

なお、これらはほぼ全て、間にCloud Functionsが入っており、そこからMachine Learning API→Cloud Databaseにレスポンス保存、という仕組みになっていました。

Introduction to Kotlin

www.youtube.com

Keynoteでも正式にKotlinサポートすると発表されていましたが、Kotlin入門のための、Jet Brains社によるライブコーディングによる解説です。
おそらく、YouTubeのコーディングを見たほうが早いと思いますが、楽しそうな言語ですね。

No Getter No SetterやNull Safety、Extension Propertyなど、Javaと違い柔軟な印象を持ちました。
14:00前後の話が面白かったです。

Kotlinについては、自分で実際に書いてみたほうが良いと思うので今後試してみようと思っています。
今後さらに広まっていくかと思われるため、早めに習得しておくのが良いかもしれません。

Notifications UX: What’s New for Android O

www.youtube.com

Android Oで、通知周りがガラッと変わります。
Googleのチームにて、通知についてユーザーに聞き込みを行いながら調査を進めてきたとのことです。
具体的には、

  • ほとんど通知は重要ではない
  • 通知を設定できるのは分かっているけど、どこか分からない
  • 通知は必要だが、全部ではない

実際のユーザーの声としては
「通知が来すぎるのでアプリを削除した」
など、生々しい調査の結果となっていました。
しかしながら、

  • 人からの通知(メッセージなど)は非常に重要
    というユーザーの声もあり、セッションでは”People are the VIP notifications”と表現されています。
    また、リマインダーとして送られる通知は便利だが、「タイミングが違う、だから忘れてしまう」という声もあるようです。

このような結果から、Android Oでは通知が以下のように変わります。

通知チャネルの設定(アプリごと)

実装時に通知のチャネルを指定する必要があります。
そのチャネルに従って、ユーザーが実際に通知を受け取るものと受け取らないものを判定出来るようになるようです。
設定は、アプリ独自のものもこれまで通り使えますが、新しい機能として
「アイコンを長押しすると設定できる」
というものが追加になりました。

優先度

優先については以前からありましたが、今回から長押し後の通知設定画面にて、優先順位を変更することが出来るようになっています。
動画の12:00前後からですが、わざわざ設定に行き、通知の項目を探し・・・という作業ではなく、長押しで出てくるダイアログでオフにすることが出来るようになりました。
また、そこから詳細に飛ぶことも出来、チャネル別にオンとオフを設定することも出来るようです。
かなり便利になりましたね。

通知UI・UX

UIが4つで以下4つの区分けで変わるようになります。
詳しくは20:16あたりをご覧ください。

  • Major Ongoing 音楽など、現在進行しているもの

  • People to People
    メッセージなど、人から人へ届けられるもの

  • General
    一般的なもの

  • By the way
    そこまで重要じゃないもの

f:id:LIFULL-etotake:20170519203142j:plain:w500

以前までの通知と比べて、かなり見た目でわかりやすくなっているのが分かります。

また、28:00くらいにありますが、上から引き出すときのアイコンアニメーションがリッチになっています。
話している方もすごく気に入っているようです。

スヌーズ機能

少し前に記載したとおり、「通知来ても忘れる」という問題が残っています。
今回の変更により、通知をスワイプすることでスヌーズの設定ができるようになりました。
これもなかなか使えそうです。

通知周りは毎年様々な変更があるほど重要な機能ですが、
今回の変更はかなりユーザーにとっても、アプリ提供側にとっても良いものとなりそうですね。

Applying Built-in Hacks of Conversation to Your Voice UI

www.youtube.com

音声UIに関しての概念的な話しでした。
“Cooperative Principles”(日本語で調べると協調原理というものらしいです)
はじめにHuman to Humanの話があり、その後にVUIでの使われ方の説明がありました。

人間対人間であれば、多く話しすぎなくても大体は伝わる(Maxim of quantity)が、VUIになるとそのあたりが難しそうです。

Google Assistantなど、音声によるUIが増えてきており、人間とのやりとりとなると設計を入念に行わないと、
使いづらいものが出来ていしまいそうなので注意したいと感じています。

新しく出たばかりの技術ですが、これから数年後には洗練されたアプリが増えているのでしょうか。
楽しみです。

Firebase recipes to bootstrap your app

www.youtube.com

Firebaseを使ったアプリ開発の手法についてです。
こちらもDemoアプリを使用しての説明が途中からありますが、このアプリではFirebaseの以下のサービスを組み合わせています。

  • Realtime Database
  • Auth
  • Cloud Messaging
  • Cloud Functions

また出ましたね、Cloud Functions。このI/Oのセッションで見たサンプルアプリでほぼ使われているのではないでしょうか。
非常に強力なサービスだと感じています。

サンプルアプリを通じて、以下のようなレシピの説明がされました。

  1. Link Existing Users into Firebase
  2. Avoid Duplication Business Logic
  3. Send Push Notification without a sever
  4. Improve purchase conversions

既存のユーザーをFirebaseと連携させる

Realtime Databaseでは、セキュリティの話が出ました。4:52あたりです。
セキュアなアクセスを実現する方法、それがFirebase Authと組み合わせるということです。
Realtime DatabaseのRulesにson形式でアクセス制限を記載することが出来ますが、そのときにAuthで認証されたユーザーしかアクセスできない、などの設定を行うことが出来ます。

重複ビジネスロジックを避ける

iOS / Android それぞれからRealtime Databaseへの更新は出来ますが、ほぼ同じコードを書きます。重複させる必要があるでしょうか?
Cloud Functionsにビジネスロジックを記載してしまい、Cloud FunctionsからRealtime Databaseへ更新をかければ一回でシンプルに実装出来ます。

サーバー構築せずに通知を送る

FCMで通知を送るのですが、Cloud Functionsを使えば自前のサーバーはいりません。
Realtime Databaseに更新がある場合に、Cloud FunctionsからFCMの通知実装を行うことで全てが完結します。
Realtime Databaseとも連携されているため、どのユーザに送るかの判断も簡単にできそうです。

コンバージョンの向上

ここでは、Analyticsを使用してコンバージョンの計測や、Realtime Databaseとの連携の説明がされました。
AnalyticsもCloud Functionsを使用しメトリクスを送信するような実装を行っています。

ここで述べられた技術を使用することで、サーバーの構築をせずに1つのサービスを作ることが出来るようになっています。
Cloud Functionsの出現によりFirebaseの組み合わせの自由がさらに増えたと感じています。

Google I/O 2017終了

以上で、3日間開催されたGoogle I/O 2017がすべて完了致しました。
はじめは不安な部分もありましたが、全体的に非常に楽しく過ごすことが出来ました。
今回発表された技術は、どれも気になるものばかりです。

日本に戻ったら、早速いろいろ試してみようと思います!
より技術的な内容は、Qiitaにも記載しようと思いますので是非そちらもご覧ください!

社外向け報告会

最初のエントリーでも記載致しましたが、
2017/05/26(金)に報告会を株式会社LIFULL 半蔵門オフィスで行います。
connpassにて募集しておりますので、奮ってご参加くださいませ!
https://lifull.connpass.com/event/56800/

最後に

現地からのブログ投稿は終わりです。
最後まで読んでいただきありがとうございます。

Google I/O 楽しかった!また来年も行くことが出来ますように★

f:id:LIFULL-etotake:20170519203144j:plain:w500
おわり

Google I/O 2017 旅日記 〜DAY TWO〜

f:id:LIFULL-etotake:20170518233933j:plain:w500

こんにちは。Android開発グループの衛藤です。
前回の記事では、DAY ONEをお送りしました。
Google I/Oも2日目となり、雰囲気にも大分慣れてきました。

今日も快晴!日向は焦げそう、日陰は凍えそうな一日でした!

f:id:LIFULL-etotake:20170518233932j:plain:w500

さて、本日参加したセッションをまとめます。

Building apps for the Google Assistant

f:id:LIFULL-etotake:20170518233929j:plain:w500
Google Assistantを使用してアプリを作るためのセッションです。

f:id:LIFULL-etotake:20170518233934j:plain:w500
Google I/Oデモ用のアプリが準備されており、写真のように対話形式でセッション情報の取得や座席の予約を行うアプリでした。

The alternative to good design is bad design, not no design at all.
「良いデザインの反対は悪いデザイン、デザインがないことではない」
音声なのでデザインがない、ということでしょうか。

Demoの内容

Assistant Appを開発するために、以下のような項目を準備します。

  • Might say things like…(言いそうなこと)
    I found / so you can keep up to date on / … more

  • Would never say…(言わないこと)
    I did not receive a response / that was an invalid / … more

  • Instead of…(以下の代わりに) Likely to say…(こう言いそう)
    allows -> lets / require -> need / unable to -> can’t /… more

あとは、
Actions on GoogleのコンソールでProject作成
API.aiで自然言語を取り扱うようにする
Webhook連携(デモではNode.js)
シミュレータでテスト
モバイルデバイスにTransaction APIを実装

実際は以下の写真のように、話すセンテンスでTriggerやApp Name、Actionを指示しているようです。
f:id:LIFULL-etotake:20170518233931j:plain

API.aiでは、API呼び出し用のfunction名のようなものを定義し、そこにユーザー入力用のセンテンスを羅列していきます。
そして、Node.js等のコードからそのfunctionを呼び出すような仕組みになっていました。
コンソールが使いやすそうなので比較的わかりやすく進められそうですね。

楽しそうなので、Assistantは是非帰ってから試してみたいと思います。
アプリについて、Assistant Directoryというサービスで対応されたアプリを探すことが出来るそうです。(Playストアのイメージでしょうか・・・)

Best Practices to slim down your app size

アプリのサイズは実際には次のような影響があるとのこと。

  • Downloadサイズが100MBを超えると20%のユーザーがキャンセルする
  • 100MBを超えるアプリは8倍アンインストールされる
    やはりアプリのサイズは小さい方がよさそうですね。
    どのようにしてAPKのサイズを小さくするかのTIPSが紹介されました。

APK Analyserを使い、ボトルネックを知る

AndroidStudioにあるAPK Analyserでapkを解析することで、容量を占めている部分がどこなのかを知ることが出来ます。
デモの例では、resディレクトリが60%を占めていることが分かる、というものでした。

Proguardをかける

Proguardをかけることで、意味のないクラス名やメソッド名にリネームされる他、使用されていないメソッドは自動的に消去されます。
これだけでもかなりの削減につながります。

What’s new in Android Support Library

support libraryの25.3.0 ~ 26.0.0 beta-1の最新情報。
ピックアップしてお伝えします。

最小サポートレベルが14に

gingerbreadとhoneycombがドロップされました。
シェアもかなり少なくなっているようです。

Google Maven Repository

サポートライブラリがGoogle Maven Repositoryからのダウンロードになりました。
今後は以下のように指定するようになります。

repositories {
  maven {
    url: “https://maven.google.com”
  }
}

Downloadable Fonts

APKバンドルから、ダウンロード出来るようになりました。
Cachingもされるようで、一度ダウンロードするとユニバーサルにキャッシュされるので、効率がよくなります。
res/font フォルダーにフォントの属性を書きます。
関連で、EmojiSupportLibraryにより絵文字を表示することが出来るようにもなりました。
f:id:LIFULL-etotake:20170518235038j:plain:w500

AutoSizing TextView

サイズに併せて自動でテキストのサイズが変わるものです。
結構使えるかも!?

Dynamic Animation

Physics Based Animationで、バネの動きなどを簡単に実装することが出来ます。

AnimatedVectorDrawableCompat

VectorDrawableから別のVectorDrawbaleに、アニメーションしながら変形することが可能です。

Wear

WearableRecyclerViewにより、丸型時計の場合は縁のカーブに沿ってリストを動かすことが出来るようになります。

What’s possible with Cloud Functions for Firebase

新しく出た、Cloud Functionsの使い道についてです。

Google Assistantと組み合わせて自前APIの部分をCloud Functionsで実現出来ます。
これで全てGoogleのManagedなサービスで完結することが出来るようになります。

他には、Githubと組み合わせて自動リリースフローに関する話も出ていました。

Introduction to Android Instant Apps

Google I/O 2016で発表されてから、未だに謎が多かったInstant Appsですが、AndroidStudio3.0 / grade 3.0で実装が可能になりました。
「必要なときに出てきて必要なくなったら消えるもの」というコンセプトの機能です。

端末にインストールしていなかった場合は、自動的にPlay Storeから対応する機能をInstant Appとしてダウンロードして使うことが出来るというものです。
その為、プロジェクトを各モジュールに分割して、APKサイズを減らす必要があります。
ユースケースによってはコンバージョンや新規ユーザー獲得に大きく貢献しそうな機能として私も着目しています。

Office Hours

Google Expertに質問や相談が出来るブースです。
GCPやGame関連など、様々なOffice Hourが準備されていますが、常に混雑しています。
私はGCPの相談を受けることが出来ました。
内容については割愛しますが、とりあえず英語でのやり取りという部分で度胸試し&勉強になりました。

Sandbox Instant Apps

f:id:LIFULL-etotake:20170518235039j:plain:w500
f:id:LIFULL-etotake:20170518235036j:plain:w500
Sandboxはいくつかドーム状の施設があり、その中でAndroid AutoやGoogle Assistant、Instant Appsなど、様々なデモを行っています。
こちらも常に混雑状態ですが、たまたまInstant Appsが空いていたので話を聞くことが出来ました。
Googleの技術者と直接話せるというのが非常に貴重な体験になりますね。

App Consulting

Google Playの担当者より、自社アプリへの相談やアドバイスを受けることが出来ます。
私がいったときは30分待ち程度で受けられたので、比較的空いていたのかもしれません。

内容については割愛致しますが、アプリを見せながら様々なアドバイスを受けることができ、非常に勉強になります。
このような機会があるのも、Google I/Oに参加するメリットですね。

Great app performance with Firebase Performance Monitoring

モバイルアプリのパフォーマンスを計測出来るツールです。AndroidとiOS対応。
様々項目が計測できるのですが、かなり細かく見れるようで以下のような計測が可能になります。

(例) ネットワークレスポンスの計測

  • レスポンスのサクセスレート
  • 国ごとの分類
  • デバイスごとの分類
  • OSごとの分類など

これにより、例えばある特定の地域でのみエラーが発生する、特定のデバイスでのみ何かが起こっているという判別が出来るとのこと。
ユースケースでは、特定の国でだけレスポンスエラーが発生しており、原因がロケール対応であった、という例が出されていました。

細かく分析できることで、普段では気づけないような部分にも着目が出来るかもしれません。
試してみる価値はありそうです。

Speeding up your Android Gradle builds

gradleのビルドが遅くて悩んでいませんか?遅いと開発効率も下がりますよね。
様々なTIPSが取り上げられていました。

一番最後に話されていましたが、「Slow build is not NORMAL」と思ってよいらしいです。
ビルドに5分も10分もかかる、そんな場合はセッションの内容を見て是非試してみてください。

こんな感じで、何もしない状態からTIPSをどんどん試していってビルド時間が大幅に現象している様子が伺えます。
最終的には、最大で12倍高速化という結果も出ていました。
f:id:LIFULL-etotake:20170518235037j:plain:w500

番外編 お土産

じゃじゃん!!
f:id:LIFULL-etotake:20170518235041j:plain:w500
Google Homeです!
この他にも、Photo Book無料や$700のGCPクレジットです。
毎年豪華ですね〜

番外編 After Hours Concert

f:id:LIFULL-etotake:20170518235040j:plain:w500
2日目の夜はLCD Soundsystemというバンドによるライブが開催されました。
Keynoteと同じ会場で、大盛り上がりとなりました!

残すところ、Google I/Oもあと1日!
明日も存分に楽しんできます!

Google I/O 2017 旅日記 〜DAY THREE〜へと続く…

Google I/O 2017 旅日記 〜DAY ONE〜

こんにちは。Android開発グループの衛藤です。
前回の記事では、DAY ZEROをお送りしました。
いよいよGoogle I/O 2017の開幕です!

シャトルバス

数カ所からシャトルバスが出ており、無料で送迎してもらえます。
今回は宿泊先ホテルから最寄りのMountain View Stationから出るシャトルバスに乗りました。
わかりやすく看板を持った方がいたので特に迷うことなく乗ることが出来ました。
f:id:LIFULL-etotake:20170518151900j:plain:w500

会場の様子

朝7時過ぎには会場に入り、ちょっと早いかな?と思いましたが結構な人数が既に現地入りしている様子。
無料の朝食があり、食べながら会場をぶらり散歩。会場が広いので数か所で朝食・コーヒーが準備されていました。

f:id:LIFULL-etotake:20170518151850j:plain:w500
f:id:LIFULL-etotake:20170518151839j:plain:w500

日本と違い、一人でベンチに座っていても「隣座ってもいい?」と気軽に話しかけてこられる所がアメリカっぽいですね。

Keynote

バッジのピックアップは早いほうが良い席が取れる、とのことでしたが実際はピックアップ順に”ゾーン”が決定するようです。
おそらく1ゾーンは大体200人以上の席があり、そのゾーン内で早く来た順に好きな席を確保することが出来る仕組みになっていました。
結構早い時間に来たのですが、それでも既に長蛇の列となっていました。

f:id:LIFULL-etotake:20170518151829j:plain:w500

1時間ほど列に並び、少し端よりの席に座りました。
開演までの間、Bubbleを飛ばせるURLがスクリーンに映し出されており、スマートフォンでアクセスするとBubbleをタップで飛ばすことが出来るようです。
さらに、スクリーンではどの国で何人がBubbleを飛ばしているかを写しており、世界中が注目していることが改めて実感出来る瞬間でした。
f:id:LIFULL-etotake:20170517233251j:plain:w500
待機中も飽きさせないのがいいですね。

そしてついにGoogle I/Oの幕開けです。
いつものようにカウントダウンのあとに、Google CEO Sundar Pichai氏の登場です!
f:id:LIFULL-etotake:20170518152304j:plain:w500
f:id:LIFULL-etotake:20170518152222j:plain:w500

Keynoteの全体的な感想としては、冒頭にPichai氏が”Moble first to AI first”と表現したようにディープラーニングや機械学習に関する話が大部分を占めていたように感じました。
音声認識のエラー検出も、8.5%から4.9%まで下がったという話も出てきます。
そんな中、印象に残った話をあげていくと・・・

Google Lens

AIによる画像認識技術を使用したもので、カメラでかざし、映ったものを判断できるというものです。
f:id:LIFULL-etotake:20170517233945j:plain:w500
会場で使われた例では、旅先で建物の写真を撮ったあとに、Photoアプリ内でGoogle Lensを呼び出しその建物の詳細を教えてくれるというものでした。
風景以外に、バーコード、看板の文字、電話番号なども認識できる。

Google.ai

Google.aiについても取り上げられており、ディープラーニングの演算に特化したTPU(Tensor Processing Unit)やGoogle Assistantなど、人工知能の発展も大きく取り上げられていました。
それとともに、Google Assistant SDKやActions on Googleも紹介されました。
Actions on Googleのリンクを開けばすぐに出てきますが、Actions Challengeで挑戦するとGoogle I/O 2018の参加チケットや他20の賞をもらうことが出来るとのこと。是非挑戦してみたいです。

Google Home

ついに来ました。Google Home。
夏に日本にも来ます!!
f:id:LIFULL-etotake:20170518152618j:plain:w500
また、少し前に複数人の声を判別出来るという話題が上がっていましたが、その例として次のような会場パフォーマンスも。
遅くなったけど母の日の電話をしたいから「母さんに電話」とGoogle Homeに呼びかけます。
すると、Google Homeは母の名を言われなくても、声の主から母親を判断し電話かけてくれるのです。
人間からするとなんてことない内容なのですが、これを機械が出来るというのがどれだけすごいことか、と感じさせれた瞬間でした。

それに加え、Google Homeは複数デバイスの特徴を理解していて、その場に適したデバイスにレスポンスを映し出してくれる。
例えば、「○○の道順を教えて」とGooge Homeにたずねたあと、「よし、じゃあ行こう」というとスマホに現地までのマップを表示してくれたり・・・
あるいはTV写してくれたりと、その状況に応じてレスポンスを返してくれるとのこと。恐るべき人工知能。

さらには・・・

Google Photos

ある人が写真に写っていて、それをその人にシェアをしてはいかがでしょうか・・・?
それが今回発表された”Suggested Sharing”というもの。
スマホで撮影後、Google Photosにアップロードされ、AIにより写真が分類されるようです。

Photo Books

AIの仕分けや個々人の好みから、Photo Bookとして物理的な写真を残す事ができる。
物理的に写真として残すことは良いけど、まさかそれをAIが良い写真をピックアップして成し遂げられるというのが驚きです。
アプリから購入することが出来るとのこと。

他にも

Youtubeに寄付機能や、Youtubeに360°パノラマが登場など、ワクワクさせられるものばかりでした。

Developer Keynote

Androidのアクティブデバイス数は・・・20億。改めて聞くとすごいですね。20億。
Developer KeynoteではAndroidの新OS”O”の新機能が紹介されました。

Picture-in-Picture

文章で説明するのが難しいのですが、YouTubeで動画を下にスワイプすると右下に小さく表示されるようになる機能・・・というと想像が付くでしょうか。
それがアプリ単位で出来るようになります。マルチウィンドウと同じようなものと思われます。

Notification

Android Oでは、バッジみたいなもの(Notification Dots)が表示され、さらにアイコンをロングプレスすることでそのアプリの通知が表示されるようになります。
また、通知チャンネルの実装がAndroid O以降では必須になるとのこと。
Notification関連は、毎年話が出てきますね。

AutoFills with Google

ログインなどのフォーム入力、毎回メールアドレスを打ち込んだり、面倒くさいですよね。
AutoFillによる自動入力で楽になります!
ちなみに、個人でメモするため顔を下げた瞬間デモが始まり、すぐ顔を上げたときにはデモが終わっていました。
それほど楽になるのでしょう。生で見たかったです。

Kotlin

Kotlin使っていますか?最近流行っていますよね。周りでも取り入れている話を結構耳にしますが・・・
「Now officially support Kotlin」
!!!
驚きました。GoogleがKotlinを正式にサポートするとのことです。
Jet BrainsのCEOもGoogle I/Oに来ているようで、カメラに映し出されていました。

あまりKotlinに触れたことがないので、今年はKotlinで遊んでみようと思います。
慣れるまで少し時間がいるかもしれませんね。

上記の他にも、Instant Appsのパブリック公開・api.aiやFirebase Cloud Functions・Firebase Performanceの紹介など盛りだくさんです。
全てを当日記事にするには時間が足りず・・・追々個別に詳細を紹介して行ければと思っています。

そんなこんなで濃い1日目が終了・・・
日向に出ると焦げそう、日陰に入ると凍りそう、そんな気候です。

番外編

KeynoteやSessionはYouTubeで公開されます。
でもせっかくI/Oに来たので、Codelabや様々なブースにも顔を出してみました。
f:id:LIFULL-etotake:20170518152606j:plain:w500
Codelab。約70のCodelabがあり、4つ達成するとI/O18のチケットがあたるチャンスも。
常に混雑しています。

f:id:LIFULL-etotake:20170518152554j:plain:w500
日陰は寒く、日向は燃えるよう・・・でも日陰のほうがまし??
太陽の境目に沿って人々が動いていく様。私ももれなく日陰に移動しました。

f:id:LIFULL-etotake:20170518152542j:plain:w500
余儀なく日向に座った直後は、冷えたコーラが身にしみます。

明日は厚着して行こう。

Google I/O 2017 旅日記 〜DAY TWO〜へと続く…

Google I/O 2017 旅日記 〜DAY ZERO〜

こんにちは。Android開発グループの衛藤です。
前回の記事では、準備編をお送りしました。
さて、いよいよ出発の日となり、荷物のパッキングも無事に終わりあとは待つだけ!

成田空港〜San Jose空港〜からのイミグレ

f:id:LIFULL-etotake:20170517064056j:plain:w500
早めに成田空港着。機内食があるため軽く昼食を済ませて出発ロビーで待機中。
I/Oに行く人で結構混んでますね。ほぼ満席状態。
初のボーイング787で飛び立ちました。機内で全く眠れず昼夜逆転状態で到着・・・

そして無事にSan Jose空港に到着し、イミグレへ。 入国には2時間程度かかるという事前情報もありましたが、30分ほどであっさりと入国完了。

f:id:LIFULL-etotake:20170517064049j:plain:w500
ハローサンノゼ!!

I/Oバッジのピックアップ

f:id:LIFULL-etotake:20170517145251p:plain:w500
バッジのピックアップは早いほど良い!ということで空港到着後すぐにスマホ起動→UBERで現地へ。
空港からは20分程度なので意外と近いところにあるようです。

初めてのUBERだったので緊張しましたが、使い方は非常に簡単でした。
現在位置がデフォルト設定なので、行き先を地図上で指定して配車ボタンを押すだけ・・・後はアプリに車種が表示され、その車が迎えに来てくれます。

ちょっと寄り道してほしかったので、試しにドライバーに聞いてみると「アプリから指示されたGPSルートに従って運転するだけだからねぇ」という感じでやんわり断られました・・・
ただ、そういう事なのでタクシーと違って回り道されたりすることはなさそうですね。

ということで、無事I/O会場にも到着しました。
f:id:LIFULL-etotake:20170517064032j:plain:w500

I/OのQRコードをかざしてバッジを受け取り、無事に明日からの参加を待つことができそうです。
f:id:LIFULL-etotake:20170517064040j:plain:w500
こんな感じでそこまで並んでもいなかったです。

Google Merchandise Store

f:id:LIFULL-etotake:20170517064259j:plain:w500
時間が余ったので、ふらっとGoogle Merchandise Storeに立ち寄りました。
せっかくなので会場から歩いて行ったのですが、Googleの街が広すぎ、また寝不足により疲れがピークに。しかもデカイスーツケース付き。

なんとかお土産の大量購入に成功し、フラフラしていたら・・・

f:id:LIFULL-etotake:20170517064251j:plain:w500
例の彼がいました!!
ここで初めてGoogleに来た実感が湧いてきました!
f:id:LIFULL-etotake:20170517064243j:plain:w500
人々が彼の写真を撮る名所のようです。

INTEL GOOGLE I/O DAY ZERO PARTY 4.0

f:id:LIFULL-etotake:20170517144017j:plain:w500

Google I/Oは明日5/17から始まりますが、前日はIntelで前夜祭のようなイベントが開催されます。 初めてで緊張しますが、飛び込んできました!
内容的にはIntelの最新技術取り組みのブースが多数展示されており、Intelエンジニアと直接話すことが出来ます。
会場はクラフトビールのお店で開催されるため、様々なビールと食事が無料で楽しめます!
日本人も参加しており、話すことが出来たのも貴重な体験です。

f:id:LIFULL-etotake:20170517144038j:plain:w500
初めてカルトレインも乗りました。日本の電車に比べて賑やかですね。

f:id:LIFULL-etotake:20170517144031j:plain:w500
会場の様子。DJが音楽を流し続けながら・・・

f:id:LIFULL-etotake:20170517144009j:plain:w500
外ではタコスやsushiなどが無料で食べられます。タコスがおすすめです。

f:id:LIFULL-etotake:20170517144113j:plain:w500
23:00くらいまで続くらしいです。

そしていよいよ明日からGoogle I/O 2017開催!
明日のためにも今日は早めにお休みします!

Google I/O 2017 旅日記 〜DAY ONE〜へと続く…

Google I/O 2017 旅日記 〜準備編〜

f:id:LIFULL-etotake:20170512152425j:plain

こんにちは。Android開発グループの衛藤です。
2017年5月17日〜2017年5月19日 Google I/O 2017が開催されます。
今回、初のGoogle I/O参加が決まり、大変楽しみにしています。
折角なので旅日記として体験した事を記録としてブログに残そうと思い、記事を書き始めました。
また、出来る限りタイムリーに記事を上げたいため、現地から投稿を行う予定です。
気になる方は是非ご覧ください!

準備編

f:id:LIFULL-etotake:20170512111856j:plain:w300
Google I/O初参加に向けて、これまで準備を行ってきましたのでまずは準備編としてまとめます。
最後にTODOリストも用意しましたので、来年参加する方々の参考になれば嬉しいです。

Google I/Oチケットに当選したら

毎年、Google I/Oのチケットは抽選で決まります。
今年は2月22日あたりから申し込みが始まりました。後日抽選の結果としてGoogleからメールが届くので、その時点で当選・落選が確定します。

残念ながら落選した場合…

キャンセルが出る場合もあるそうなので、もしかすると当選に繰り上がる可能性も・・・!?

当選したらまず行うこと

  • 航空券
    直行便はすぐに予約で埋まってしまい、経由便しかなくなるので要注意。

  • ホテル
    Google I/Oが開催される近辺のホテルが次々と埋まっていき、最終的には空いていたとしてもかなり価格が高騰します。
    私はとあるホテルを予約しましたが、その時に比べて1万円近く跳ね上がっていました。
    場合によってはAirbnbを使って安く済ませるのも有りかと思います。

Expediaなどでホテルと航空券を一気に予約する方がおすすめです。(ホテルへの予約確認も全て代行して行ってくれるため。また24時間サポートなので何かあれば電話で相談すれば良い)
安いがキャンセル不可、というものもあるので注意が必要。

滞在する場所選びも重要

今年も去年と同様Mountain ViewのShoreline Amphitheatreで開催されます。
私はMountain View近辺にてホテルを予約しましたが、San Francisco近辺で取る方も多いようです。
また、毎年Google I/OのWebサイトにGoogle推奨ホテルが掲載されており、Googleによって予め部屋がブロックされているとのこと。
ただ少し高めのホテルなため予算との兼ね合いで決めると良さそうです。
ホテルによってはGoogle手配のシャトルバスもあり、イベント現地まで無料で送迎してくれます。

I/Oのスケジュールを把握&座席予約

Google I/OのスケジュールはGoogle I/OのWebサイトで発表されます。
Googleアカウントでログインすると、セッションそれぞれ「+」ボタンで印を付けることができるようになり、My I/Oタブでフィルタリングされて表示されるなど、当日のタイムスケジュールを組む際に便利なので活用できそうです。
セッションについては、前もって座席予約をしておくことが出来ます。

また、AndroidiOSでGoogle I/Oアプリも公開されます。
アプリでは会場のマップも表示され、現地では必須アプリになりそうですね。

Android版アプリの会場マップ
f:id:LIFULL-etotake:20170511105313p:plain:w300

当日までにやっておくと良いこと

Google+のコミュニティ参加

Google+のアカウントを持っていれば、Google I/Oに関するコミュニティに入ることが出来ます。
イベント当日までにホテル事情やスケジュールのアップデート情報等、タイムリーに把握することが出来るのでおすすめです。
私はGoogle I/OGoogle I/O GDC Japanコミュニティに参加させていただきました。

Intel’s Google I/O Day Zero Partyの参加登録

毎年開催されているようですが、前夜祭イベントがI/O前日に開催されます。(今年は2017/5/16 19:00~)
Eventbriteで公開されるので、興味があれば事前に予約しておくとよいです(21歳以上)。私も参加してみることにしました。
前日においしいクラフトビールを飲みながら様々な国のエンジニアと交流するはいかがでしょうか?
会場へは近くのカルトレインの駅からシャトルバスが出るとのこと。

TODOリスト

簡単に必須項目についてのTODOリストを作ってみました。
他にもたくさんあると思いますが、とりあえずないと困るであろうものをピックアップしています。
一般的な海外旅行の必需品等は除いています。

項目 内容 備考
パスポート 期限を確認する 1週間ほどかかるので余裕を見て
ESTA ESTA公式サイトから申請 原則出発72時間前までだが、早めのほうが吉
米国国土安全保障省(DHS)により2009年1月12日から義務化
eTa カナダ経由になる場合は必須
宿泊 ホテルやairbnbなど I/O WebサイトにGoogle推奨ホテルが掲載
早めに予約推奨
航空券 近いのはSJC 早めに予約推奨
Wifi/SIM 現地での通信用 海外SIMの方が安いが、SIMフリー端末が必要
海外旅行保険 楽天トラベルなどで申請する
たびレジ登録 外務省のWebページから登録 旅行者情報の登録
モバイルバッテリー 大容量だと安心 個数や容量に関して機内持ち込み制限もあるので航空会社のHPで確認を行うこと
変圧器 必要があれば スマホ等は基本ユニバーサル仕様なので問題ないはず ※1
印刷物 パスポート
Google I/Oチケット
ホテルの予約確認ページ
航空券のeTicket控えなど
万が一のときのため
水筒 会場のウォーターサーバーで水分を蓄えておく 気温差が激しく、昼は暑いらしい
Uberアカウント 現地移動手段として 予めクレジット登録も済ませておく
日焼け止め 黒焦げ対策 日光が強い

※1: 変換プラグについては、北米であれば日本と同じAタイプのため基本的には不要。電圧の違いだけ注意すること(電源タップ持参する場合、120V対応でないと燃えたりする)

電源関連については、以下のUSB用の電源アダプタが非常に便利です。
Anker | PowerPort Speed 5 Quick Charge 3.0 | Black
f:id:LIFULL-etotake:20170512095749j:plain:w300
今回、電子機器関連は以下のものを持っていくのですが、多すぎてUSBのアダプタがかさばる&コンセント足りないかも問題を解決してくれます!しかも海外電圧対応。

  • Android
  • iPhone
  • Wifiルーター
  • モバイルチャージャー(充電はUSB2ポートで急速充電タイプ)

最低でもUSB充電が5つもあり、充電問題に悩まされそうなので購入しました。そこまで重くもなく大きすぎることもなく、重宝しそうです。

社外向け報告会の告知

2017/5/26(金)に株式会社LIFULL 半蔵門オフィスにてGoogle I/Oの報告会を行います!
今年4月に移転したばかりのキレイなオフィスに是非足を運んでみてください!

f:id:LIFULL-etotake:20170511125444p:plain

以下connpassのページよりお申込みください。
LIFULL.apk #1 - Re: Google I/O 2017

スピーカー枠やLT枠も募集中です。
皆様の参加を心よりお待ちしております♪


Google I/O 旅日記 〜DAY ZERO〜 へ続く…

アプリをApple TVに対応するときにデザイナーが考えたこと

こんにちは、LIFULL HOME’Sアプリのデザイナーをしている、コイズミです。

この度、LIFULL HOME’SはiOSアプリをApple TVに対応させるアップデートを行いました! LIFULL HOME’SのApple TVアプリは、新築マンションを特集(ペット可や駅近など)から探すアプリです。 f:id:nextdeveloper:20170405112336p:plain

※東京・神奈川・千葉・埼玉・名古屋・大阪のみ対応

新築マンションって、写真がきれいで夢が広がりますよね! 今回は、tvOSのアプリ開発を通して、iOSアプリと提供するUXの違いや、デザイナーが気をつけるべきポイントをお伝えしたいと思います。

f:id:nextdeveloper:20170405112433p:plain

LIFULL HOME'Sアプリ ダウンロードはこちら

続きを読む

継続的社内勉強会を支える仕組み

お久しぶりです。 半年ぶりになってしまった技術基盤部の相原(kaihar4)です。

今回は、私が入社した直後あたりから続いている社内勉強会のTech Talk Lunchについてと、そのTech Talk Lunchを長く続けていくために取り組んでいる仕組みの紹介をしていきたいと思います。

  • Tech Talk Lunchとは
  • 長く続けていくための仕組み
    • トピックを限定しない
    • トピックは持ち寄り
    • ランチタイム開催
  • 社内勉強会を続けるメリット
    • 技術的視野の広がり
    • 他部署との関係構築
    • 発信の習慣化
    • 情報収集の習慣化
  • さいごに

Tech Talk Lunchとは

Tech Talk Lunchとは、その名の通りお昼に開催される私が知る限り社内でも有数の長く続いている定期開催の社内勉強会です。

毎週月曜日の13時から14時までの1時間、前の週の最新ニュースを中心に各自がトピックを持ち寄り、1人5~10分程度を目安に持ち寄ったトピックを自由に共有します。 持ち寄るトピックに制限はなく、現在でもビジネス的なものからアカデミックな論文の紹介、土日に読んだおすすめの技術書に面白いウェブサービスの紹介まで、様々なトピックが共有されています。 また、共有形式もスライドを用意するといったことはなく、大抵はウェブページを見ながらであったり、用意していても簡単なメモ書き程度で、緩く共有するというコンセプトとなっています。

最初はチームのメンバー3人でスモールスタートしたTech Talk Lunchも、こうした開催方法を続けた結果、それほど大きくない会議室で開催しているものの毎度満員御礼となり、参加者も新卒1年目からベテランエンジニアにマネージャまでと幅広く参加する社内勉強会となりました。

続きを読む