LIFULL Creators Blog

LIFULL Creators Blogとは、株式会社LIFULLの社員が記事を共有するブログです。自分の役立つ経験や知識を広めることで世界をもっとFULLにしていきます。

WWDC 2017 - WWDCチェックイン編 -

こんにちは。LIFULLの池田です。

とうとう明日からAppleのWWDCがSan Joseで開催されます!
今回は、日本出国から現地でのWWDCチェックインまでです。
(前回の準備編はこちら。 )

成田空港〜サンフランシスコ国際空港(SFO)

WWDC会場のSan Jose McEnery Convention Centerの最寄りの空港はノーマンY.ミネータサンノゼ空港ですが、今回は予約の際に安く航空券が手に入ったサンフランシスコ国際空港(SFO)を選びました。

成田空港で航空会社のチェックイン、出国審査を行いいざ飛行機へ。
今回はユナイテッド航空でサンフランシスコに向かいました。

f:id:LIFULL-ikedakz:20170605152704j:plain

9時間半のフライトの末、サンフランシスコ国際空港に到着。
サンフランシスコ国際空港ではイミグレーションに長蛇の列。。
普通にいくと1, 2時間はかかりそうな列。

その列に並びながら横を見ると「Returning ESTA」の看板が!
ESTAをとって2度目以降のアメリカ入国だとイミグレーションの手続きが違うらしく、私たちは運良く2度目以降の入国だったため、そちらの方へ。
少しの列はありましたが、15〜20分くらいで手続きを終え先に進むことができました。

f:id:LIFULL-ikedakz:20170605152726j:plain

そんなこんなで入国完了!
時差ボケと戦いながらアメリカでの活動スタートです!

WWDCのチェックイン

WWDCのチェックインは開催前日のAM9:00から。
会場はSan Jose McEnery Convention Centerです。
会場の近くにはVTAのLight Railの駅(San Jose Convention Center Transfer Station)があり、$2で距離に関わらず1回の片道乗車ができます。
今回はこのLight Railを利用して会場に向かいました。
下の写真は路線図。

f:id:LIFULL-ikedakz:20170605153935j:plain

駅から降りるとすぐそこにはもう会場が!

f:id:LIFULL-ikedakz:20170605154129j:plain

建物全体にWWDCの装飾が施されています!
だんだん実感が湧いてきました!

混んでいるというほど人はいないですが、それなりの人がいて賑わっています。
会場前の広場では参加者に対して食事と飲み物が無料で提供されています。

右奥のチェックインカウンターでWWDCのチェックインをします。
チェックインではWalletアプリに登録済みのWWDCパス内のバーコードを読み取ってもらいます。
この読み取りが完了するとパス、リストバンド、記念品のジャケット、ピンがもらえます。

f:id:LIFULL-ikedakz:20170605154656j:plain

これでチェックイン完了です! とうとう明日はWWDC初日!
Keynoteで何が発表されるのか楽しみです!

WWDC 2017 - 準備編 -

こんにちは。iOS開発グループの塙です。

来週の6/5-9にCA, San JoseでWWDC 2017が開催されます。 WWDCとはAppleが毎年開催している開発者向けイベントで、 Appleの新しいデバイスやOSなどの発表が行われます。

developer.apple.com

今回はWWDCに参加するまでにはどんなことをすればいいかを書きたいと思います。

抽選に応募する

応募資格としてはApple Developer Programが必要です。 個人だと年間1万円くらいかかりますが、月額にすればたいしたことないので macOS,iOS,watchOS,tvOSの開発を考えている方は登録しましょう。

上記を満たしていれば1-2月辺りに突如Appleからメールが来ます。

f:id:LIFULL-hanawat:20170602185001j:plain

このメールと共に募集が開始するのですぐに登録しましょう。 ただし当選した場合、自動でクレジット決済されてしまうのでお財布と相談してください。 入場チケットの料金は20万円弱くらいです。高い…

抽選に当選したら

このようなメールが届くので、近所迷惑にならない程度に喜びましょう。 外れてしまった場合は、近所迷惑にならない程度に泣きましょう。

