Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Jetpack Composeで自動入力(Autofill)を実装しよう(作成:claude-...
Search
tonionagauzzi
April 24, 2025
190
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
Androidエンジニアが大規模プロダクトのWebフロントエンドとバックエンドに越境して感じたギャップと習得したマインド
tonionagauzzi
0
500
Kotlin2.3明示的バッキングフィールド
tonionagauzzi
1
430
【Android】テキスト選択色の問題修正で心がけたこと
tonionagauzzi
0
300
Android 15以上でPDFのテキスト検索を爆速開発!
tonionagauzzi
0
430
Googleの新しいコーディングAIエージェントJulesを使ってみた
tonionagauzzi
0
900
Compose におけるパスワード自動入力とパスワード保存
tonionagauzzi
0
580
Androidテスト基礎講義
tonionagauzzi
0
440
Android Composeでの自動入力(作成:GPT-4o)
tonionagauzzi
0
180
Jetpack Composeにおける自動入力の実装と注意点(作成者:Gemini 2.5 Pro Exp 03-25)
tonionagauzzi
0
200
Featured
See All Featured
[SF Ruby Conf 2025] Rails X
palkan
3
1.5k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
540
Become a Pro
speakerdeck
PRO
31
6.3k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
The Cult of Friendly URLs
andyhume
79
7k
First, design no harm
axbom
PRO
2
1.4k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
850
Google's AI Overviews - The New Search
badams
0
1.6k
How to build a perfect <img>
jonoalderson
1
6.2k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
540
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