WWDC Quick Look 💓 By SwiftGGTeam
AutoFill everywhere

AutoFill everywhere

元の動画を見る

ハイライト

iOS 14 と macOS Big Sur では、アプリでの住所、連絡先、パスワード、確認コード、強力なパスワード入力に自動入力が拡張され、開発者は次のことが可能になります。textContentTypeまたはcontentTypeフィールドのセマンティクスをマークして、システムの提案を取得します。

主要内容

多くのフォームは入力の前半ステップで失敗します。ナビゲーション アプリではユーザーに目的地の入力を求め、支払いアプリではユーザーに受取人の電子メール アドレスの入力を求め、ログイン ページではユーザーにアカウント番号、パスワード、確認コードの入力を求めます。独自の提案リストを作成する開発者は通常、データ ソースを管理し、権限を要求し、選択インターフェイスを設計する必要があり、個人情報を保存するリスクを負う必要があります。

このセッションにおける Apple のパスは非常に小さく、各入力ボックスのセマンティクスをシステムに伝えます。使用したUIKitUITextContentType, macOS Big Surに追加されたAppKitNSTextContentType。フィールドに住所、電子メール、電話番号、ユーザー名、パスワード、またはワンタイム認証コードが必要であることをシステムが認識すると、QuickType バーまたはオートフィルで一致を提案できます。

このデザインのポイントは境界線です。連絡先の提案では、最初にアドレス帳がアプリに渡されることはなく、ユーザーがクリックする前にアプリと共有されるコンテンツはありません。アドレスの提案、パスワードの提案、確認コードの提案でも、システム内の既存のデータ ソースが使用されます。開発者は独自に作成したセレクターと許可ポップアップを削減し、ユーザーは個人情報の管理を維持します。

詳細

アドレス自動入力: フィールド セマンティクスを使用してシステム提案を置き換えます

(02:06) ナビゲーション アプリの住所入力ボックスには、完全な住所をマークするだけで済みます。ユーザーがフィールドをクリックすると、システムは最近の場所、カレンダー イベントの場所、または自宅の住所に基づいて QuickType バーに候補を表示します。

let streetAddressTextField = UITextField()
streetAddressTextField.textContentType = .fullStreetAddress

// Other address granularity:
// .addressCity, .addressCityAndState, .addressState, .countryName
// .postalCode, .streetAddressLine1, .streetAddressLine2, .sublocality

キーポイント:

  • UITextField()通常のテキスト入力ボックスを作成すると、オートフィルのアクセス ポイントは入力コントロール自体になります。 -.fullStreetAddressこのフィールドには完全な住所が必要であることを iOS に伝えます。
  • アドレス粒度はシナリオに応じて選択する必要があります。ナビゲーション アプリでは完全な住所があれば問題ありませんが、天気予報アプリでは都市のみが必要な場合があります。
  • 1つtextContentType複数の値を組み合わせることはできません。フィールド セマンティクスが正確であればあるほど、システム推奨の信頼性が高くなります。

連絡先の自動入力: アドレス帳のアクセス許可を時期尚早にリクエストすることは避けてください。

(05:18) 支払いアプリが受取人を見つけたい場合は、Contact Picker API を使用して、ユーザーが特定の情報をアクティブに選択できるようにすることができます。 iOS 14 ではさらに、連絡先の電子メール、電話番号、住所の候補が QuickType キーボードに表示されます。ユーザーが提案をクリックするまで、アプリはアドレス帳のコンテンツにアクセスできません。

// AutoFill contacts' email address
let emailTextField = UITextField()
emailTextField.textContentType = .emailAddress

// AutoFill contacts' phone number
let phoneTextField = UITextField()
phoneTextField.textContentType = .telephoneNumber

// AutoFill contacts' address
let streetAddressTextField = UITextField()
streetAddressTextField.textContentType = .fullStreetAddress

キーポイント:

  • .emailAddressシステムが連絡先の電子メールを入力候補として使用できるようにします。 -.telephoneNumberシステムが連絡先の電話番号を入力候補として使用できるようにします。 -.fullStreetAddress連絡先アドレスについても同様です。
  • アプリは最初に連絡先権限を申請する必要がなく、カスタムの連絡先提案 UI を維持する必要もありません。

パスワードと確認コード: 各フィールドはログイン ページに明確に記載する必要があります。

(07:35) ユーザー名とパスワードでログインできるアプリでは、それぞれユーザー名フィールドとパスワードフィールドをマークする必要があります。資格情報は、iCloud キーチェーンまたはパスワード マネージャーから提案されます。ワンタイム認証コードフィールドの使用法.oneTimeCode

let userTextField = UITextField()
userTextField.textContentType = .username

let passwordTextField = UITextField()
passwordTextField.textContentType = .password

let securityCodeTextField = UITextField()
securityCodeTextField.textContentType = .oneTimeCode

キーポイント:

  • .usernameパスワード自動入力認識ログイン フォームへの入り口であるアカウント フィールドにマークを付けます。 -.password既存のパスワードフィールドをマークすると、システムは保存されたパスワードを提供します。 -.oneTimeCodeSMS 認証コードの入力に適した認証コード フィールドにマークを付けます。
  • これらの属性はフィールドの意味を説明するだけであり、アプリがユーザーの保存されたパスワード ライブラリを読み取る必要はありません。

