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で自動入力を完全攻略(作成:o3)
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
tonionagauzzi
April 24, 2025
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Jetpack Composeで自動入力を完全攻略(作成:o3)
tonionagauzzi
April 24, 2025
More Decks by tonionagauzzi
See All by tonionagauzzi
Androidエンジニアが大規模プロダクトのWebフロントエンドとバックエンドに越境して感じたギャップと習得したマインド
tonionagauzzi
0
130
Kotlin2.3明示的バッキングフィールド
tonionagauzzi
1
370
【Android】テキスト選択色の問題修正で心がけたこと
tonionagauzzi
0
260
Android 15以上でPDFのテキスト検索を爆速開発!
tonionagauzzi
0
390
Googleの新しいコーディングAIエージェントJulesを使ってみた
tonionagauzzi
0
830
Compose におけるパスワード自動入力とパスワード保存
tonionagauzzi
0
520
Androidテスト基礎講義
tonionagauzzi
0
390
Android Composeでの自動入力(作成:GPT-4o)
tonionagauzzi
0
160
Jetpack Composeで自動入力(Autofill)を実装しよう(作成:claude-3.7-sonnet)
tonionagauzzi
0
170
Featured
See All Featured
How to Ace a Technical Interview
jacobian
281
24k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
430
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
460
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
400
Designing for humans not robots
tammielis
254
26k
Context Engineering - Making Every Token Count
addyosmani
9
1k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
160
RailsConf 2023
tenderlove
30
1.5k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
620
WENDY [Excerpt]
tessaabrams
11
39k
Transcript
Jetpack Compose で 自動入力(Autofill)を完全攻略 Android Study JAM / 2025 Speaker:
トニオ・ナガウッツィ 1
Agenda 1. 自動入力(Autofill)とは 2. Compose UI 1.8 での実装方法 3. パスワード保存のハマりどころ
4. CredentialManager による解決策 5. まとめ & Q&A 2
自動入力とは? ユーザー名やパスワードを自動で入力・生成する Android OS の機能 旧 View 系では android:autofillHints で簡単設定
Jetpack Compose では UI 1.8 から正式サポート Compose UI <1.8 でも AutofillType が存在するが非推奨 & 挙動が不安定 3
Step 1 Compose UI 1.8 へのアップデート // build.gradle.kts(:app) dependencies {
implementation("androidx.compose.ui:ui:1.8.0-beta03") } 1.7 系以前は Autofill API が Experimental beta02 以前に既知のバグ → beta03 推奨 4
Step 2 保存済みパスワードを呼び出す 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 } ) } contentType を指定するだけ! 5
Step 3 新しいパスワードを自動生成 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 } ) } 2 つの欄に同じ生成パスワードが同時入力される 6
Step 4 パスワードを保存したい! (AutofillManager 編) val autofillManager = LocalAutofillManager.current Button(onClick
= { autofillManager?.commit() }) { Text("Reset credentials") } しかし… ダイアログが表示されないケース多数 要件が厳しすぎる 7
AutofillManager の罠 1. ContentType.NewUsername & ContentType.NewPassword を 同じ Composable に
配置 2. ユーザーが 両方のフィールドを編集 しないと commit が無効 実際の UI/UX と合わない Issue Tracker でも多数報告 (link) 8
Step 5 CredentialManager で解決 val context = LocalContext.current val scope
= rememberCoroutineScope() Button(onClick = { scope.launch { val cm = CredentialManager.create(context) val req = CreatePasswordRequest(username, newPassword.value) cm.createCredential(request = req, context = context) } }) { Text("Reset credentials") } 依存関係: implementation("androidx.credentials:credentials:1.2.0") 9
ベストプラクティス & Tips UI 1.8 以上を必須にする Modifier.semantics { contentType =
... } を忘れない 保存機能は CredentialManager で実装 端末側の「自動入力サービス」が有効かを事前にガイド 10
まとめ Compose でも自動入力は簡単! 読込: contentType を設定するだけ 保存: AutofillManager は条件が厳しい →
CredentialManager を使う 最新情報は公式ドキュメント & Issue Tracker をチェック 11
ご清聴ありがとうございました 質問タイム 12