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
550
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
390
Kotlin2.3明示的バッキングフィールド
tonionagauzzi
1
400
【Android】テキスト選択色の問題修正で心がけたこと
tonionagauzzi
0
280
Android 15以上でPDFのテキスト検索を爆速開発!
tonionagauzzi
0
400
Googleの新しいコーディングAIエージェントJulesを使ってみた
tonionagauzzi
0
850
Androidテスト基礎講義
tonionagauzzi
0
410
Android Composeでの自動入力(作成:GPT-4o)
tonionagauzzi
0
170
Jetpack Composeで自動入力(Autofill)を実装しよう(作成:claude-3.7-sonnet)
tonionagauzzi
0
180
Jetpack Composeにおける自動入力の実装と注意点(作成者:Gemini 2.5 Pro Exp 03-25)
tonionagauzzi
0
190
Other Decks in Technology
See All in Technology
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
660
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
130
AI時代の「技術的負債」の変質ー概念の終焉と再解釈、エージェントと共に向かう先
nwiizo
0
840
株式会社シーエーシー エンジニア向け会社紹介資料
cac
0
57k
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
1
310
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
480
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
250
Adaptive Warehouse を今すぐ導入すべき理由と迷ったときの判断基準
__allllllllez__
0
210
NW運用でNWトポロジ可視化ツールに期待すること/shumoku-meetup1
corestate55
2
120
Snowflakeで実現する全社横断の顧客の声(VOC)分析・活用基盤@Snowflake World Tour Tokyo 2026
yuto16
0
200
AI時代、データエンジニアが一番おもろい
genshun9
0
300
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
150
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
410
sira's awesome portfolio website redesign presentation
elsirapls
0
410
Code Reviewing Like a Champion
maltzj
528
40k
How to build a perfect <img>
jonoalderson
1
6k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
510
From π to Pie charts
rasagy
0
360
How to make the Groovebox
asonas
2
2.4k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
The Curious Case for Waylosing
cassininazir
1
500
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Darren the Foodie - Storyboard
khoart
PRO
3
3.9k
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