f:id:LIFULL-hanawat:20170602185131p:plain

航空券とホテルを確保する

まずやらなくてはいけないのが航空券とホテルの確保です。 この当選発表と共にWWDC会場近辺に到着する航空券、会場近辺のホテルの予約が殺到します。 (真のApple信者の方々は抽選結果がわからない内から予約をしています)

今回はAppleから当選者に向けた良さげなホテルの提供があったのですが、如何せん高い。 お金持ちでない限りはExpediaなどでそれなりの航空券とホテルを探しましょう。

日本人コミュニティに入る

次に必要なのは日本人の知り合いです。特に1人で初めて参加される方は必須です。 やはり土地勘のない場所で単独行動するのは心細いものです。 そんな時は国内で参加者同士のミートアップが行われるのでたくさん参加して仲良くなっておきましょう。

f:id:LIFULL-hanawat:20170602185110j:plain

私は今年Timersさんのミートアップで去年自腹で行った時の内容を発表させていただきました。 詳しい方から有益な情報を聞き出せたりするのでおすすめです。

f:id:LIFULL-hanawat:20170602185120j:plain

画像提供: Timers inc. さんありがとうございます。

お外に出たくない。もっと知り合い作りたい。という方向けにFacebookやSlackのコミュニティがあります。 毎年抽選結果がわかるころには作成されているので"WWDC"で検索して参加リクエストを送りましょう。 現地でのイベント情報の共有や、ご飯のお誘いなどに利用されています。

パスポートの期限を確認する

アメリカの入国にはパスポートの期限が3ヶ月残っていることが望ましいので、 ギリギリの方は更新しましょう。まだ持ってない方は早く取りましょう。意外と面倒です。

ESTAを取得する

ビザを取得せずに入国する外国人に対してESTAの事前申請が義務化されています。 取得自体はすぐできるので搭乗手続きまでには絶対に行なってください。絶対です。 (去年取り忘れていて倍以上の値段で航空券を再度購入した)

保険とWifiの準備

あとは任意になるのですが、保険とWifiはあった方がいいです。というか必須です。

  • 保険: San Franciscoの時はかなり治安の悪い場所で開催されていたので必須でした。海外行く時は大体入りますよね。
  • Wifi: 去年は自腹でお金がなかったので借りなかったのですが、公共Wifiがない場所で迷子になります。

周辺イベントに参加申し込みする

WWDCに参加する準備は大体整い、余裕が出て来た頃に周辺で行われるイベントを探してみましょう。 以下のアプリを使用するとたくさんの企業が開催するイベントが見れます。

  • Parties: Appleが提供していて、主に企業が開催する周辺イベントを管理できます。

  • Eventbrite: 現地に住む日本人エンジニアのミートアップなど小さなイベントも見つけられます。

  • AltConf: 毎年WWDCのセッションと同じ時間帯に行われている大きなイベントのスケジュールが見られます。

WWDC公式アプリをインストールしておく

現地で発表が始まるとスケジュールが公開されます。 通知が来たり、セッションの動画がストリーミングできたりする優れものなのでとりあえず入れておきましょう。

https://itunes.apple.com/jp/app/wwdc/id640199958

Uber/Lyftアプリをアクティベートしておく

向こうの電車は味があって好きですが、本数も少なく時間も曖昧なのでUber/Lyftを使いましょう。 ただしアプリのアクティベートには電話番号が必要なので、現地でアクティベートが困難になる場合があります。 なので国内にいる内にクレジット登録とアクティベートを済ましておきましょう。

  • Uber: 日本ではまだドライバーが少ないですが、アメリカはわんさかいます。

  • Lyft: 知らない人と相乗りができるUberです。私は楽しいのでこっちをメインで使ってました。

身体を大事にする

私は健康管理が下手くそなのでこれが一番大事だと思っています。最近は野菜ばかり食べてます。野菜はいいぞ。

あとは参加するだけです。では現地で会いましょう、アディオス。

宣伝をする

弊社でWWDCの報告会を開催予定ですので奮ってご参加ください。

