LoginSignup
34
33

More than 5 years have passed since last update.

Google I/O報告会に2つ参加して印象に残ったところメモ

Last updated at Posted at 2016-06-12

Google I/O本体に行きたかったのですが、残念ながら行くことができなかったので、それぞれ報告会に出てメモしてみました。
印象に残ったところを太字にしておきますので、流し読みにどうぞ
自分はなんとなくGoogle I/Oの各発表内容は知っていて、詳しくは知らないという状態で、詳細について驚いたところや印象に残ったことが結構あったので、その部分を太字にします。


Fablicで行われた Google I/O 2016情報共有会

Google I/O 基調講演おさらい

Google I/O 2014やGoogle I/O 2015では新しいAndroidバージョンだったが3年ぶりに新バージョン発表がなかった。

Google Assistant
新しい対話型アシスタントロジック
前後の文脈を理解したアシスタント(文脈の理解はSiriなどだとないらしい)

Google Home 音声アシスタント機能 Chromecastのように音楽も再生できる スマートホーム制御機能
Allo メッセージアプリ。返答をサジェストしてくれる。
Duo 通話に出る前に先に相手の顔が見ることができる。

Android N Preview3
コードネームをユーザーから募集している
DayDream
VR体験を提供するプラットフォーム
Nexus6Pでテストできる
Daydreamは基本的に既存の端末に対応されることはない。新しい端末のみ
サードパーティ製のアプリがリリース予定

Android Wear2.0
初のメジャーアップデート
→スタンドアロンアプリの動作が可能
スタンドアロンとはData Layer APIを利用せず、直接ネットワークへのアクセスが可能(UrlConnectionやRetrofitなどが普通に使える)
→できることが増え、開発がかんたんになった
→UI周り Complications API など

Android Studio
後ほど別のセッションで説明

Firebase
Firebase Analyticsなどが追加され、無料で利用できる。
GCM、AppIndexing、AdWords、AdMobなどはFirebaseへ統合

Android Instant Apps
インストールすることなく、アプリの一部の機能を利用できる。
Android 4.1から利用できる。

Google Assistantを軸としたプロダクトに力が入っている。

Android Studio 2.2 and Beyond

What’s New In Android Toolsというセッションがあった。
内容はDesignとDevelopとBuildとTestというところで4ジャンルあった。

Design

新しいLayout EditorによりUIを作りやすくなった。

Blueprintという新しい表示ができる: Viewの関係がわかりやすくなる
表示例→image

UI上のViewのプロパティ一覧がよく使うものだけでてくるようになったので、実用的になった。

ConstraintLayoutが追加された。

Layout InspectorがAndroid Studioに統合された
Logcatの横にあるボタンで、Viewのヒエラルキーを取ってくる
便利そう
いままでAndroid Device Monitorをわざわざ立ち上げてレイアウトの構造を見ていたのが立ち上げなくても良くなった

Develop

Firebase Plugin
ボタンを押すだけでfirebaseのプロジェクトが作れる

Code Sample Browser
→コードの要素で右クリックFind Sample Codeしてサンプルコードが見れる

Support AnnotationsやLintの強化
Infer AnnotationでAnnotationつけられそうなところをつけてくれる
Nullが入ってきたら警告を出す@NonNullなどを自動でつけられる

Build

ビルドの高速化
Jack Annotation Processor Support
→aptじゃなくてannotationProcesserって書く
CMake とNDK-BuildがGradleと連携

Merged Maifest Viewer
マージされたマニフェストファイルが見れる(パーミッションがライブラリで入ってしまったりするのが防げたりするかも)

Project Structure View(experimental)
Use new Project Structure Dialogにチェックを入れるとdependenciesがみれて、依存関係が見れる
image
アップデートがあるライブラリをアップデートできる

Test

TestRecorder
エミュレーター上で動かすと勝手にテストを書いてくれる