強力なパスワード: 登録ページで newPassword を使用してください

(08:30) サインアップまたは新しいアカウントの設定プロセス中に、自動強力パスワードは一意の強力なパスワードを提案し、それを iCloud キーチェーンに保存できます。講演では、最後のステップはアプリをドメイン名に関連付ける作業であると強調した。関連する詳細については、WWDC 2018 の自動強力なパスワードとセキュリティ コードの自動入力を参照してください。

let userTextField = UITextField()
userTextField.textContentType = .username

let newPasswordTextField = UITextField()
newPasswordTextField.textContentType = .newPassword

キーポイント:

  • .usernameシステムが登録フォームのアカウント ID を理解できるように、アカウント フィールドをマークします。 -.newPasswordここで新しいパスワードを作成することを示し、システムは強力なパスワードを提案できます。
  • ユーザーが弱いパスワードを再利用する可能性を減らすために、強力なパスワードを使用することをお勧めします。
  • ドメイン名を関連付けると、アプリと Web サイトが同じ資格情報スコープに属していることがシステムに認識されます。

macOS Big Sur: AppKit もパスワードと確認コードの自動入力を取得します

(08:56) macOS Big Sur では、AutoFill が Safari からアプリに拡張されています。 Catalyst アプリは検証コード AutoFill を取得します。 AppKitアプリは通過可能NSTextContentTypeユーザー名、パスワード、ワンタイム認証コードをサポートします。

let usernameTextField = NSTextField()
usernameTextField.contentType = .username

let passwordField = NSSecureTextField()
passwordField.contentType = .password

let securityCodeTextField = NSTextField()
securityCodeTextField.contentType = .oneTimeCode

キーポイント:

  • NSTextField使用contentType、意味的に UIKit に対応textContentType
  • .usernameそして.passwordAppKit ログイン フォームがパスワード自動入力にアクセスできるようにします。 -NSSecureTextFieldパスワードフィールドに適合しても合格しますcontentType注釈のセマンティクス。 -.oneTimeCodemacOS ログイン プロセスにも検証コードを入力する機能を追加します。

重要ポイント

  1. ナビゲーションおよびテイクアウト アプリへの直接住所入力

手順: 宛先、配送先住所、店舗住所の入力ボックスを次のようにマークします。.fullStreetAddressまたはより詳細なアドレスタイプ。

価値がある理由: セッションでは、最近の場所、カレンダーのイベントの場所、自宅の住所が QuickType バーに直接表示されます。

開始方法: フィールド粒度で設定された、最もよく使用される住所入力ページから開始しますtextContentType、そして、本当に自分で構築した履歴アドレスセレクターを構築する必要があるかどうかを確認してください。

  1. 受取人の入力をプライバシーに配慮した連絡先の提案に変更します

対処方法: 転送、招待、共有などのプロセスでは、メール フィールドと電話フィールドを個別に設定します。.emailAddressそして.telephoneNumber

実行する価値がある理由: iOS 14 の連絡先自動入力は、ユーザーがアドレス帳をクリックする前にアドレス帳の内容をアプリに引き渡しません。

開始方法: まず、フィールド セマンティクスと連絡先ピッカー API を使用してコア パスをオーバーライドし、絶対に必要な場合にのみ連絡先のアクセス許可をリクエストします。

  1. ログイン ページのユーザー名、パスワード、確認コードのフィールドを再確認します

手順: ログイン ページのアカウント番号、パスワード、SMS 確認コードのフィールドを次のようにマークします。.username.password.oneTimeCode

価値がある理由: これらのタグを使用すると、システムは保存された認証情報と確認コードを提案できるため、ユーザーがアプリとテキスト メッセージを切り替える必要性が減ります。

開始方法: コンバージョン率が最も高いログイン ポータルからフォーム監査を実施し、最初に修正します。textContentType分野。

  1. 登録ページにデフォルトで強力なパスワードプロセスを入力させます

やるべきこと: 新しいアカウント ページを使用する.newPasswordをクリックし、アプリと Web サイトに関連付けられたドメイン名の構成を完了します。

価値がある理由: 自動強力なパスワードは、独自の強力なパスワードを提案し、ユーザーがそれを iCloud キーチェーンに保存できるようにします。

開始方法: 登録ページのパスワードフィールドをクリアします: 古いパスワードを使用します.password、新しいパスワードを使用してください.newPasswordをクリックし、関連するドメインを追加します。

  1. Mac ログイン フォームを同じチェック セットに組み込む

やるべきこと: macOS Big Sur の AppKit ログイン フォームで設定します。NSTextContentType

価値がある理由: AppKit はユーザー名、パスワード、ワンタイム確認コードの自動入力をサポートするようになったので、Mac アプリは Safari だけに依存する必要がなくなりました。

開始方法: 確認してくださいNSTextFieldそしてNSSecureTextField、バンドルcontentTypeに設定.username.passwordまたは.oneTimeCode

関連セッション

コメント

GitHub Issues · utterances