ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
Session titleDescription受講対象者 / Intended AudienceSession formatLanguageカテゴリ / Categoryスピーカー / Speakers
2
Compose for Android TVJetpack Composeは、Google I/OではCompose 1.2 betaが発表され、実際のアプリ開発現場にも導入事例が増えていることかと思います。
またCompose for Wear OSもBetaになりました。
では、Android TVの分野でのJetpack Composeはどうなんでしょうか?

このセッションでは、まず、Jetpack ComposeでのAndroid TVアプリ開発が可能かどうかを調査し、開発が可能であるならば、従来のAndroidアプリと違ってどこを変えないといけないのか、レイアウト、インプット、フォーカスなど特徴的な点について説明し、Android TVにおけるJetpack Composeの可能性について追求していくセッションになります。
Composeを使っている方 or Android TVアプリを作っている方 or タッチパネル前提ではないAndroidアプリに興味がある方25 minutes日本語 / JapaneseAndroidプラットフォーム (Android Platform)tsuyoshihyuga
3
アプリ アーキテクチャ ガイドの解説最近弊社ではAndroidアプリ開発者の皆さまにより役立つ知識を与えるため、アプリアーキテクチャの設計の実装に関するガイドを公開しています。今回のセッションではこのガイドをよく理解し、より効果的に応用するための知識を共有したいとおもいます。
目次:
- Googleのガイドが話さない事 (例: Clean Architecture)
- UI層 - ViewModel実装のあるべき姿とアンチパターン
- ドメイン層 - あなたのアプリに役に立つ設計戦略
- データー層 - 実装の時考慮して欲しい点
- 依存性注入 - Hiltを使うべき理由とその限界
- マルチモジュール - 実際にどうわけたらいいのか
Android フレームワークの基本について熟知している方40 minutes日本語 / Japaneseアプリアーキテクチャ (Application Architecture)@justfaceit_kr
4
Androidアプリ開発の環境整備を考えるAndroidのアプリ開発環境は、Windows, MacOS, Linux(Chrome OSを含む)に対応しています。

本発表では、それぞれのOS上でアプリ開発環境を構築したときの長所と短所について解説します。

* 開発環境の整備
* 実機の接続
* エミュレーターとパフォーマンス
Windows, MacOS, Linuxどれか1つのOSでAndroidアプリを開発している開発者25 minutes日本語 / Japanese開発体制 (Development Process)keiji_ariyama
5
Compose時代のプレゼンテーションロジックについてJetpack Compose は Kotlin で記述できる宣言的 UI フレームワークでありコード管理におけるコスト削減やパフォーマンスの向上などに貢献するため、移行検討中であったり導入しているアプリも多くなってきていると思います。
しかし、画面実装における境界が曖昧になるため UI コンポーネントとロジックが混在しやすくなり、上手く責務を分離させないと保守性が損なわれます。

本セッションでは(Google が提唱する AAC の ViewModel を用いた MVVM アーキテクチャにおいて)、従来では Activity や Fragment などで実装していたイベントハンドリングなどのプレゼンテーションロジックを State Holder を利用して UI コンポーネントと分離し、より保守性の高い Jetpack Compose の運用について説明します。また、Navigation などを用いた State Holder の実装例を紹介します。
- 従来の Android の画面実装についてなんとなく分かる人
- Jetpack Compose をこれから初めたい人
- Jetpack Compose の移行を検討している人
- Compose のイベントハンドリングに悩んでいる人
25 minutes日本語 / JapaneseJetpack Composetick-taku
6
[Flutter] RenderObjectからWidgetを理解する私たちがFlutterでUIを構築する際に意識することとしてはWidgetのみですが、その実UIを構築しているのはRenderObjectです。
FlutterはWidget・Element・RenderObjectの3つのツリーを生成し、生成コストの高いRenderObjectをできる限り再利用することで高いパフォーマンスのUI構築を実現しています。

ではRenderObjectが生成、再構築される時どのような処理が走っているのでしょうか?どうやってUIを表現しているのでしょうか?

本セッションではWidget・Element・RenderObjectの働きと関係性をさらいつつ、RenderObjectの実装を学ぶことで、
 - Flutter公式のWidgetやthird party製のWidgetの内部の読み解き
 - パフォーマンスを意識した独自のWidgetの制作
