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
Compose におけるパスワード自動入力とパスワード保存
Search
tonionagauzzi
April 29, 2025
Technology
580
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Compose におけるパスワード自動入力とパスワード保存
tonionagauzzi
April 29, 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
Androidテスト基礎講義
tonionagauzzi
0
440
Android Composeでの自動入力(作成:GPT-4o)
tonionagauzzi
0
180
Jetpack Composeで自動入力(Autofill)を実装しよう(作成:claude-3.7-sonnet)
tonionagauzzi
0
190
Jetpack Composeにおける自動入力の実装と注意点(作成者:Gemini 2.5 Pro Exp 03-25)
tonionagauzzi
0
200
Other Decks in Technology
See All in Technology
Claude Code on Bedrock で統制をかける小ネタ集/claude-code-bedrock-governance-tips
emiki
1
13k
Filter What the LLM Reads: RAG Governance with AgentCore Gateway
yakumo
0
110
AI時代のGraphQL
joere
3
410
Steerable Visual Representations
sansantech
PRO
0
440
なぜAI時代に技術記事を書くのか?どう書くのか? 〜bunの場合〜
kworkdev
PRO
0
130
野良MCPサーバーを排除せよ!MCPサーバーのガバナンス
yukiogawa
1
240
Claude Codeから見る、エンジニアの世界の変容とその先
oikon48
6
4.2k
Adversary Infrastructure Hunting101
disconinja
0
160
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
780
データマネジメント × 法務で作りあげる、 freeeの新しいデータガバナンスへの軌跡
freee
PRO
1
430
Devin プロモコードの受け取りと適用(2026.10.27)
kinopeee
0
510
Codex を使った障害対応机上演習の実際
orgachem
PRO
0
360
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
Making the Leap to Tech Lead
cromwellryan
135
10k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
750
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Between Models and Reality
mayunak
4
510
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.4k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
sira's awesome portfolio website redesign presentation
elsirapls
0
470
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.4k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
900
Transcript
Compose におけるパスワード自動入力とパスワード 保存 Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android Tech Talk 1
話すこと 1. Jetpack Composeでの自動入力の実装方法 自動入力とは? 従来のXML方式との違い 自動入力の種類(保存済みパスワード・新規パスワード) 2. パスワード保存の罠と解決策 Compose
におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android Tech Talk 2
話さないこと パスワードマネージャーの導入方法 Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android Tech Talk 3
登壇者情報 トニオ(@tonionagauzzi) Androidエンジニア サイボウズ株式会社 kintone開発チーム ブログ書くのが趣味 Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android
Tech Talk 4
1. Jetpack Composeでの自動入力の実装方法 Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android Tech Talk 5
自動入力とは? パスワード入力欄にカーソルを当てると自動でパスワードを入れてくれる機能 ユーザーの入力を効率化、セキュリティ面も強化できる Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android Tech Talk 6
Google パスワードマネージャーによるパスワード自動入力 Compose におけるパスワード自動入力とパスワード保存 1 Sansan×DMM.com Android Tech Talk 7
Google パスワードマネージャーによる強力なパスワードの自動生成 Compose におけるパスワード自動入力とパスワード保存 2 Sansan×DMM.com Android Tech Talk 8
XML方式での実装方法 <EditText android:id="@+id/password" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPassword" android:autofillHints="password" /> android:autofillHints プロパティで簡単に実装可能
Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android Tech Talk 9
Compose での実装方法 Compose UI 1.8.0以降がおすすめ 2025/4/23 に正式リリース // build.gradle.kts(:app) dependencies
{ implementation("androidx.compose.ui:ui:1.8.0") } 1.7.x以下では AutofillType (deprecated)を使う必要あり 実験的APIで正常に機能しないことも Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android Tech Talk 10
Composeでの自動入力実装 // SomeComposable.kt 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 } ) } 公式ドキュメントを参考に、 Modifier.semantics { contentType = } で実装 Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android Tech Talk 11
保存済みパスワードの自動入力 ログイン画面などのユースケース ContentType.Username + ContentType.Password の組み合わせ ユーザー名に応じたパスワードを自動入力 Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com
Android Tech Talk 12
新しいパスワードの自動生成 パスワード再設定画面などのユースケース ContentType.NewPassword を使用 強力なパスワードを自動生成して提案 TextField( value = newPassword.value, onValueChange
= {newPassword.value = it}, modifier = Modifier.semantics { contentType = ContentType.NewPassword } ) Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android Tech Talk 13
パスワード保存機能の実装 公式ドキュメントでは autofillManager?.commit() を使う方法が紹介されている val autofillManager = LocalAutofillManager.current 〜省略〜 Button(onClick
= { autofillManager?.commit() }) { Text("Reset credentials") } Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android Tech Talk 14
2. パスワード保存の罠と解決策 Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android Tech Talk 15
AutoFillManagerの罠 autofillManager?.commit() を呼んでもパスワード保存ダイアログが表示されない! Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android Tech Talk 16
原因(厳しい条件) Composeのパスワード自動保存には厳しい条件がある: 1. NewUsernameとNewPasswordの両方が1つのComposable内に存在 2. ユーザーが1.の両方を操作した これらを満たさない場合、パスワード保存ダイアログは表示されない。 参考: Google Issue
Tracker Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android Tech Talk 17
解決策:CredentialManagerを使う Button(onClick = { coroutineScope.launch { val credentialManager = CredentialManager.create(context)
val request = CreatePasswordRequest(username, newPassword.value) credentialManager.createCredential( request = request, context = context, ) } }) { Text("Reset credentials") } Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android Tech Talk 18
CredentialManagerの注意点 android.credentials (API Level 34以上) androidx.credentials (下位互換性あり) API Level 33以下をサポートする場合は
androidx.credentials を使用 // build.gradle.kts(:app) dependencies { implementation("androidx.credentials:credentials:1.5.0") // optional - needed for credentials support from play services, for devices running // Android 13 and below. implementation("androidx.credentials:credentials-play-services-auth:1.5.0") } Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android Tech Talk 19
まとめ Compose UIでの自動入力は contentType で簡単に実装可能 パスワード保存は AutofillManager より CredentialManager が確実
適切な実装でユーザー体験を向上させよう Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android Tech Talk 20
参考リンク スマホでパスワード管理ができる Google パスワード マネージャーの使い方 Composeでのテキスト自動入力 Autofill フレームワーク CredentialManager API
Compose におけるパスワード自動入力とパスワード保存 Sansan×DMM.com Android Tech Talk 21