Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Jetpack Composeで自動入力(Autofill)を実装しよう(作成:claude-...

tonionagauzzi
April 24, 2025
64

Jetpack Composeで自動入力(Autofill)を実装しよう(作成:claude-3.7-sonnet)

tonionagauzzi

April 24, 2025
Tweet

More Decks by tonionagauzzi

Transcript

  1. 実装手順 1: バージョンアップ // build.gradle.kts(:app) dependencies { implementation("androidx.compose.ui:ui:1.8.0-beta03") } ※

    記事執筆時点ではbeta03を推奨 ※ beta02以前には既知の問題あり Jetpack Composeで自動入力機能を実装する © 2025 Android勉強会 7
  2. 実装手順 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
  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 } ) } Jetpack Composeで自動入力機能を実装する © 2025 Android勉強会 10
  4. パスワードを保存する方法 公式ドキュメントでは autofillManager の使用が紹介されています: val autofillManager = LocalAutofillManager.current // Submit

    button Button(onClick = { autofillManager?.commit() }) { Text("Reset credentials") } Jetpack Composeで自動入力機能を実装する © 2025 Android勉強会 11
  5. 解決策: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
  6. 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
  7. まとめ 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