Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Jetpack Composeで自動入力(Autofill)を実装しよう(作成:claude-...
Search
tonionagauzzi
April 24, 2025
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Jetpack Composeで自動入力(Autofill)を実装しよう(作成:claude-3.7-sonnet)
tonionagauzzi
April 24, 2025
More Decks by tonionagauzzi
See All by tonionagauzzi
Kotlin2.3明示的バッキングフィールド
tonionagauzzi
1
350
【Android】テキスト選択色の問題修正で心がけたこと
tonionagauzzi
0
250
Android 15以上でPDFのテキスト検索を爆速開発!
tonionagauzzi
0
370
Googleの新しいコーディングAIエージェントJulesを使ってみた
tonionagauzzi
0
760
Compose におけるパスワード自動入力とパスワード保存
tonionagauzzi
0
490
Androidテスト基礎講義
tonionagauzzi
0
380
Android Composeでの自動入力(作成:GPT-4o)
tonionagauzzi
0
150
Jetpack Composeにおける自動入力の実装と注意点(作成者:Gemini 2.5 Pro Exp 03-25)
tonionagauzzi
0
170
Jetpack Composeで自動入力を完全攻略(作成:o3)
tonionagauzzi
0
150
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Technical Leadership for Architectural Decision Making
baasie
3
410
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
170
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.7k
We Are The Robots
honzajavorek
0
250
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
170
The Cult of Friendly URLs
andyhume
79
6.9k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
220
BBQ
matthewcrist
89
10k
Transcript
Jetpack Composeで自動入力(Autofill)を実装しよう Jetpack Composeで自動入力機能を実装する © 2025 Android勉強会 1
自己紹介 名前:なんとか太郎 職業:Androidエンジニア 好きなもの:Jetpack Compose Jetpack Composeで自動入力機能を実装する © 2025 Android勉強会
2
今日のテーマ 1. 自動入力(Autofill)とは 2. Jetpack Composeでの自動入力の実装方法 3. ハマりやすいポイントと解決策 Jetpack Composeで自動入力機能を実装する
© 2025 Android勉強会 3
自動入力(Autofill)とは パスワード入力欄にカーソルを当てると保存済みまたは生成したパスワードを自動で 入力してくれる機能 Jetpack Composeで自動入力機能を実装する © 2025 Android勉強会 4
従来の実装方法(XMLレイアウト) <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPassword" android:autofillHints="password" /> XMLレイアウトでは android:autofillHints 属性で簡単に実装できていた
Jetpack Composeで自動入力機能を実装する © 2025 Android勉強会 5
Jetpack Composeでの実装方法 Compose UIのバージョンによって実装方法が異なる Compose UI 1.7.x以下:実験的APIのAutofillType Compose UI 1.8.0以降:ContentTypeによる簡単実装(推奨)
Jetpack Composeで自動入力機能を実装する © 2025 Android勉強会 6
実装手順 1: バージョンアップ // build.gradle.kts(:app) dependencies { implementation("androidx.compose.ui:ui:1.8.0-beta03") } ※
記事執筆時点ではbeta03を推奨 ※ beta02以前には既知の問題あり Jetpack Composeで自動入力機能を実装する © 2025 Android勉強会 7
実装手順 2: contentTypeの設定 ログイン画面の例: Column { TextField( value = username.value,
onValueChange = {username.value = it}, modifier = Modifier.semantics { contentType = ContentType.Username } ) TextField( value = password.value, onValueChange = {password.value = it}, modifier = Modifier.semantics { contentType = ContentType.Password } ) } Jetpack Composeで自動入力機能を実装する © 2025 Android勉強会 8
自動入力の種類 1. 保存済みパスワードの自動入力: ContentType.Password 2. 新しいパスワードの自動生成: ContentType.NewPassword Jetpack Composeで自動入力機能を実装する ©
2025 Android勉強会 9
新しいパスワードの自動生成例 Column { TextField( value = newPassword.value, onValueChange = {newPassword.value
= it}, modifier = Modifier.semantics { contentType = ContentType.NewPassword } ) TextField( value = newPasswordToConfirm.value, onValueChange = {newPasswordToConfirm.value = it}, modifier = Modifier.semantics { contentType = ContentType.NewPassword } ) } Jetpack Composeで自動入力機能を実装する © 2025 Android勉強会 10
パスワードを保存する方法 公式ドキュメントでは autofillManager の使用が紹介されています: val autofillManager = LocalAutofillManager.current // Submit
button Button(onClick = { autofillManager?.commit() }) { Text("Reset credentials") } Jetpack Composeで自動入力機能を実装する © 2025 Android勉強会 11
罠:AutoFillManagerが機能しないケース autofillManager?.commit() を呼んでもパスワード保存ダイアログが表示されない場 合がある 条件が厳しい! 1. NewUsernameとNewPasswordの両方が1つのComposable内にあること 2. ユーザーが両方を操作したこと Jetpack
Composeで自動入力機能を実装する © 2025 Android勉強会 12
解決策:CredentialManagerを使う Button(onClick = { try { coroutineScope.launch { val credentialManager
= CredentialManager.create(context) val request = CreatePasswordRequest(username, newPassword.value) credentialManager.createCredential( request = request, context = context, ) } } catch (e: CreateCredentialException) { println(" Failed to save password: ${e.message}") } }) { Text("Reset credentials") } Jetpack Composeで自動入力機能を実装する © 2025 Android勉強会 13
CredentialManagerの注意点 android.credentials :API Level 34以上向け androidx.credentials :API Level 33以下もサポート(推奨) //
build.gradle.kts dependencies { implementation("androidx.credentials:credentials:1.x.x") } Jetpack Composeで自動入力機能を実装する © 2025 Android勉強会 14
まとめ 1. Compose UIを1.8.0以降にアップデート 2. Modifier.semantics { contentType = ...
} を使用 3. パスワード保存は CredentialManager が確実 詳細は公式ドキュメントをチェック: https://developer.android.com/develop/ui/compose/text/autofill Jetpack Composeで自動入力機能を実装する © 2025 Android勉強会 15
ご清聴ありがとうございました! 質問がありましたらお願いします! Jetpack Composeで自動入力機能を実装する © 2025 Android勉強会 16