ができることをゴールとします。
- Widgetを用いてFlutterのUIを構築したことがある方
- パフォーマンスを考慮したUIを構築したい方
- Widgetの裏側で実は何が起こっているのか知りたい方
25 minutes日本語 / Japaneseクロスプラットフォーム (Cross-platform Development)たつべえ
7
NFC元年 - 2022年に始めるAndroid + NFCAndroidは、2011年発表のバージョン2.3.3で本格的にNFCに対応しています。
以来ずっと「NFC元年」を横目で見て過ごしてきた発表者ですが、2022年、ついにNFCに関わるプロジェクトに関わることになりました。

AndroidでNFCを使う入門者向けのセッションです。

* Android + NFCでできること
* 身近にあるNFC技術
* NFCを支える規格
* ReaderModeとForegroundDispatchの違い
* iOSがうらやましい。APDUの話
* ホストベースのカードエミュレーション
* etc...
NFCでタグやカードの読み取りをするアプリの開発者40 minutes日本語 / JapaneseAndroidプラットフォーム (Android Platform)keiji_ariyama
8
Getting started with Dagger and HiltDagger is a powerful tool for setting up dependency injection for your app. With that comes a step learning curve, this talk will demystify setting up Dagger with a focus on using the Hilt library.

You can also expect to learn about best practices and tips for reading error messages in Dagger.
Expected understanding of basic Android knowledge (what an activity, fragment and application are.)

40 minutesEnglish開発ツール&サービス (Productivity and Tools, Service)Zach Westlake
9
定期購入を運用していくための技術アプリ内課金は、毎年多くのアップデートを積み重ねています。
たとえばGoogle I/O 2022では、定期購入アイテムの設定やAPIが大きく変わり、より柔軟にプランや特典の設定が行えるようになりました。
実際の運用過程では、毎年リリースされるGoogle Play Billing Libraryの機能追従だけでなく、Google Play ストア アプリ、Google Play Developer API、Google Play Consoleの動向にも目を光らせなければなりません。

本セッションでは、アプリ内課金の定期購入の運用に関わる各種技術についてドキュメントや実際の運用を例にあげて紹介を行います。
特に日々の運用や毎年のアップデートを進めていくためのノウハウについて取り上げる予定です。
現在考えているセッションの内容は次のとおりです。

- アプリ内課金の定期購入
- アプリ内課金と密接にかかわるサービス
- Google Play Billing Library
- ログについて
- 最近の主要なアップデート
- Google Play ストア アプリ
- 課金画面の変化
- テストや運用ではまるところ
- 定期購入のテストサイクル
- Google Play Developer API
- 各種APIの解説
- 定期購入の管理方法
- Google Play Console
- ダッシュボードで得られる情報
- 定期購入SKUの設定
- ドキュメントやポリシーのキャッチアップ

アプリ内課金の運用では、どのような機能があるのか、どのようにテストを進めればよいのか、どのような数値が得られるのかなどの疑問を様々なサービスを横断的に利用して解消していく必要があります。
公式のドキュメントは年々アップデートされており内容は充実しつつあるものの、どの情報にあたれば良いか悩む方もいらっしゃると思います。発表をとおして、アプリ内課金と密接にかかわるサービスについて体系的な整理を行った知見の共有ができれば幸いです。
・アプリ内課金についてご関心のある方
・今既にアプリ内課金をご使用の方
・アプリ内課金の情報をキャッチアップされたい方
・アプリ内課金と密接にかかわるサービスのポイントにご興味のある方
40 minutes日本語 / Japanese開発ツール&サービス (Productivity and Tools, Service)Ryo Yamazaki
10
データ設計とマイグレーション - アプリが歩む長く困難な道のり本発表では、アプリが端末内に保存するデータに関する「データ設計」と、アプリをアップデートする時に必要となる「マイグレーション」について、考慮すべき点を解説します。

