Google I/O Extended 2019 Kobe - Livestream -
日時: 2019 年 5 月 7 日(火)22:00 〜 05:45 場所: キッズプログラミングスクール8x9 参加費: 無料 定員: 15 名 主催: GDG 神戸
Google I/O 珍道中報告会 in 大分 ♨ 日時: 2019 年 5 月 18 日(土)13:00 〜 19:00 場所: QOX Lab 参加費: 無料 定員: 15 名 主催: GDG 九州
I/O Extended Fukushima | 福島 Google I/O 報告会 2019 #5 日時: 2019 年 5 月 18 日(土)13:00 〜 18:00 場所: 福島コトひらく 参加費: 無料 定員: 40 名 主催: GDG Fukushima
I/O Extended 2019 Osaka by GDG Kyoto 日時: 2019 年 5 月 18 日(土)13:30 〜 17:30 場所: 近畿大学 参加費: 無料 定員: 50 名 主催 : GDG Kyoto, 理工会電子計算機研究会
I/O Extended 2019 Tokyo@GDG 日時: 2019 年 5 月 19 日(日)10:00 〜 17:00 場所: Google 六本木オフィス 参加費: 無料 定員: 230 名 主催: GDG Tokyo
Google I/O 報告会 in 仙台 日時: 2019 年 5 月 25 日(土)10:00 〜 16:00 場所: 仙都会館 参加費: 無料 定員: 100 名 主催: GDG 石巻, GDG 福島 GCPUG 仙台, GCPUG 福島
I/O Extended Kyushu | Google I/O 報告会 2019 in 福岡 日時: 2019 年 5 月 25 日(土)13:00 〜 18:00 場所: LINE Fukuoka株式会社 カフェスペース 参加費: 無料 定員: 100 名 主催: GDG 九州
Google I/O 2019 & Cloud Next ’19 Extended 徳島
日時: 2019 年 5 月 25 日(土) 場所: 神山バレー・サテライトオフィス・コンプレックス 参加費: 無料 定員: 40 名 主催: GDG 四国
Google I/O Extended in Shinshu 日時: 2019 年 6 月 1 日(土)12:00 〜 17:00 場所: 信州・学び創造ラボ 参加費: 無料 定員: 40 名 主催: GDG 信州
Shibuya.apk #34 - Report from Google I/O 2019 日時: 2019 年 5 月 17 日(金)19:30 〜 22:00 場所: 株式会社サイバーエージェント Abema Towers 10F 参加費: 無料 定員: 80 名 主催: Shibuya.apk
エンジニアがお届けする春のIT祭り! - ABC2019s - 日時: 2019 年 5 月 26 日(日)10:00 〜 18:00 場所: 東海大学 高輪キャンパス 参加費: 無料 定員: 1200 名 主催: 特定非営利活動法人 日本Androidの会
Google I/O Extended Tokyo 2019 日時: 2019 年 5 月 7 日(火)22:30 〜 5 月 8 日(水)5:30 場所: ヤフー株式会社 LODGE 参加費: 無料 定員: 150 名 主催: ヤフー株式会社
DeNA.apk #1 【Google I/O 報告会】 日時: 2019 年 5 月 16 日(木)19:00 〜 21:00 場所: 株式会社ディー・エヌ・エー 21F セミナールーム 参加費: 無料 定員: 90 名 主催: DeNA Tech
(mixi & CA).aab 〜Google I/O報告会〜
日時: 2019 年 5 月 21 日(火)19:30 〜 21:50
場所: Abema Towers
参加費: 無料
定員: 100 名
主催: 株式会社サイバーエージェント
Google I/O 2019 Recap at LINE 日時: 2019 年 5 月 22 日(水)19:30 〜 22:30 場所: LINE 株式会社 JR 新宿ミライナタワー
参加費: 無料 定員: 120 名 主催: LINE 株式会社
Google I/O 2019 Recap at LINE KYOTO
日時: 2019 年 5 月 24 日(金)19:30 〜 22:30 場所: LINE KYOTO ラボスペース
参加費: 無料 定員: 30 名 主催: LINE 株式会社
Google I/O Extended: Recap Live Japan 2019 日時: 2019 年 6 月 7 日(金)16:30 〜 18:30(予定) ハッシュタグ: #RecapLiveJP 主催: Google
「予想とは難しいものだ。特に未来に関しては」
— Karl Kristian Steincke
SplitInstallManager#getInstalledLanguages()
val splitInstallManager = SplitInstallManagerFactory.create(context) val langs: Set<String> = splitInstallManager.installedLanguages
SplitInstallRequest.Builder#addLanguage(java.util.Locale)
val installRequestBuilder = SplitInstallRequest.newBuilder() installRequestBuilder.addLanguage(Locale.forLanguageTag("pl")) splitInstallManager.startInstall(installRequestBuilder.build())
SplitInstallSessionStatus.REQUIRES_USER_CONFIRMATION
Activity#onActivityResult()
SplitInstallManager#startConfirmationDialogForResult()
startIntentSender()
SplitInstallSessionState#resolutionIntent()
AndroidManifest.xml
dist:instant="true"
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution"> <dist:module dist:instant="true" /> ... </manifest>
onDemand="false"
SplitInstallManager#deferredUninstall()
session_start
session_started
pseudo_user_id
extend_session
ga_session_id
ga_session_number
level_complete_quickplay
SELECT AVG(total_quickplays) as average_quickplays_per_session FROM ( SELECT COUNT(event_name) as total_quickplays, (SELECT value.string_value FROM UNNEST (event_params) WHERE key = "ga_session_id") as session_id FROM `firebase-public-project.analytics_153293282.events_xxxxxxxx` WHERE event_name = "level_complete_quickplay" GROUP BY session_id HAVING session_id IS NOT NULL )
user_engagement
engagement_time_msec
app_exception
screen_view
first_open
SELECT SUM(engagement_time) AS total_user_engagement FROM ( SELECT user_pseudo_id, (SELECT value.int_value FROM UNNEST(event_params) WHERE key = "engagement_time_msec") AS engagement_time FROM `firebase-public-project.analytics_153293282.events_20181003` WHERE event_name = "user_engagement" ) GROUP BY user_pseudo_id
SELECT SUM(engagement_time) AS total_user_engagement FROM ( SELECT user_pseudo_id, (SELECT value.int_value FROM UNNEST(event_params) WHERE key = "engagement_time_msec") AS engagement_time FROM `firebase-public-project.analytics_153293282.events_20181003` ) WHERE engagement_time > 0 GROUP BY user_pseudo_id
@media (prefers-reduced-motion: reduce) { button { animation: none; } }
#
class IncreasingCounter { #count = 0; get value() { console.log('Getting the current value!'); return this.#count; } increment() { this.#count++; } }
document.featurePolicy
frame.featurePolicy