ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
どこにでもAutoFill
AppにAutoFillを導入し、フィールドに情報を簡単に、かつプライバシーを保ち、安全に記入できるようにしましょう。あなたのAppの機能に沿ったより良い候補を提案できるよう、システムに手を加えましょう。たとえばナビゲーションAppからのスマートロケーション提案を提供できますし、プライバシーを保ったまま、QuickTypeバーから連絡先情報をフィールドに挿入できるようにもなります。 MacOS Big Surでは、AutoFillはSafariを飛び出し、Appにも拡張されました。この機能を活用し、あなたのmacOS Appのユーザーに、便利さとより高いセキュリティ、スムーズな体験を提供するための、小さな変更について学びましょう。 プラットフォームでのプライバシーに関する最新の改善点については、“Build trust through better privacy”をご覧ください。
リソース
関連ビデオ
WWDC21
WWDC20
-
ダウンロード
こんにちは WWDCへようこそ “どこにでもAutoFill” キーボードエンジニアのザハン・チェンです 自動入力についてお話しします アプリケーションのユーザが日々行う作業を 軽減するヒントをお伝えしましょう 現住所などの連絡先情報だけでなく パスワードやセキュリティコードも 自動入力できる方法を紹介します ログインや新しいアカウントの設定が必要な アプリケーションに最適の方法もあります まずは現住所を利用して自動入力を行う例を ご紹介しましょう ナビのアプリケーションには 住所入力のテキストフィールドがあります ユーザが入力欄をタップするだけで iOSが自動的に適切な場所の候補を提案します 例えばレストランから出てきたとします
QuickTypeバーに レストランの住所が表示されるでしょう ユーザは1回タップするだけで 住所を入力できるのです アプリケーションからシステムへの 場所のプロモーションに興味があれば WWDC2016のセッションをご覧ください “Increase Usage of Your App with Proactive Suggestions”です 別の例に移ります カレンダーの予定が近づくと― キーボードがイベントの場所を提案します
あるいは帰宅したい場合には 自宅の住所が自動的に提案されます
どのようにアプリケーションへ搭載するか?
誰でも簡単に導入できます お見せしましょう コードを使うのです TextFieldにUITextContentType APIを アノテートするだけで テキストフィールドがiOSに対して 意味づけられます ここではContentTypeを fullStreetAddressにします こうするだけで以前の例から 現住所が自動的に入力されるのです 非常にシンプルです
UITextViewやUITextFieldの ContentTypeも XcodeのAttributes Inspectorで 設定できます
各テキストフィールドに対する意味づけを― できるだけ厳密に特定すべきという点は 注意してください 1つのtextContentTypeプロパティに 複数の値を組み合わせてはいけません アプリケーションの用途を考えて 適切な値を見つけましょう 例えばナビのアプリケーションの場合 番地までの完全な住所が必要な情報でしょう しかし天気のアプリケーションなら 市までで十分です
ここで少しプライバシーについて お話ししたいと思います Appleが重視している項目です 我々の生活には デバイスの使用が欠かせませんが “何を”“誰と”共有するかは 完全に個人に委ねられるべきです Appleの製品は ユーザのプライバシーを守ります 個人情報の管理を各ユーザが行うのです 簡単なことではありません 優れたエクスペリエンスを構築するには 個人情報へのアクセスも ある程度必要です 例を挙げて見てみましょう 支払いアプリケーションの例です これを使うとユーザは友人に送金できます
どうすればユーザが送金先の友人を すぐに見つけられるでしょう?
Contact Pickerを用いて選ばせるか タイプさせて連絡先を提案するか
いずれにせよユーザの連絡先への アクセスを要求しなければなりません
連絡先へのアクセス要求が最適でしょうか?
求められればユーザは アクセスを許可せざるを得ないでしょう
しかしこれは流れを中断するだけでなく― 連絡先の共有を快く思わないユーザもいます
たとえユーザが連絡先へのアクセスを 許可したとしても アプリケーション側は個人情報流出のリスクを 負うことになります ユーザの個人情報にアクセスできるからです
お薦めはContact Picker APIです このAPIを使うと 連絡先へアクセスしなくてよいので ユーザに許可を求める必要もありません アプリケーションがアクセスできるのは ユーザが“共有する”と指定した 特定の情報だけなのです
iOS 14ではQuickTypeキーボードにより タイプと同時に連絡先を提案します
先ほどの例と同様 連絡先へのアクセスができないので ユーザに許可を促すこともありません
ユーザがQuickTypeバーをタップし 文字入力するまで共有情報はないのです
この実現方法は?
新しい連絡先の自動入力機能には なじみが あるかもしれません 現住所の自動入力と似ています ContentTypeをメールや電話番号に 設定するだけで 連絡先の自動入力が可能です
繰り返しますが ユーザの連絡先へのアクセスが必要な場合には この2つのソリューションを試してください ユーザのデータを保有する責任を 負わずに済むだけでなく 許可を求める必要もありません 連絡先の選択や提案のための カスタムUIの保守も不要です
次にパスワードの自動入力を紹介します “Appleでサインイン”を適用すれば ユーザはアカウントに 迅速に入ることができます その場合もユーザ名やパスワードで ログインするアプリケーションでは パスワードの自動入力が役立つでしょう パスワードの自動入力機能は アプリケーションに簡単に実装できます
ユーザ名とパスワードのフィールドに 対応するContentTypeの― usernameとpasswordをタグ付けするだけです
iCloudキーチェーンなどに保存された ユーザ名とパスワードを キーボードが自動的に提案してくれるでしょう
セキュリティコードについては oneTimeCodeを入れます
強力なパスワードの自動生成で アプリケーションの流れはシンプルになります 強力なパスワードを提案して iCloudキーチェーンに自動保存することで ユーザが楽になるだけでなく アプリケーションのセキュリティも強化されます
ここでご紹介したとおり 導入方法は非常に簡単です ContentTypeにnewPasswordを 入れるだけです
最後にアプリケーションを ドメインにひも付けます これについてはWWDC2018の “Automatic Strong Passwords”でどうぞ Macの話をしましょう Mac OSのBig Surには セキュリティコード自動入力が搭載されました CatalystアプリケーションがiPadで成功すれば Macでもうまくいくはずです
さらにBig Surの新機能として AppKitで作成したアプリケーションは 自動入力が完全にサポートされます
AppKitのNSTextContentTypeは UIKitのUITextContentTypeと似ています サポートする値はusernameとpasswordと oneTimeCodeです すばらしいことに― Big Surはパスワードマネージャを データソースとしてサポートするのです
最後に このセッションのポイントを 押さえておきます テキストフィールドは すべてタグ付けすべきです 住所やメールなど 全フィールドをタグ付けしましょう
それでは自動入力をお楽しみください
-
-
2:06 - Address AutoFill
let streetAddressTextField = UITextField() steetAddressTextField.textContentType = .fullStreetAddress //Other address granularity: // .addressCity, .addressCityAndState, .addressState, .countryName // .postalCode, .streetAddressLine1, .streetAddressLine2, .sublocality
-
6:17 - Contact AutoFill
// 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() steetAddressTextField.textContentType = .fullStreetAddress
-
7:35 - Password AutoFill
let userTextField = UITextField() userTextField.textContentType = .username let passwordTextField = UITextField() passwordTextField.textContentType = .password
-
8:00 - Security Code AutoFill
let securityCodeTextField = UITextField() securityCodeTextField.textContentType = .oneTimeCode
-
8:30 - Automatic Strong Passwords
let userTextField = UITextField() userTextField.textContentType = .username let newPasswordTextField = UITextField() newPasswordTextField.textContentType = .newPassword
-
9:20 - Password and Security Codes AutoFill for AppKit based apps
let usernameTextField = NSTextField() usernameTextField.contentType = .username let passwordField = NSSecureTextField() passwordField.contentType = .password let securityCodeTextField = NSTextField() securityCodeTextField.contentType = .oneTimeCode
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。