lifull.connpass.com

LIFULLクリエイターによるプロダクトの祭典・第4回 創民祭を開催しました

こんにちは!クリエイターの日運営委員会のタカラベです!
今回は、第4回創民祭について共有させていただきます!

創民祭とは?

f:id:LIFULL-takarabs:20170531151813p:plain 創民祭(そうみんさい)は、業務、クリエイターの日、プライベート、LIFULL社員が作ったプロダクトをお披露目する社内展示会です。

  • 地道に作っていたプロダクトを実際に触ってもらう
  • すごいって褒めてもらえる!
  • 楽しんでくれる!

など、ものづくりを頑張るクリエイターが鼓舞される、半年に一回の楽しいお祭りです。

過去記事はこちら!

社内クラウドファウンディング・W3C Push API・ぬいぐるみハック・マウスになる椅子など最新技術や新しいアイデアてんこ盛りの社内プロダクト展示会を開催しました! - LIFULL Creators Blog

おそ松さんディープラーニング・VRアクションゲーム・tvOSなど最新技術てんこ盛りの社内プロダクト展示会を開催しました! - LIFULL Creators Blog

第1回創民祭を開催しました - LIFULL Creators Blog

半蔵門に来て初めての創民祭!

f:id:LIFULL-takarabs:20170516183046j:plain 第4回目となる今回は、2017年4月から半蔵門に社屋移転してはじめての会でした。
壁・床材の木目や、壁に直接投影されたスライドなど、綺麗でテンションがあがります!!

f:id:LIFULL-takarabs:20170516184547j:plain 今回からライトニングトークも開催しました!
展示ブースではプロダクト自体の説明が主ですが、
ライトニングトークでは開発中の成功・失敗体験を共有する人が多く見られました。
当日の飛び込み参加もあり、ワイワイしていましたよ!

全部で10個!展示プロダクト

①NEXT STAFF MAKER

f:id:LIFULL-takarabs:20170531145541j:plain 前回の創民祭から出展してくださっていたこちらのプロダクト!
髪型や洋服を着せ替えできて、自分そっくりの可愛いアイコンを作成することができます。
弊社は社内での連絡手段としてChatWorkを使用しているのですが、意外とデフォルトアイコンの人が多く…
その方の個性が見える&他の人と区別しやすくしたい、との想いで、作成されたそうです!

②Edmaps

f:id:LIFULL-takarabs:20170516183040j:plain オリジナルの観光地プランを作成できるサービス!
エンジニア3名で作成とのことですが、話題のAdobeソフト「Adobe Xd」を用いて自らデザインを行っていました。
しかも綺麗で使いやすそう!今回は開発環境だけだったので、是非手にとって操作してみたいプロダクトです!

③LIFULL CAMERA

f:id:LIFULL-takarabs:20170516183036j:plain iPhoneやAndroidで簡単にL字フォーカス付きの写真が撮影できるアプリを展示してくださいました!

【?】L字フォーカスとは
2017年4月から弊社・LIFULLのロゴが新しくなり、「L」で四角をかたちどるものに刷新されました!
この四角、「世の中の不」「叶えたい未来」などにフォーカスを当てる「L字フォーカス」と私たちは呼んでいます。

④社員限定ランチマッチングサービス「LunchMatch」

f:id:LIFULL-takarabs:20170516183037j:plain 前回も出展してくれた「LunchMatch(ランチマッチ)」は、社内で面識のない人とランチできるマッチングサービス。
新卒1年目のエンジニア3人で開発を進め、社内限定でローンチ→現在まで運用を続けております!
作って終わりではなく実際使ってもらい続けるために、運用まで頑張っている姿がとても印象的なこのサービス。
特に、中途入社でまだ知り合いが少ない方や今年度の新卒に利用されているそうですよ!

⑤VR「蚊」+ ライブコーディング

f:id:LIFULL-takarabs:20170516183025j:plain 「誰しもが一度は蚊になりたいと思ったことがあるハズ。そんな夢を、実現しました。」
コンセプトから魅力的なこちらは、VRで蚊になった気分を体験できるプロダクトです!
観客もたくさん!みなさん笑顔と驚きの表情で体験していて、盛り上がっていました!