* データ設計
* データの保存場所とユーザープライバシー
* データのフォーマット
* トラブル事例
* マイグレーション
* マイグレーションって?
* なんでマイグレーションが必要なの?
* マイグレーションの難しさ
* マイグレーション設計のポイント
* データの変換
* 定期処理(JobScheduler/WorkManager)の更新
* トラブル事例
* ドキュメント - あなたがいなくなったその後に
これからアプリ開発を始める開発者
アプリ開発を引き継いだ・引き継ぐ予定の開発者
その他、端末内にデータを保存するアプリを開発する開発者
40 minutes日本語 / Japanese保守・運用・テスト (Maintenance, Operations, and Testing)keiji_ariyama
11
Making Immersive VR possible in MobileImmersive Virtual Reality is in many cases a very difficult task for a developer. In this talk, we will look at the main principles of a successful VR application and techniques on how we can achieve nausea-free VR experiences. General mobile and Android knowledge is needed for this talk40 minutesEnglishAndroidプラットフォーム (Android Platform)George Kortsaridis
12
The art of hiding sensitive info in plain sightAn android application usually holds sensitive information, like names, tokens and even sometime bank data that we would NOT like to fall into the wrong hands. These days applications can be reverse engineered, and reveal a great chunk of their code. In this session, we will find out exactly which parts of our code can be hacked, and we will also look at ways of securing our data.... in plain sight!No specific audience. Just general Android knowledge is needed and interest about security.40 minutesEnglishSecurity / Identity / PrivacyGeorge Kortsaridis
13
FlutterをROS(ロボティクス)と一緒使ったらマジですごかった話通常、RoboticsではROSとAndroidまたはQTを組み合わせてユーザーアプリケーションを開発しています。今回Flutter3が発表され、デスクトップ、組み込み領域で使用できるように機能が拡張されました。生産性が高いユーザーアプリケーションを作成するためにロボットにFlutterを適用してみました。

そのためには、ロボットとアプリ間通信するためのプロトコルライブラリの開発が必要です。パッケージ開発方法と物語、そして実務で使用している例示を通じて使用機を紹介したいと思います。

関連技術
- Flutter & Flutter Desktop (Linux)
- ROS2
- Websocket
- gRPC
- FlutterやFlutter desktopに興味がある人
- Androidとrosを使ってみた人
- ロボットが好きな人
40 minutes日本語 / Japaneseクロスプラットフォーム (Cross-platform Development)DREAMWALKER
14
Bidirectional communication using BLEBluetooth Low Energy (BLE) has been gaining attention in recent years as a low-power device-to-device communication method, and Android can easily connect to surrounding IoT devices (called peripherals) to read health information and other data. Now, with Android 5.0 or later, compatible devices can act like IoT devices as peripherals. As a result, Android devices can send messages to each other in both directions via BLE. This session will provide step-by-step instructions on how to do so and discuss in what ways this technology can be beneficial from the Android app developer's perspective.This session will be explained in a way that is easy to understand for those not very familiar with BLE, so no special preparation is necessary. However, viewers who are interested in BLE and know a little about it but have never actually implemented it will most likely enjoy it.40 minutesEnglishAndroidプラットフォーム (Android Platform)@fushiroyama
15
「Jetpack Compose は Android 向けの最新の宣言型 UI ツールキットです。」という公式説明を理解するJetPackCoposeが使えるようになり、導入してきたプロジェクトも多いのではないでしょうか。
従来のxmlによって実現してきたViewとは異なる思想を持って UIを組み立てていきます。
JetPackComposeで用いられている「宣言型」というプログラミングパラダイムは設計や開発にどのような影響をもたらすのか、その背景を従来のxmlで用いられるオブジェクト指向と関数型プログラミングといったキーワードに触れながら理解を深めていきたいとお思います。
JetPackComposeに興味がある人
宣言型・オブジェクト指向などプログラミングの考え方に興味がある人
25 minutes日本語 / JapaneseJetpack ComposeOnishi Taiji
16
The world of Android wireless communications without InternetSince smartphones in recent years are usually connected to the Internet in some way, people are usually not so aware that the device you hold in your hand is equipped with a wealth of communication methods that are not dependent on it. In fact, Android officially supports Bluetooth (Classic), Wi-Fi Direct, and Bluetooth Low Energy (BLE), and most devices available today support these APIs. This session will provide an overview of these features, a brief description of how to use them, and general guidelines on how to use each one differently. It is hard to keep track of all of these at once, so this session should be interesting for Android developers who have not used many communication methods other than the Internet.This session is a 101 session on Bluetooth (both classic and BLE) and Wi-Fi Direct available for Android, so interested Android developers can watch without prior knowledge. On the other hand, viewers who are already familiar with these in their work may find them slightly lacking.40 minutesEnglishAndroidプラットフォーム (Android Platform)@fushiroyama
17
詳細Navigation ComposeJetpack Composeで画面遷移を行ううえで必要となるNavigation Composeについて、基本的な画面遷移から、発展的な使い方まで、Navigation Composeに関わる様々なことを詳細に解説します。Jetpack Composeを使用してる人
Navigation Composeを使いこなしたい人
40 minutes日本語 / JapaneseJetpack ComposeKenji Abe
18
AndroidとChromeで体験できる認証機能のための標準化仕様の現在と未来パスワード認証の限界が語られ、"パスワードレス" という用語が使われ始めてから数年が経ちました。実際に、我々の周りにあるユーザー認証の仕組みはどう変わったでしょうか?パスワードは完全になくなりましたか?残念ながら、パスワード認証は使われていますが、2段階認証はGoogleが本格的にコンシューマ向けに始めてから10年以上経ってようやく一般的になりつつあります。
パスワード認証の後にSMSやEメールで短い文字列を送信したり、Google Authenticatorが表示した文字列を利用しているサービスはたくさんあります。FIDOはどうでしょう。指紋認証などでモバイルアプリやWebアプリにログインできるサービスも少しずつ出てきています。また、GoogleやAppleのような巨大プラットフォーマーが提供するID連携機能を利用するアプリも少しずつ増えています。
このように色々な認証機能が使われ始めた裏側に、Web標準規格やブラウザのAPI実装の存在があります。