apk Analyzer
プレイストア上で出るapkサイズがDownload Sizeで表示される
パッケージごとのメソッド数が出る
Refactor
→Remove Unused Resourceで使っていないリソースを消せる + 何が消されるのかPreviewもできる

予想

いままでは基本的な機能を行っていた。
最近は開発プロセスの高速化に力を入れており、自動生成ツールがいろいろ来るのはないか。

The Art of Constraint Layout

自由度が高いRelativeLayout

既存のレイアウトからConvertできる
AnySizeなどの大きさの制約を指定したり、大きさの割合をUI上で指定する。

Firebase Analyticsの使用感

セットアップ

firebase-coreをdependenciesに書く。
build.gradleの最後にapply plugin: ‘’”を書くひつようがある

Webのコンソール画面でパッケージ名を設定するとjsonファイルをダウンロードできるので、プロジェクトのappディレクトリ以下に配置する
MainActivityのonCreateの最後にかくだけで自動計測
Firebase Overviewが分かりやすい
https://www.youtube.com/watch?v=tb2GZ3Bh4p8

とにかく導入がかんたん
入れたら勝手にとってくれる

Android Wear 2.0

新しいUI → Launcherが新しくなった
スタンドアロン → DataLayer APIを利用しなくてもHTTP通信ができたりする
Google Fit 機能拡張
Java 8

新しい入力方法
スライドする感じで入力できる
使ってみると意外と使える

マテリアルデザイン
Material Design for Wearableで整備された

コンプリケーションAPI
Data Providerからいくつかの情報をかんたんに取得して表示できるようになった(such as battery level, weather, or step-count data)

Notificationがマテリアルデザイン化 新しい通知のスタイルも

Nearby関係

Physical Webというアプリをインストールするとビーコンで通知を表示できる。
Nearby Notifications
まだPreview
Advertise an HTTPS URL
ビーコンを通じてURLばらまける
このオプションにはアプリがいらない
今年の夏以降
BLEビーコンがあればURLを配れる QRコードいらない

こちらGoogle Play Servicesに入ったのでChromeなしでアプリのインストール誘導などができるようになったようです。
詳しくはこちらのツイートの返答がとても参考になります。
https://twitter.com/new_runnable/status/741070937961828353

その他

この勉強会にはGoogleの方も来ており、以下の内容を話していて特にInstant Appの説明が参考になりました。

また最近のAndroidについてGoogleの方に聞いたことメモ
http://qiita.com/ogapants/items/c01324ccb1ee9cacfb3a




Googleで行われた shibuya.apk #8 - Report from Google I/O 2016

Migration from GCM to FCM

AndroidとFirebaseが同じぐらいのセッションの量があった
GCMからFCMに移行したほうが良いという話があった

Firebaseとは主に15個の機能がある
ストレージが元はあって、それからFCMやクラッシュレポートなどがはいってきた

AnalyticsはGoogle Analyticsと違って料金がかからない

Firebase Notification

いいところは?
導入が楽!
数行で済む
Notificationはクライアント

GCMはdeprecateになる?
まずならない
機能追加はFirebaseなので移行したほうが良い

▪️手順
プロジェクト作成
→いろんなサービスから
→Android
→パッケージ名を書く
→ちょっと書くだけ
New Messageで対象のアプリをん選択してメッセージが遅れる

全体プッシュとか、セグメントpushであればFCMで
会員同士のメッセージングなどはGCMである必要がある

トピックというカテゴリ分けができて、それに対して送れる
REGISTRATION Tokenというもので1端末についても送れる

クラッシュレポート
シンプルにクラッシュ率とかが出る
プロガードも対応している

jsonとdependenciesに一行だけで通知を受け取れるようになる

ただデフォルトだとスモールアイコンが変えられない+アプリがフォアグラウンドでは通知を受け取れない
FirebaseMessagingServiceを使うとイベントが受け取れるのでなんでもできる

Introduction to Awareness API

Context Awarenessとはユーザーがどんな状態なのか把握している状態

なぜ?
ユーザーが自分で入力するのはめんどう
ユーザーがどんな状況か把握しやすい

