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
180
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
390
Kotlin2.3明示的バッキングフィールド
tonionagauzzi
1
400
【Android】テキスト選択色の問題修正で心がけたこと
tonionagauzzi
0
280
Android 15以上でPDFのテキスト検索を爆速開発!
tonionagauzzi
0
400
Googleの新しいコーディングAIエージェントJulesを使ってみた
tonionagauzzi
0
860
Compose におけるパスワード自動入力とパスワード保存
tonionagauzzi
0
550
Androidテスト基礎講義
tonionagauzzi
0
410
Android Composeでの自動入力(作成:GPT-4o)
tonionagauzzi
0
170
Jetpack Composeにおける自動入力の実装と注意点(作成者:Gemini 2.5 Pro Exp 03-25)
tonionagauzzi
0
190
Featured
See All Featured
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Code Review Best Practice
trishagee
74
20k
Practical Orchestrator
shlominoach
191
12k
Producing Creativity
orderedlist
PRO
348
41k
Building Adaptive Systems
keathley
44
3.2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
720
For a Future-Friendly Web
brad_frost
183
10k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
270
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