今回は、

* WebOTP
* OATH(TOTP)
* FIDO, WebAuthn, passkey
* Identity Federation & FedCM

といったID周りのキーワードについてAndroidのChrome環境で動作するものや、Android端末との組み合わせで実現できる仕組みについてはデモを交えて解説しながら、視聴者が

* 現在はどのように使われているのか
* 将来はどうなることを夢見ているのか

という、現在と未来の姿を想像できることを目的とします。
以下のような開発者が対象となるでしょう。

1. モバイルアプリからブラウザを呼び出して認証処理やID連携を実装している開発者
2. AndroidのChrome上で動作することを意識しているWebアプリケーション開発者
3. Web標準技術が今後どのような姿になり、使われていくかに興味を持っている開発者
40 minutes日本語 / JapaneseSecurity / Identity / Privacyritou
19
Prepare your project for KMMKotlin Multiplatform is not yet stable. Despite this, many companies have taken the leap of faith and have started adopting it in their production projects.

In this session, we will see an overview about KMM (Kotlin Multiplatform Mobile) and how to prepare your project to adopt it.

A deep look at the modularization architecture and how it facilitates sharing the maximum layers between the different stacks.

We will make the focus on Android and iOS, specially coming from native projects. We will explain how to migrate your project in order to integrate it with a KMM module. Lastly, we can not forget that we can use the shared modules on Desktop and Web Apps.

Will you take the leap of faith?
Kotlin Basic
MVVM architecture
KMM adption starting from Android Project
Modularisation
40 minutesEnglishKotlinOussama BW
20
Jetpack ComposeにViewを貼る - AdMobを例に解説UIの構築でJetpack Composeを使うことは、生産性と品質の向上に寄与します。そして、既存のViewも相互運用APIを使うことでJetpack Composeで作られたレイアウトに貼ることができます。
要件上、Viewを使う必要のある代表例がアプリ内広告のAdMobだと思います。特にAdMobのバナー広告はViewの中にアドネットワークからダウンロードしたコンテンツを持つ構造となっているので、どのタイミングでViewが生成されるのかを把握して適切に管理する必要があります。
本セッションでは、AdMobのバナー広告とネイティブアドバンス広告について、そのSDKの使い方と、相互運用APIを活用してJetpack Composeで構築された画面に貼る方法を解説します。また、LazyColumnの一部要素が広告になるケース(インフィード広告)の場合でも、適切にViewを再利用して、不要な読み込みやパフォーマンスの低下を防ぐ方法を解説します。それによって、Jetpack Composeを導入したいけど、AdMobなど既存のViewを使う必要があって、まだ導入できていない人が、導入に踏み切れるようにすることを目指します。
Jetpack Composeを使っていて、相互運用APIが気になる人
AdMobとJetpack Composeを一緒に使いたい人
AdMobに限らずViewで実装されているUI部品を、Jetpack Composeに貼りたい人
Jetpack ComposeにViewを貼るときのパフォーマンス最適化を知りたい人
25 minutes日本語 / JapaneseJetpack ComposeHaruhiko Takada
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100