ユーザーのコンテキストに応じて適切な挙動をしてほしい

例えば?
ミーテイングの時間に間に合うように起床アラームがセットされる
などなど

何が嬉しい?
離脱するユーザーが多い
リテンションの手段がプッシュとかになってしまってスパムかしやすい
ユーザー作り手両方にとってメリット

現状でも組み合わせればできるが
条件が増えたりバッテリー消費してしまって難しい

二つのAPI

  • Fence API
    条件を登録しておくと、コールバックされる

  • Snapshot API
    自分で取りに行く

基本的にはFenceAPIがよくある使い方

and or not でイベントを論理演算で組み合わせできる

Fenceのイベントを登録できる

パーミッションが必要なものもあるので若干注意

Firebase - Remote Config

Remote Configとは
例:
リリースしたときに、スウェーデンだけ不適切なものがあった
文字だけサーバーに置いておいて、すぐ差し替える

単なるkey/ value store
再インストールすることなくアプリを更新できる
ABテスト
セグメントの人のみ利用できるようなものを設定できる。

セットアップ方法

新規プロジェクト作成
→パッッケージ名
→jsonがダウンロードできる
→appの下に入れる
→gradleに書くだけ

導入完了

res/xml/remote_config_defaults.xml(自由なファイル名)でdefaultsMapというのを作り サーバーと通信出来たときのみ変更できる

(ここが最高でした。)

ここだけ詳しく説明すると以下のようにxmlをres/xmlに置いて

<?xml version="1.0" encoding="utf-8"?>
<!-- START xml_defaults -->
<defaultsMap>
    <entry>
        <key>price_prefix</key>
        <value>Your price is $</value>
    </entry>
    <entry>
        <key>loading_phrase</key>
        <value>Checking your price…</value>
    </entry>
    <entry>
        <key>is_promotion_on</key>
        <value>false</value>
    </entry>
    <entry>
        <key>price</key>
        <value>100</value>
    </entry>
    <entry>
        <key>discount</key>
        <value>0</value>
    </entry>
</defaultsMap>
    <!-- END xml_defaults -->

以下で設定します。

mFirebaseRemoteConfig.setDefaults(R.xml.remote_config_defaults);

これで要素を取得して利用できる。

finalPrice = initialPrice - mFirebaseRemoteConfig.getLong(DISCOUNT_CONFIG_KEY);

ネットワークから取れない時はこのデフォルトのxmlを利用して、ネットワークから取れた時はその取れた値を利用します。

デフォルトでは12時間キャッシュする
開発ではキャッシュしないようにできる
待ち合わせするひつようなし
fetchしてコールバックで成功したらローカルに保存するコードを呼ぶことでリモートの状態を取得する。

ネット通信していなくてもデフォルトの設定が取れる。

(Androidのことがわかっている感じのAPIで最高そう)

A/Bテストできる
バージョン1.1.1以上ではこのUIみたいなこともできる
いろんな条件で優先度をつけて、A/Bテストができる
国とかでもできる

Webコンソールから簡単にできる

google-services.jsonを使い分けたいときはBuildVariantでgoogle-services.jsonをわけると複数使い分けられる。

WebコンソールのAnalyticsのほうでも見れる?

A/Bテストのためのツールにはなっていないので、効果計測などはまだ既存のA/Bテストのツールを置き換えるわけではない

履歴管理は現状できない

REST APIは現状ない

pre-reportのsecurityテストで楽々対応

apkを上げて解析して、apkがどうなのか自動でレポートしてくれる

Pre-Preport
リリース前レポートとは
無料なのがいい
apkを静的解析しているっぽい

セキュリティ的にまずいところを出してくれる
現状だとあんまり検出してくれない
WebViewの証明書のエラー無視のコードのみ検出

Googleの人の話

(予定らしいので実際はどうなのかわかりません。)

v4のSupport Libraryが分割される。
最低APIレベルが引き上げられるかも?

34
33
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
33