⑥IoTでトイレ個室の空き状況を見られるようにするシステム

f:id:LIFULL-takarabs:20170516183029j:plain 実は、まだ品川で働いていた頃に話題になっていた問題です。
トイレに行っても行列、なかなか出てこない…あのモヤモヤをIoTで解決しようという試みがこのプロダクトです!
こちらは開発者2人で、プロダクトも2つ。2つの方法でトイレ個室内に人がいるか検知しています!

1)赤外線センサーによる人感検知によって、トイレ個室内に人がいるか検知しています。
赤外線センサーは以下の機器を使用しているそうですよ!
Raspberry Pi 3 と DSUN-PIR を使って人感センサーを作る + 人感センサー検知状況を表示する簡易Webアプリケーションを作る - Qiita

2)トイレのドアにリードスイッチを付けて、ドアの開閉を検知する事で、トイレ個室内に人がいるか検知しています。

⑦LIFULLのクリエイター紹介サイト

f:id:LIFULL-takarabs:20170516183042j:plain LIFULLのクリエイター紹介サイト「LIFULL CREATORS FILE」は、LIFULLのものづくりスタッフの紹介サイトです。
プロフィールやクリエイターズブログを通し、
メンバー自身がものづくり活動を発信することができます。
ここではLIFULLの個性あふれるスタッフたちが思い思いの自己紹介をしていきます。
彼らが普段どんなことをしているのか、気になる所ですね!

⑧社員スキル検索

f:id:LIFULL-takarabs:20170516183044j:plain バックグラウンドや携わっているサービスも多岐に渡るので、得意な開発言語、技術、知識もさまざまです。
「新しい開発言語触ることになったけど、ノウハウ誰か伝授してくれないかな…」
そんなときに探すことのできるのが「社員スキル検索」です!
面白いのが、他の人の「得意なスキル」も追加することができること。
得意なスキルといわれると自分では謙遜しがちですが、これなら十分に可視化できそうですね!

⑨班分けAI

f:id:LIFULL-takarabs:20170516183026j:plain 当時新卒一年目のエンジニアが開発!
LIFULLの社員旅行のために開発した、アクティビティの班分けを行うAIになります。
これまで、各社員が参加するアクティビティは人力で割り振っていましたが、
「班分けAI」は、社員のアクティビティ参加希望を入力すると、”自動的に”希望をできるだけ叶えるグルーピングをしてくれるのです!
詳しい実装内容に興味がある方は、こちらの記事をご覧ください!

班分けAI - LIFULL Creators Blog

⑩不動産ポータルサイトのポータルサイト

f:id:LIFULL-takarabs:20170516183028j:plain こちらは2年目エンジニア研修プログラムSETで開発されたサービスです!
サービス内容は不動産ポータルサイトのポータルサイト、ということでややこしいですが、
世の中にたくさんある不動産ポータルサイトの情報を一覧できるサービスのようです!
企画からデザイン、実装まですべて2年目のエンジニア2人で行った意欲作です!

栄えある受賞プロダクトは?!

f:id:LIFULL-takarabs:20170531150114p:plain

★優秀賞「IoTでトイレ個室の空き状況を見られるようにするシステム」

来場者の投票数が最も多いプロダクトに贈られる賞!
切実な課題に対する解決策をプロダクトとして実現しており、ぜひ導入して欲しいとの声が多く聞かれました!
社内で試験運用することも計画されているようで、実現まであと少し!楽しみです。

★山田賞「NEXT STAFF MAKER」

技術職出身・役員の山田が選ぶ賞!
無印アイコンをなくしたいというプロダクトの目的もさながら、新卒4人制作職のみで作りきった点が評価されました!
今回の創民祭後、社内公開されてからは、「NEXT STAFF MAKER」のアイコンの社員が増えて、普及率も高いです!

★Tech賞「班分けAI」

クリエイターの日運営委員会によって、技術的にスゴイ!と思うプロダクトに贈られるTech賞!
彼の強みを活かして社内の身近な課題解決に取り組むマインドと、その実現力の高さがポイントでした!

最後に!

創民祭も4回目、新社屋でも無事開催できました。
社内のみの限定開催ではありますが、出展してくれるプロダクトの数はもちろん、来場者も増えてきています!!
LIFULLは、創民祭以外にも、クリエイターの日・クリエイティブアワード・トキワ創など、
ものづくりを推進・賞賛する制度が多くあります。
「LIFULL HUB」というコワーキングスペースもありますので、
是非一度遊びにきてください! hub.lifull.com
以上、第4回創民祭についての報告レポートでしたヽ(・ω・)/

WWDC2017共有会 - 今年も開催いたします!

こんにちは。初めまして。
LIFULL HOME’SアプリのiOSエンジニアをしています、やまもとです。

いよいよ来週! WWDC2017!

一体どんなサプライズが待っているのでしょうか。たのしみです。

弊社からは、池田と塙の2名のiOSエンジニアたちが参加いたします。 (わたしは留守番。

f:id:LIFULL-yamamosa:20170529142534j:plain (左:池田、右:塙)

サンノゼで見かけた際には、ぜひお声がけくださいませ。

さて、今年はiPhone発売10周年。

ことiPhone8に関しましては、いろいろな噂で賑わっていますね。

  • 5.8inch?
  • 有機ELディスプレイ?
  • ワイヤレス充電?
  • ガラス製のボディ?

などなど・・・

また、もちろんiOS11も要チェックですね。気になる噂をたくさん耳にします。

  • コンセプトデザインの刷新?
  • AR?
  • Siri強化?
  • ダークモード?

そのほかのApple製品の情報からも目が離せません!

  • AIチップの搭載?
  • Siri搭載スピーカー?
  • Apple Watch Series 3?
  • 新iPad Pro?

などなど・・・アツイ!こんなにアツイ情報をジブンだけのPCの中に留めておくのはもったいない!では共有しませんか!と始まったWWDC共有会ですが、今年も弊社、LIFULLで開催いたします!

f:id:LIFULL-yamamosa:20170526192306p:plain lifull.connpass.com

弊社のWWDC共有会は今年で3回目!

f:id:LIFULL-yamamosa:20170530113947j:plain

去年の共有会の様子です。
たくさんの方にご来場いただき、スピーカーの皆様のアツイWWDCトークで会場は盛り上がりました!

f:id:LIFULL-yamamosa:20170530113950j:plain

WWDCの際に現地でゲットしたお土産のプレゼント抽選会もありました。
今年も、もちろん豪華プレゼントをご用意しております!アツイ!羨ましい!わたしも欲しい!

現地に参加される方も、おウチでまったりKeynoteをストリーミングで観る方も、わたしと同じお留守番な方も!お気軽にお越しくださいませ。

アツイ情報はアツイうちに共有しましょう!
以下、イベント情報になります。

イベント情報

日時

2017/06/30(金)19:00 〜 22:00

場所

株式会社LIFULL 東京都千代田区麹町1丁目4-4

半蔵門線 半蔵門駅 3a出口より徒歩2分
有楽町線 麹町駅 3出口より徒歩6分

参加費

無料です!

内容

  1. 弊社のWWDC参加エンジニア2名によるアツイWWDCトーク
  2. スピーカー枠でお申込みいただいた方のアツイLT
  3. 現地で調達したお土産のプレゼント抽選会
  4. お酒と軽食をお供にみなさんと技術交流

定員

スピーカー枠:5名 (10分前後の発表内容のご準備をお願いいたします)
オーディエンス枠:70名

注意事項

  • Apple Developerアカウントを持っている方に限定させていただきます
  • Appleとの契約上守秘義務の課せられている情報等については、個人の責任において管理をお願いいたします
  • なお上記に伴いまして、入場時に誓約書への記載をお願いいたします

詳細&参加お申込み

lifull.connpass.com

皆様のご参加を心よりお待ちしております!

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〜へと続く…