ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
Platforms State of the Union
Platforms State of the Union(WWDC 2019)
リソース
関連ビデオ
WWDC19
-
ダウンロード
(音楽)
皆さん こんにちは ソフトウェア担当副社長 セバスチャン・マリノー=メスです (拍手) こんにちは WWDCへようこそ 基調講演はいかがでした? (拍手) よかった (拍手) 今年はデベロッパにとって 重要な年で 我々の成果を披露するのが 楽しみです 今朝の基調講演の内容以外にも 発表したいことは あります このセッションでは デベロッパに 最も重要な分野の話をします (拍手) どうも 今年はデベロッパの皆さんの体験を― 新しいSwiftUIフレームワークや Xcodeのツールで大幅に改善しました 各プラットフォームの能力も より進化しました Macへの新たな機能の追加 ダークモードと… 失礼 watchOSの独立 iOSのダークモードや アプリケーションのアップデート そして最後に パワフルなiPadOSの独立です
モニターがついてない (笑い声) 片方はついてるので左に行きます 各プラットフォームは デバイスの独自性を高め― ツールやAPIのおかげで サポートも楽にできます Auto LayoutやSize Classes SwiftUIなどです アプリケーションの動作を各デバイスの サイズに合ったものにするため 来春から 異なる画面サイズへの対応が App Storeの必須条件となります
tvOSの新しい機能も… (笑い声) (拍手) ありがとう (拍手) tvOSもデベロッパに 新たな可能性を提供 サードパーティ製アプリケーションの マルチユーザサポートや新しいUI SwiftUI XboxとPlayStationの ゲームコントローラのサポートも (拍手) 今朝 Mac Proの新しい ハードウェアが発表されました どうです? (拍手と歓声) これで新たなアプリケーションも 生まれるでしょう
各プラットフォームにまたがる新技術も いくつか紹介します アクセシビリティ プライバシー 機械学習 Siri 拡張現実 そしてMetal さて まずはデベロッパの 生産性についての話から 優秀なツールは 当然 生産性を劇的に向上させます 時間に余裕ができて よりよいアプリケーションが作れる その土台が プログラミング言語です この5年でSwiftは成熟し 全プラットフォームに組み込まれて SwiftUIの基礎となりました またXcodeは ただの コードエディタ兼デバッガではなく 必要なものを すべて備えています 継続したテストをサポートしたり 機械学習や拡張現実などの― 新しい技術を試す様々なツールも 提供します そして新たなフレームワーク SwiftUIが UIの構築に革命をもたらします この3要素で 生産性のレベルが格段に上がり― アプリケーションの作り方が 一新されるでしょう SwiftUIを詳しく知りたいですか? (拍手) ではジョシュに話してもらいましょう (拍手) ありがとう セバスチャン
SwiftUIは 新しいUIフレームワークです Swiftでゼロから作られました コードを減らし よりよいコードが書けるようになります そのうえAppleの全プラットフォームで 利用できます 1行のコードに 多くの機能が組み込まれており― 大幅に書く量が減ります 例としてアプリケーションを 見てみましょう アニメーションなしです UIKitで作る場合― どんなコードが必要かは 知ってますね ビューは多くありませんが 細かく書く必要があります SwiftUIなら激減します 20行以下で カギとなる点は3つ まずビューの構成と レイアウトを定義
次に表示する画像とテキストのビュー 最後に見た目を調整する パラメータと修飾子 何行か少し詳しく見てみましょう スクロールリストのコードは 単純です リストを宣言し 各行の モデルオブジェクトを記述するだけ 設定もコールバックもありません 上の画像表示も単純です 画像を丸くクリップし 影を足すだけ シンプルで より優れたコードになります APIは 明確な記述が正解になるよう 設計されています このラベルの作成も そのまま書けば正しいコードになり ダークモードなどをサポートします 文字列補間も 完全にローカライズ可能です これらにより 様々なエラーが防げます このリストでは モデルチェンジが行われると― 各行が自動でアップデートされ 古いデータは表示されません それに読みやすい この画像のコードには cornerRadiusが3とあります 読むだけで インターフェイスが分かるのです どのプラットフォームか 関係なく― このコードは どこででも 再利用することができます ローレベルグラフィックスや 合成コードは共有できましたが ハイレベルなUIコードは できませんでした でもSwiftUIは 共有の幅を広げました もちろんプラットフォームごとに アプリケーションが使いやすいよう― UIのカスタマイズは必要です でもSwiftUIのAPIなら パターンを覚えれば何にでも使えて― ネイティブなUIが実現できます
SwiftUIは4つの原則で 設計しました まず宣言型シンタックス 画面をどう変更したいかではなく 何を表示したいかに注目します 例えばグレーのHeadlineフォントで ラベルを作る時 それを実現するプロセスは 何段階もあり とても複雑です
しかし何が欲しいかなら 単純です
テキストの内容は“完了!” Headlineフォントで色はグレー SwiftUIは それをそのまま書かせてくれます 最低限のコードで すべてを表せるのです 反復も迅速になります ラベルをボタンに変えるのも 1行で済みます
(拍手) すごいですよね? (拍手) 2つ目の原則は できる限り自動機能を提供すること 大量のコードを 自分で書かずに済みます このアプリケーションはシンプルですが 多くの自動機能が含まれています デフォルトでの スペースやセーフエリアの調整 右横書きの言語へのレイアウト対応 Dynamic Type ダークモードなども 最小限の記述で済みます 少ないコードで 多くの自動機能を実現します さらに もう1つ 注目すべき重大な機能があります 現代のUIはアニメーションが多いですが SwiftUIなら同じ宣言で― 自動的にアニメーション化されます 1行のコードで 全階層でアニメーションが有効に 準備もクリーンアップも不要です Keynoteのマジックムーブのように 簡単で さらにパワフルです 追加や削除されたビューも― どう遷移するかを 1行で指定できます
アニメーション中もアプリケーションは 常にインタラクティブな状態のままです アニメーション中にユーザが― 別の場所に移動しても SwiftUIが自動で対応してくれます 3つ目の原則は― 組み合わせ可能なAPIが 学習と反復を簡単にすることです 個別ビューの宣言を見てきましたが 複雑なビューも簡単です 小さなピースを組み立てるだけ HStackやVStackを― 組み合わせるだけで パワフルなレイアウトが簡単に作れます また 修飾子を使って ビューのプロパティも― 組み合わせることができます 修飾子は どんなビューにも 適用できます 例えばこのcolorです このように ビューや修飾子を組み合わせて― 圧倒的にパワフルなUIを 作ることができます 最後の原則は 常にUIの一貫性を保つことです UIは常にアプリケーションの データと同期しているべきです 以前はエラーが 起こりがちでしたが― SwiftUIならデータ変更のたび 自動でUIが更新
データが更新される場所は主に2つ 片方はモデルオブジェクト 新しいBindableObjectプロトコルに 適合させれば既存のものを使えます データがいつ変わるか 指定するだけです もう片方はUIの状態 例えばビューが編集モードかどうか プロパティの@Stateという ラッパーで宣言されます どのビューのプロパティも 変更可能ですが SwiftUIを使えば アプリケーションが 必要とする変更の少なさに驚くでしょう
モデルや状態が変わると UIが自動的に更新されます しかも すべてSwiftコードなので 宣言の中で直接― モデルオブジェクトが使えて 値の変換やフォーマットも 回り道せずにできます 例えばこの文字列補間で日付を ローカライズされたテキストにできます
SwiftUIなら 少ないコードで UIの一貫性を実現できます 以上が4つの原則です 宣言型シンタックス 多くの自動機能 組み合わせ可能なAPI そして一貫性のあるUIの状態 すばらしいツールも欲しいですね そこでXcode内に SwiftUIのワークフローを作りました パワフルで柔軟なコードと― 使いやすく 迅速な反復が可能な UIツールが融合 これからは どちらかを選ぶ必要はありません 既存のソースコードで使えるので― 素早い開発が可能になります ライブで見れば 分かってもらえるでしょう ケヴィンに実演してもらいます (拍手) ありがとう ジョシュ ハイキングアプリケーションの TableViewCellにビューを追加し トレイルの難易度を示すとします ライブラリのテキストをドラッグすれば Xcodeがレイアウトを提案してくれて 場所を指定すれば レイアウトを編集してくれます 次にプロパティを編集します command+クリックで インスペクタを表示させます テキストを小さくします コードを見ていてください 自動で書いてくれました ソースエディタでコードを編集しても 同じことができます Xcodeがコードを自動でビルドし 右の画面が更新されました どこからでも デザインツールにアクセスできます VStackからインスペクタを開いて― プロパティを変更します とてもスピーディですね
このビューには タイトルや難易度などがありますが どのデータを プレビューに表示すべきでしょうか? デザインしているデータを 表示させるのに苦労してきました そこでプレビューを発明しました プレビューの説明をします スクロールして… アプリケーション内の この短いコードのデザインを― 表示するのがプレビューです 自分のアプリケーション内なので 全コードにアクセスでき チームのみんなとも共有できます データも変えやすい ハーフドーム登山の難易度を― “Hard”に “6マイル”を“16マイル”に 修正します コンパイルですね
SwiftUIコードなので 残りの開発で 使いそうな修飾子にアクセスできます ダークモードでも見られます プレビュー固有の修飾子もあります デフォルトではデバイスのサイズですが TableViewCellでの作業で コンテンツのサイズに合わせられます プレビューの利点は いくつも作れることです 違うデータで 2つ目のプレビューを追加しましょう そしてさらに command+クリックで繰り返します Dynamic Typeに共通のサイズを列挙し それらを使いセルを設定します これでダークモードや 各種サイズのセルが同時に確認できます (拍手) セルをタップして詳細を出したい ファイルを見てみましょう トレイルの場所を 名前から判断すると痛い目を見ます なので詳細ビューの画像は なるべく大きくするのが重要です SwiftUIで作ったものがあります バナーをタップすると 拡大表示するようにしたい 再生ボタンを押すだけで そのテストができます プレビューが インタラクティブになります クリックして それぞれの拡大表示をテストできます 表示にアニメーションを つけるのも簡単です 表示を変える記述を withAnimationブロックでラップすると 美しいアニメーションがつきます
(拍手) カスタマイズも簡単です エフェクトを ドラマティックにしてみましょう もっとステキになりましたね アニメーションは キャンセルもリバースも可能で― アプリケーションは 常に反応する状態です TableViewCellと詳細ビューを まとめてみましょう 画面をトレイルのリストのビューに 切り替えましょう 実際のデバイスで どう見えるかが知りたい ボタン1つで Xcodeがプロジェクトをビルド インストールして プレビューを起動します ちゃんと操作できます ではビルドしたセルを 使ってみましょう ここを“TrailCell”に変更すると― トレイルが表示されます タップで詳細に切り替えるのも SwiftUIなら とても簡単です NavigationButtonでラップすると 詳細ビューに移れる カッコが出ました スノー・クリークを見てみましょう 画像を開きます 雪が深く 難易度が高い 楽ではなさそうです コード1つで スワイプで削除する 機能を追加 行きたくない山を削除できます 最後にダークモードで見てみましょう こうして簡単に プレビューがダークモードになります (拍手) バレー・フロアーをタップしてズーム 週末を楽しめそうですね Dynamic Typeサイズやダークモードなど 様々なデータを実際のデバイスで― テストできました 自分でビルドせずにです 楽しいでしょ? ジョシュに戻します (拍手) ありがとう ケヴィン 新しいワークフローは見事ですね デバッグや変更 検索がしやすいツールで― 直接 コードを編集できるので 柔軟に作業できます どのOSにも対応しており どのプラットフォームでもネイティブな アプリケーションが作れます パフォーマンスでも動きでも 他のアプリケーションに負けません 自分のペースで適用できます 適用するのは ビュー1つでも アプリケーション全体でもいい 既存のUIKitやAppKitの コードとも合うので― 書き直す必要はありません 早く慣れてもらうために 新しいドキュメントも開発し プロジェクトの作成から段階を追って UIの作成を支援します すぐ慣れるはず (拍手) これがSwiftUIと新しいツールです 今年はSwiftとXcodeの年なので まだニュースがあります マシューが詳しく話します どうも (拍手) ありがとう ジョシュ 今年リリースされたツールで SwiftとXcodeに革命がもたらされます まずSwiftから この5年でSwiftは進歩を遂げ 我々の主力技術に 欠かせないものになりました 機械学習や拡張現実は― 今やOSの一部となった Swiftによって可能になります この春 ABI Stabilityを紹介しました Swiftランタイムで アプリケーションのサイズを縮小します (拍手) 今日はModule Stabilityを紹介します これにより… (拍手) 未来のSwiftコンパイラとの バイナリの互換性を確保します 数々の言語機能やツールの編集 パフォーマンスやコードサイズの改善 Swiftにより 多くの可能性がもたらされます Appleプラットフォームで― Swiftは今後さらに 共通のコードとして重要になります 新しいSwift Packagesは― 自分のコードを共有し 他者のものを再利用する最適の方法です 今日は2つ大きな発表があります
GitHub Package Registryが Swift Packagesをサポートします (拍手) XcodeはiOSやiPadOSなど 全プラットフォームで― Swift Packagesをサポートします (拍手) Swift Packagesは非常に便利です 常にアクセス可能で ワークスペースと一体化しています コミュニティとの共有や ワークフローへのアクセスもしやすく デバッグからテストまで 何でも可能です Xcodeに組み込まれているので 理想的なコードの共有ができます
今年のXcodeの発表は 生産性の最大化がテーマです 今日はXcode 11のいくつかの進歩を 紹介します 大きな変化の1つが Xcodeのワークスペースです 編集を制御できます エディタを好きに作って管理でき― 適切な時に適切な場所で エディタの追加や削除ができるのです (拍手) そして何よりワークスペースが まとまります
エディタを最大化し―
終われば また元に戻せるのです (拍手) ノートパソコンでも 大きなディスプレイでも作業でき ワークスペースを最適化できます
エディタ内の関連コンテンツも 大きな進化を遂げています プレビューやキャンバス ライブビューなどのオプションも― ワークスペースの どのエディタでも使えます そしてコンテンツがない場合は 自動で消えるので― 操作は必要ありません (拍手) ワークスペースの次は編集作業です では新しいソースの編集を 実演しましょう
エディタの設定には 新しいオプションメニューがあります アシストツールや関連コンテンツ コードカバレッジをオンにもできます 新機能のMinimapを使えば―
ファイルの全体像を示してくれます メソッドや関数が見られて ファイル内を動きやすくなります MARKシンタックスで ラベルや水平Dividerを追加でき Minimapにも出せます (拍手) Minimapでは 主要なランドマークが示されます commandキーで すべてのランドマークが見られ― 行きたい場所が 見つけやすくなります (拍手) さらにMinimapでは問題点や ファイル内の検索結果も示され― アクセスできます ソースエディタがポップアップし コードの色も鮮やかになりました ドキュメントコメントは― イタリックや太字も 使えるようになりました コメントを追加すると― 自動で必要なパラメータを 追加してくれます (拍手) Edit All in Scopeでコメントと コードを同時に変えることもできます (拍手) 変更を把握するために 追加した機能があります 変更をすべて見たい場合― Source Control Historyインスペクタで 確認できます ジャンプも可能です インスペクタなので どのファイルタイプでも使えます
さらにchange barも改善しました マウスを重ねると 変更が示されますが― 変更前のコードも 見られるようになったのです (拍手) ライブで変更を加えてみます
変更履歴が更新されます 以上がXcode 11の ソース編集機能の一部です
(拍手) テストも重要なワークフローです 皆さんもXcodeでは テストが書きやすいことを実感したはず (歓声) よかった でも すばらしいツールを使えば さらに改善できます Runtime Issuesや Runtime Sanitizers Location Simulationなど 毎年 追加されます これらのツールを まとめて並行して使いたい そこでTest Plansです Test Plansは 様々な設定でテストができます いくつかの選択だけで 世界中で使えるようにテストできます App Store用のスクリーンショットや ローカライズのための詳細収集にも最適 拍手に値すると思います (拍手) 診断やパラメータを追加して 多角的に調べられます さらに 様々なOSと デバイスの組み合わせでテストすれば 包括的な診断ができます Xcode Serverとの相性も完璧で― 新しいMac Proも活用できます シミュレータやデバイスでの 並行テストも行えます Test Plansなら コマンド1つでまとめてテストできます 大きな進歩です (拍手) テストでは ユーザシナリオの再現が必要です Device Conditionsが答えです 通信処理量やデバイス温度などを設定し 反応が見られます シミュレーションなので― 実際に熱くはなりませんよ XcodeのDevicesウィンドウで設定し バナーが表示されれば有効です バナーをタップすれば無効になり― 接続を切れば Conditionsは自動で終了します
Result Bundlesも改善し スタンドアローンになりました メールで共有したり バグに添付したりでき― ダブルクリックすれば Xcodeで開いて詳細を見られます (拍手) アプリケーションを さらに改善するため― フィードバックツールを2つ紹介します まずiOSとiPadOSのApp Store アプリケーション用のApp Metricsです ユーザの同意でバッテリー寿命や メモリなどの解析値が― 匿名で入手できます メトリックスは集計され クラッシュなどと並べて表示されます アプリケーションの 監視と改善にはとても有効です メトリックスは iOS 12.2から集め始めているので 多くのデータがあるはずです
ユーザの声も大事な情報源です TestFlightアプリケーションを使えば 自動でフィードバックが 入ってきます ユーザはスクリーンショットを フィードバックでき― コメントも追加できます (拍手) App Store Connectでは― フィードバックをダウンロードして 確認できます
これらの他 Xcodeの新機能は多岐にわたり― SwiftやSDKや あらゆるツールに革命をもたらします すべては生産性向上のため これがXcode 11です (拍手) プラットフォームの詳細を 話してもらいます セバスチャン (拍手) ありがとう マシュー すばらしいですね アプリケーションのビルドを 大いに助けてくれる機能ばかりです 次はプラットフォームについて プラットフォームは それぞれの目的に合わせて― 独自の体験が得られるように 作られています 今年はその強化を図りました これからmacOSで どんなことをしたか紹介しましょう
macOS Catalinaにより― スクリーンタイムや新しい 音楽アプリケーションなどが楽しめます Sidecarなど 生産性を上げる機能も追加しました Sidecarは最高でしょ?
(拍手) Macは1億人以上の アクティブなユーザを抱えた― 活気あるプラットフォームです AppKitで作られた― 優れたアプリケーションも たくさんあります Pixelmator Proがいい例です AppKitはMacの可能性を広げる フレームワークです ただiPadのアプリケーションを Macで使えたらと思うものも多い しかしAppKitでは 手間がかかります そこで今年はMac Appを作る 新たな方法を追加します iPad Appも― 簡単にMacに移植できます これは…
スライドを戻せる? 失礼
もう1つ前に ありがとう これはMacが世界最大の アプリケーション群に加わる好機です iPadの100万以上のアプリケーションは 多くがMacにも合うはずです そこで我々は 40以上のフレームワークをiOSから Macに移植しました iOSデベロッパで まだMac Appがない方には朗報です 共通のAPIが使えます 一部のモバイル機能を除いて― 大半のiOS APIが 使用可能になったのです UIKitをネイティブフレームワークに したからです これによりiPad Appが― Macでも 速く動作するようになりました UIKitを 直接macOSに統合したことで― 多くの基本機能が付随 iPad Appで Macの機能が利用可能になります タッチコントロール キーボードやマウス入力なども使えて 作業が減り 開発に取りかかりやすくなるでしょう
この技術は すでに 我々のアプリケーションで使っており 皆さんに提供する前に 技術の確認と改善を行ってきました iPad Appを Macに移植するのは簡単です 基本的なステップは3つ まずチェックボックスで… もう出ましたね (笑い声) 簡単でしょ? Macのサポートに チェックを入れます ほら 簡単です しかも1つのプロジェクトで― 全プラットフォームの アプリケーションが作れます ソースを変更すればアプリケーションが 3つとも更新されます 次にアプリケーションの iPadでの機能性を確認します iPadでの質がMacでの質になります 最新技術を導入し iPadの大きな画面に適合する努力は― Macにも生かされます
外部キーボードのサポートなど― ベストプラクティスへの準拠も 体験を向上させます 3つ目はMac特有の機能を 生かすこと Mac固有のUIを 最大限に生かす方法が― カスタマイズです フルメニューやツールバー サイドバーやマテリアルなど どれだけ簡単か 実演してもらいましょう マシュー (拍手) どうも
旅行アプリケーションを iPadのシミュレータで見ます 場所のリストです 場所を選ぶと地球が回転します ログインすると 自分の旅の記録をつけられます では3つのステップで Macに移植しましょう ステップ1 チェックボックス ターゲットエディタで― Macのサポートに チェックを入れます
以上です これでMac用にビルドできます 一覧に加わるので― 他のデバイスやシミュレータと 同じようにMacを選べます これがMac Appです リストが左にあり― 場所を選び ログインもできます (拍手) すごいチェックボックスです
ステップ2 いいiPad Appを作る リストには “お気に入りに追加”や“共有”がない iPadで実装すると Macではコンテクストメニューに入る 一挙両得です サイドバーコントローラでTableViewの デリゲートメソッドを追加すれば― メニューが出ます ステップ3に進みましょう サイドバーを鮮やかにしたい 変更は自動ではありません 適切か確認が必要だからです 問題なければ― 1行の変更で サイドバーをBackgroundStyleに 最後にメニューバーを追加しましょう Storyboardで― ライブラリからメニューを検索 メインメニューをドラッグして― ファイルメニューを開きます ログインアクションを追加します 名前は“Login” キーはcommand+L そしてこれを ログインに使っているアクションと結ぶ 以上です 実際に見てみましょう Xcodeを隠して アプリケーションが見えるようにします サイドバーが鮮やかになりました 選ぶとコンテクストメニューが出て メニューには ログインアクションがあります 3つのステップでできました (拍手) 3つのステップで 最高のユーザ体験がMacで提供できます セバスチャン (拍手) ありがとう マシュー 見事でした 試してみたくなりません? ですよね ここ数週間で デベロッパの皆さんに試してもらい― 驚きの成果が得られました これが今 Macで動いている 彼らのiPad Appです Mac Appをビルドしたら― Mac App Storeで配布するのが一番です Mac Appは何より数が多く 世界155ヵ国で利用でき― あらゆるMacユーザに提供できます
Gatekeeperで マルウェアから守りつつ― アプリケーション入手の 多様な方法も提供できます Gatekeeperはアプリケーションの 初回起動時だけでなく その後も定期的に マルウェアがないか確認してくれます そのためデベロッパの アプリケーションは公証を― 受ける必要があります App Storeとインターネット どちらでも アプリケーションを安全に入手できます 公証は幅広く導入され― シンプルで速いので 98%以上が15分以内で完了します 我々はmacOSのセキュリティ強化に 力を入れていきます 3つの分野に注目したい まず新技術のDriverKit カーネル機能拡張を ユーザ空間へと広げることができます ドライバや拡張機能を ユーザプロセスとして動かすことで― macOSの安定性を向上させます カーネル機能拡張が必要だった 事例を特定し― その75%以上に ユーザ空間での別の選択肢を提供します 今後のmacOSではカーネル機能拡張が 使えないのでDriverKitを推奨します 次にmacOSの安定性向上のため システムボリュームを読み取り専用に 仕組みは こうです 現在 単一ボリュームにユーザデータと アプリケーションとOSがあります macOSを変更から隔離するため― Macは2つの 論理ボリュームに分かれます 1つは読み取り専用のOSファイル もう1つは ユーザデータとアプリケーションです (拍手) どうも (拍手) OSを変更から守り― 安定性と 未来のセキュリティを高めます 皆さんのアプリケーションや インストーラが― Catalinaでシームレスに動くか 確認してください 最後にアプリケーションと データの保護について ここ数年 データ保護カテゴリを追加し アプリケーションが写真データや 高感度センサーにアクセスする権限を ユーザ側で 制御できるようにしました Catalinaでは今後も データ保護のため― キーログや画面録画などの 情報取得に許可を必要とします
ユーザデータも保護します デスクトップのファイルや iCloudや外付けドライブへの― アプリケーションのアクセスは 許可が必要になります (拍手) どうも (拍手) Catalinaの強化には 我々も非常にワクワクしています もう1つ watchOSでも大きな変化があります 詳しい話はロリに任せましょう ロリ (拍手) ありがとう セバスチャン
今朝の基調講演で watchOS 6の新機能や NOISEやCycle Trackingなどの新しい 健康アプリケーションを紹介しました そして何よりwatchOS 6は ついに― iPhoneから独立し 固有の体験を提供します (拍手) 最近ではiPhoneを置いて 出かける人が増えました 通信手段は Apple Watchだけです 私たちは ランニングや 音楽視聴や友人とのチャットまで ユーザにApple Watchで 最高の体験をしてほしい 独立したWatch Appが可能にします 私たちはApple Watch用の 開発に全力で取り組み 新たなAPIで 固有の体験作りを 支援するだけでなく デベロッパの体験の刷新も 目指してきました
これからはWatch Appを Watch Appとして作れます
Xcodeで簡単に実現でき― Apple Watchだけの 特別な体験を提供するのです iOS版のビルドは必要ありません
すでにiOS版がある アプリケーションでも― Watch Appを作れます なぜならwatchOS 6に 大きな変化が加わったからです Apple Watchを 単独のプッシュ通知対象に 今後はApple Watchに直接 通知し― iPhoneに頼らず アップデートすることができます (拍手) CloudKitの購読や コンプリケーションプッシュも サポート ユーザにiPhoneでのサインインは 要求できないので watchOS 6では テキストフィールドでアカウントを作り Apple Watch上で直接 サインインできます (歓声) (拍手) “Appleでサインイン”ボタンで― 既存のApple IDで サインインすることができます 新しいパスワードも不要です Apple Watchのみを使う人のため― ストリーミングオーディオを 導入します watchOS 5では バックグラウンドオーディオでしたが watchOS 6では3通りの ストリーミングが可能です Network.frameworkと NSURLSessionStreamTask AVFoundationのおかげです 音楽再生やナビ以外にも アプリケーションを― 動いたままにしておきたい時が あります 例えば瞑想セッションです 新しい拡張ランタイムAPIは― ユーザが手首を下げていても アプリケーションを動かします それによって セルフケアやマインドフルネス 理学療法 スマートアラーム 数々のアプリケーションで 新たな体験ができます あとはUI作成の選択肢が 増えてほしいですよね 何年もUIフレームワークの 改善が望まれていました 今回 SwiftUIで実現します
(拍手) iOSでも紹介しましたが― 美しいUIを作る あの宣言型言語が watchOSで使えます 可能性が広がりますね スワイプで削除できるリスト カルーセルスライド Digital Crownへの直接アクセス これらにより最高の体験が可能に
独立したアプリケーション機能の SwiftUIによる活用法を実践します
シミュレータで旅行アプリケーションの アップデートを始めました よくなっていますが まだ問題点があります iPhoneでのサインインを不要にして Apple Watchでできるように 変更します プロジェクトファイルに移動して― Travel Watch Extensionを開き 独立を宣言するため “Supports Running Without iOS App Installation”にチェック 次にサインインビューを開いて― プレビューを再開 サインインボタンの プレビューが2つあります 上は私の母語である英語 下は 今ローカライズを試している 右横書きのアラビア語です まずユーザ名ボタンの フィールドを作ります これをユーザ名に… 失礼
ユーザ名の@Stateにバインドします placeholderにもUsernameを配置し ユーザと行動を関連づけます ContentTypeも.usernameとし パスワードとユーザ名の自動入力が 使えるようにします 次にパスワードフィールド 打ち込んだパスワードが 表示されないようSecureFieldに パスワードの@Stateとバインドします placeholderもPasswordとし 自動入力のため ContentTypeも.passwordに いい感じです アラビア語は Localizable.stringsファイルから― 直接 引っ張ってきてます 上に“Appleでサインイン” ボタンを追加 ユーザはそれが一番楽です
これを一番上に置いて 選択を表示します Apple IDを使うか 新しいユーザ名と パスワードを作るか 最後にHostingControllerで destinationをiPhoneビューから― 今 作ったサインインビューに 変更します プレビューを開いて ボタンをインタラクティブにします サインインをクリックすると― 先ほどのサインイン画面が出ます 問題ない Apple Watch上で サインインフォームができました (拍手) Watch Appをビルドする ツールを紹介しました ではアプリケーションを ユーザの元に― いかに最小限の障害で届けるか?
App Storeでは選りすぐりの アプリケーションの中から 優れたWatch Appを 前面に押し出していきます 皆さんが作った アプリケーションを― ユーザが すぐにダウンロードして 楽しめるようにします iPhoneを持っていない人でもです
製品の詳細ページは充実しています 詳しい説明やスクリーンショットや レビューなど
アプリケーションを 音声認識などで検索し Apple Watchに 直接ダウンロードできます App Thinningのおかげです 小さなバンドルで― Apple Watchに必要最小限の アーキテクチャを届けられます iOS版があれば そちらのバンドルも小さくなります iPhoneからApple Watchに 移す必要がないのです これからApple Watchは より機能が充実し より美しく 独立したものになります 皆さんもユーザも 喜んでくれるはず では次はiOSについて話します シンディに拍手を (拍手) ありがとう ロリ iOS 13は革新的な発表です 今朝 多くの新機能や進化を 紹介しました 新しい共有シート QuickTypeキーボード そして新しいCarPlay iOS 13では これらに加え UIが生まれ変わりました ダークモードやCards ContextualActionやシンボルなどです まずダークモードから紹介します
明るさが抑えられるので― コンテンツに集中できます 見た目が美しくなるよう システム全体が更新されています ユーザも喜ぶでしょう 皆さんのアプリケーションも 美しくなってほしい そこでダークモードを念頭に 新しいAPIも作りました まずセマンティックカラー 背景やテキストに新色が加わり それらはダークモード用の 複数のバリエーションがあります どういう意味か? アプリケーションはフルスクリーンだと 背景は黒です 対比を出すため― その上に表示されるUIは 少し明るくなります iPadでアプリケーションを― Slide OverやSide by Sideで 開いた場合も同様です 微妙な差異ですが 自動で色が最適化されています
ポップアップ用の カラーパレットもあり― 対比が強いアクセシビリティモードの バリエーションもあります
新しいマテリアルや 色鮮やかにするフィルタもあります 様々な透明度を持ち どんなコンテンツも美しく表示します これらのマテリアルも― ライトモードとダークモードの バリエーションがあります UITraitCollectionの変更に伴い 自動更新されます セマンティックカラーや新しいマテリアルは 環境に自動で適応し 統一感のある表示を可能にします
もう1つ新しくなったのはCardsです iPhoneでは以前から デフォルトの表示は全画面でした これを より滑らかな カード表示にします カードの重なりが 一目で分かるようになりました 下へのスワイプで終了もできます
(拍手) そう スワイプするだけです
Peek and Popもアップデートしました ContextualActionsを より簡単に素早く表示できます どのデバイスでも使えるAPIなので iPhone上だけでなく iPadでもすばらしく見えます アプリケーションを Macに移植しても同様です
(拍手) こうして見栄えをよくする 改良をしている間に― シンボルについて考えました
アプリケーションには シンボルがある アプリケーションの情報伝達に 便利です シンボルと文字はセットですが シンボルにない優れたプロパティが 文字にはあります 文字は Dynamic Typeサイズと共に変わりますが シンボルは変わりません できれば一緒に変わってほしい
そこでSF Symbolsを作りました SF Symbolsはフォントに似てますが UI画像として パッケージされているので使いやすい iOS 13には1500以上の SF Symbolsが採用されています Xcode内で簡単に検索でき― MacではSF Symbolsアプリケーション 単体で使えます (拍手) シンボル! (笑い声) これで文字と一緒に サイズが変わり― 読みやすく レイアウトにも一貫性が生まれます そして太さも これだけのものから選べます (拍手) これはiOS 13のほんの一部です アプリケーションの共有が提案できる 共有シートAPI CollectionViewが簡単になる 新しいレイアウトAPI 長いコンテンツをフルで見られる スクリーンショットの拡張 他にもたくさん
それらに加えて今年は iOSをもっと進化させたかった
そこで独自OSに マルチタスク用の拡張を与えました PencilKitの新フレームワークと 生産性を上げるジェスチャもです
まずマルチタスクから
iPadOSではアプリケーションを 複数の空間で開けます Slide Overで別々のコンテンツを 重ねて表示もできます
これを実現するAPI UIWindowSceneを紹介します 各WindowSceneはUIの 単一インスタンスを表します iPadOS以前はApp Delegateが プロセスとUI 各ライフサイクルを担当 WindowSceneでは UIをScene Delegateに分離して― 個別に管理します UIが独立するので アプリケーションが 複数を同時に管理できます
ドラッグ&ドロップで ウィンドウなどの個別のアイテムを― 新しいWindowSceneで開けます
これにより― ユーザが任意の時に任意のシーンを 再開することができます 新しい復元システムも作りました NSUserActivityがベースです 様々な場面で使われるAPIです Handoff 検索 索引 Siri そして今度はWindowSceneの復元に
iPadの魅力… 拍手は歓迎ですよ (拍手) iPadの魅力の1つはApple Pencilです PencilKitを使えば 滑らかで 低遅延な描画が可能になります Notesやマークアップで 使われるのと同じエンジンを使うので すぐにアプリケーションに導入できます
キャンバスとパレット機能は別々で― 使用事例に合わせて好きに選べます
最後に効率を上げるジェスチャ
テキスト選択が簡単になりました テキスト選択は 指でドラッグするだけ テキストとウェブビューは このジェスチャでアップデートされます
取り消しは3本指で左にスワイプ やり直しは3本指で右にスワイプ 既存のNSUndoManagerを使うので そのまま適用できます
テキストビュー以外で使いたいとか 3本指ジェスチャを すでに使っている場合は― UITextInteractionを使えば解決です
Scroll Viewではインジケータを 目的地へ直接ドラッグ showsScrollIndicatorで 有効にできます フレームの全セルを同時に ロードするにはスクロールが重要です
iPadOSの新機能を ユーザは気に入ると思います 皆さんが使うのも楽しみです セバスチャンに返します (拍手) ありがとう シンディ 各プラットフォームに新機能があり それぞれ できることも増え 体験が改善されます 各プラットフォームで― 皆さんのアプリケーションを 我々の幅広い新技術で支援します 最新技術をアプリケーションに 取り入れやすくなるでしょう 今日はかなり幅広く ご紹介させてください プラットフォームの 全ユーザへの開放から 現実と拡張現実の融合まで まずエリックが アクセシビリティの話をします エリック (拍手) ありがとう セバスチャン
テクノロジーは生活の中で 重要な役割を担っています 障害を持つ人にとっては特にです テクノロジーは 彼らの独立や 雇用の可能性を開きます Appleのアクセシビリティの 指針の1つは ビルトインであるということ あらゆる人がApple製品を 買ってすぐに使えるようにしたい
そして包括的であること どのプラットフォームも どのOSも どのアプリケーションも 楽しんでほしい そして何より― あらゆる人に驚きと喜びを与えたい 今回の改良は ただのバグ修正ではなく アクセシビリティによって― テクノロジー本来の刺激的な体験を 可能にするのが目的です
アクセシビリティは― 多岐にわたる一連の障がいを 対象としています 聴覚 視覚 身体 学習 各分野で様々な取り組みがあります 例えば視覚ではVoiceOverで 画面を読み上げます その他にも 多くの機能が用意されています ズームやテキスト拡大などです このように様々な障がいを サポートするためには― 何十ものアクセシビリティ機能を 開発する必要があります すべての人に対応するためです 皆さんも少なくとも1つは 利用したことがあるはず まだの人も いずれは
今年 発表した新しい機能や強化から 2つご紹介します まずは見つけやすさの向上 アクセシビリティの機能を 誰にでも見つけやすくしたい そこでiOSの クイックスタートに追加しました さらに素早いアクセスが 可能になりました さらにアクセシビリティを― 設定の上位に持ってきました (拍手) 見つけやすくしたことにより 多くの人に 機能を 使ってもらえるでしょう
次は音声コントロールについて 基調講演でも出ました この機能は macOSとiOSとiPadOSで利用可能で― 身体機能に障害のある方に 非常に役立つでしょう どのプラットフォームでも アイテムを呼んだり 数字で表すことができます グリッドを使って 画面の場所を示すこともできます テキスト編集も 音声入力はもちろん― 選択や修正も 声だけで行うことができます 認識機能も高まりました 音声入力をしている最中に― 話し方を変えずにコマンドを出しても 聞き分けてくれます TrueDepthカメラは よそを向けば無視してくれます タップやスワイプなどのジェスチャも 音声でできる 回転などの複雑なジェスチャも 事前に登録すれば使えます
そしてもちろん音声認識は デバイス上で完璧に動作します では実際にお見せしましょう (拍手) このデモでは 私のiPhoneに向かって話します
メッセージを開いて
クリス 今夜 夕食でも行こう ピザはどう?
ピザの絵文字
今夜を週末に変更
送信をタップ
取り消し 送信をタップ
(笑い声) 取り消し
送信をタップ
(拍手) マップを開いて
検索フィールドをタップ
サン・ペドロ広場
番号を表示
5番
グリッドを表示
15番 1番にズーム
4回 繰り返し
(拍手) 27番を上にスワイプ
グリッドを隠す シェアをタップ
クリス・アダムズをタップ
この辺なら店も多い
また後で
ピースの絵文字
おっと
取り消し
ピースの絵文字
送信をタップ
(笑い声)
取り消し
送信をタップ
(拍手) ホームに戻る おやすみ これが音声コントロールです
さて… (拍手) デベロッパとして音声コントロールを 使ってみましょう 先ほどの旅行アプリケーションで 試します
起きて Travelを開いて
サンフランシスコをタップ
サンフランシスコをタップ
名前を表示
問題発生です UI要素にタップしたくても― ラベルのアクセシビリティが 悪いため― 音声コントロールで言及できない 目が不自由な人が VoiceOverで読み上げてもらっても― このアプリケーションを使えません でも幸い簡単に直すことができます アプリケーションを アクセスしやすくしましょう
アクセシビリティ機能の大半は よく動作しますが 音声コントロールや スイッチコントロール VoiceOverは サポートが必要です どうするか? まず今みたいにする 自分でアプリケーションを 試してみてください 使える機能もあれば そうでないものもあります ユーザがどんな体験をするか 理解できます 修正したくなるでしょう 次にツールを使いましょう Xcodeには便利な機能があります アクセシビリティプロパティの編集や 視覚的なアクセシビリティ機能の プレビューもできます 開発中に自分の目で見られます 便利です 最後にアクセシビリティAPIを導入 アクセシビリティを実現するには これが一番です あらゆるユーザに― 歓迎の意を示すようなものです VoiceOverなどの機能が アプリケーションと統合 どのプラットフォームでも使えて 実装が簡単なのにパワフルです 洗練されたアプリケーションにも アクセスしやすくなります 当然 SwiftUIにも アクセシビリティサポートがあります 以上 アクセシビリティについてでした 次はプライバシーについて ケイティに詳しく話してもらいましょう ありがとうございました (拍手) ありがとう エリック プライバシーは永遠のテーマで 誰もが気にすべき問題です デザインに組み込み 製品の動作の基礎とすべきです デザインする際に― プライバシーを組み込むステップを 紹介します まずデバイスでの処理 ユーザデータを なるべくオンデバイスに保ってください データ収集も最小限で済みます データがなければ 悪用されたり盗まれたりしません
それから許可 データの取得や使用法について ユーザから許可をもらってください 収集の際は ランダムな識別子を使いましょう そしてスコープ範囲を アカウントからデバイス そしてセッションへと狭めます また 暗号化によって ユーザデータを守りましょう これらをデザインに適用すれば― 最高の機能と プライバシーを構築できるでしょう これらのステップを より簡単にするものを 2つ紹介します まず位置情報です
訪れる場所から生活が見えます 住まいや職場 通っている病院 ジムやバーに どれくらいの頻度で行くかなど そのため位置情報の共有を したくないユーザもいますが それだと大事な機能が活用できません そこで選択肢を追加しました “1回だけ許可”です 今回だけ位置情報を共有して― 次回は また確認されます
でもアプリケーションにとっては “常に許可”のほうが― 都合がいいですよね “使用中のみ”を選んだユーザに― バックグラウンドでの 位置情報の利用許可を求めます するとユーザには― 位置情報の許可が 求められていると警告が出ます
“常に許可”に変えれば そのまま位置情報を共有します
最後に位置情報へのアクセスに関して 透明性を高めます バックグラウンドでの 利用を許可した場合― アプリケーションが位置情報に アクセスした時刻を定期的に示します (拍手) これらの変更で― ユーザも より安心して 位置情報を共有できます
次はログインについてです
このようなボタンに 見覚えがありますよね 便利ですが 時にユーザの プライバシーが犠牲になります 皆さんのビジネスに関する情報も 余計な部分まで― 開示してしまうかもしれません そこで我々は提案します “Appleでサインイン”です (拍手) 追跡されることなく 簡単にサインインできます ユーザだけでなく 皆さんの会社のためにもなります ユーザのアプリケーションの使い方を 知る必要はないので― Appleは追跡しません
(拍手) 単純なAPIで サインインボタンを追加できます ユーザはタップと顔認証で アカウントを作り サインインできます
なぜこれが皆さんの役に立つのか?
信頼性が高まれば より積極的に使うユーザが増えます “Appleでサインイン”により― アプリケーションに 興味を持ったユーザの より多くが 実際に使い始めるでしょう
次にメールアドレスの認証です すでにAppleは― メールアドレス認証を行っています (歓声) (拍手) ユーザがプライベートのアドレスを 共有したくない場合は メールリレーサービスが使えます もしユーザがアカウント作成で アドレスを隠しても― 認証アカウントの 認証されたアドレスに メールが届きます
次にセキュリティです “Appleでサインイン”があれば パスワード管理上の問題が減らせます アカウントは 2ファクタ認証によって守られます
(拍手) セキュリティが向上します
不正対策に関しても 進歩した点がいくつかあります
ユーザの中には本物もいれば― そうでないユーザもいます botや不正作成されたアカウントを 排除するよう我々は努力しています そしてデベロッパの手助けもしたい
そこでReal user indicatorを 作りました 新規アカウントが本物のユーザか 追加認証が必要かを教えてくれます
どういう仕組みでしょう? このシステムは ユーザプライバシーを守るものです オンデバイスAIを使い― デバイスが通常の動作をしているか 判断します デバイスはAppleと情報を 共有せずに値を生成し 選択されたアカウント情報と組み合わせ 単一の値を抽出します それが皆さんの アプリケーションと共有されます
そうして得られた値を元に― そのユーザが本物か 確認が必要か判断することができます
各プラットフォームで利用可能です iOS iPadOS macOS watchOS tvOS ウェブ上でも使えるので― AndroidやWindowsのデバイスでも 有効です (拍手)
つまり新規ユーザに簡単に そして素早く対処できる― 2ファクタ認証と不正対策は どこにでも実装することができ そして何より プライバシーを尊重します 皆さんとユーザが 信用し合えるソリューションです
導入したデベロッパもいます 今後 増えることを楽しみにしています
以上が“Appleでサインイン”です (拍手)
プライバシーを守るためには― オンデバイスで データを扱うのがいいと言いました そのための技術を開発しました 機械学習について ビルから詳しく話してもらいます (拍手) ありがとう ケイティ (拍手)
機械学習は多くの アプリケーションでカギとなる技術です Appleではオンデバイス機械学習で― カメラやARKitなど 様々な機能を強化しています 最先端のシリコンのおかげです パワフルなCPUやGPU Neural EngineなどのMLプロセッサで 最高のリアルタイム体験を 提供できます Neural Engineは 畳み込みニューラルネットワークを― 多倍長のサポートやスマート コンピューティングで加速させます どういう意味か? 化け物だということです Neural Engineは 1秒当たり5兆回の演算が可能です 機械学習APIをこの上に構築しました 皆さんのアプリケーションも この性能の恩恵を最大限に受けられます そしてビジョンやNatural Language SpeechなどのAPIも進化しています 顔の検出や オブジェクトトラッキング 固有表現抽出などの機能を支えます 今年はさらに追加します では まず画像の顕著性から 見てみましょう ヒートマップで― 重要なオブジェクトや ユーザの注目先がハイライトされます
この技術は写真の編集で 画像の切り取りなどに使われます テキスト認識もリリースします ポスターや標識などの中から テキストを検索できます (拍手) そしてNotesに使われる ドキュメントカメラ機能も利用 Natural Languageでは 単語の埋め込みを使い― 類似した単語や文を識別します 画像検索で例えば “ミュージシャン”と検索すると― “エンターテイナー”や“歌手”という 代案を出します Speech APIは iPhone iPadとMacで― オンデバイスで利用でき 10言語をサポートします (拍手) 音声の顕著性認識機能で 発音や速度や抑揚も検出できます
機械学習を深めたい人は Core MLを利用しましょう 高パフォーマンスと プライバシーの保持を両立した― 機械学習モデルを デバイス上で実行可能 ニューラルネットワークなど 多くの機械学習モデルをサポートします ですが機械学習は 常に進化しています 今年はこれまで以上に 多くのレイヤを追加し― 最先端のニューラルネットワークを サポート 現在は100種類以上の モデルレイヤに対応しています Appleデバイスで 最新の機械学習モデルを動かせます ELMoやWaveNet 最新のものでBERTなど アプリケーションに 自然言語処理の革命をもたらします
しかし これは まだほんの一部でしかありません ユーザデータを元にオンデバイスの モデルを更新したい時があります 例えば顔認証で ユーザの顔が 髪形や帽子の変化などで 時と共に変わっていきます あるいはSiri Watch Faceで― 個人ユーザの行動に合わせて おすすめを常に進化し続けさせたい そのためにはオンデバイスの パーソナライズが必要です 今年はそれをCore MLに適用します
それにより 個々のユーザデータを元に― Core MLモデルをアップデートできます これで… (拍手) モデルがユーザ向けに パーソナライズされます バックグラウンドで ユーザのプライバシーを侵さずに― モデルをアップデートできるのです
Core MLは機械学習モデルの 最先端プラットフォームです Core MLモデルを 簡単に構築可能にしたのはCreate ML 短いコードでモデルが作れるよう 設計されたフレームワークです 今年はさらに進化させ― Mac上で コードを書かずモデルを作れる macOS Appになりました (拍手) 様々なモデルの テンプレートを選べます 異なるデータで複数のモデルを作り 各パラメータを定義できます リアルタイムで フィードバックも受けられます そして画像分類や― テキスト分析などの転移学習もできます データが少なくて済み― トレーニングされたモデルを使えるので 学習を速くします
モデルの実験やプレビューもできます 例えばiPhoneカメラを― Macと連係させ画像の予測ができます
あるいはMacのマイクで 音声分類モデルのテストもできます 盛りだくさんなので― 早く皆さんに 新しい機械学習の 可能性を知ってほしい 実際 数人のデベロッパが試し すばらしい結果が出ています その1つが とても面白かったので 共有します Lumen Digitalのベンが Noisy Bookを紹介してくれます (拍手) ありがとう ビル Lumen Digitalのベンです 新作アプリケーションの Noisy Bookを紹介します
ある物語をお話しします
昔々のお話です (音楽) 美しい草原に ジャックと 牛のデイジーが暮らしていました
デイジー (牛の鳴き声) 謎の男がくれた魔法の豆は― 空にも届く大きな豆の木へと育ちました (音楽) この話は有名ですね 違う話を試しましょう
突然 爆発する鶏と… (爆発音と鶏の鳴き声) 友人の黄金のトラが… (音楽) ヘリに乗り込んで (ヘリの音) 森の中に飛んでいきました (虫や鳥の鳴き声) そして もちろん― 幸せに暮らしましたとさ (イエーイ!) (音楽) “物語に出た動物の 鳴きマネはできる?” Noisy Bookが― 物語に出た動物の 鳴きマネをしてくれと言っています 牛が出ていたので試しましょう モー! 出てきましたね こんな大勢の前で動物の鳴きマネを するなんて信じられません でもすばらしい 音声分類モデルを使って― 鳴きマネを認識してくれました Noisy Bookは 古典的な物語だけでなく― 作り話にも対応できます すごいですね iOS 13のCore MLと Create MLの新しい機能のおかげで 完全にオンデバイスで 動くようになりました リアルタイムです 9万行のテキストでトレーニングした 自然言語モデルで動いています
新機能のおかげで 2年も取り組んでいたアイデアが― わずか数日で すばらしい形で実現しました 今年中にApp Storeに並ぶので ぜひ よろしく ありがとうございました (拍手) ありがとう ベン とても面白い うちの子は気に入るはず
Appleにおける機械学習の代表例は Siriです 世界一有名な AIアシスタントでしょう 毎月5億以上のデバイスで― 150億以上のリクエストを受けます 圧倒的な数字です Siriはどのデバイスでも使えて― 新しい方法で アプリケーションとやり取りができます AirPodsを着けて 部屋の向こうからSiriに話しかけるだけ 車の中でも同様です 何千ものアプリケーションとSiriが Siriショートカットにより一体化します Siriショートカットは 皆さんが作った アプリケーションの機能を― ユーザに簡単かつ 分かりやすい形で示します “Siriに追加”ボタンは ショートカットを見つけやすくし ユーザが音声機能を使う際の 指針にもなります 音声機能を使っての検索は 難しいものだからです もうユーザが自分でフレーズを 録音する必要はなく 表示される提案を タップするだけになりました (拍手) 今年 多かったリクエストは パラメータのサポートです そこで… (拍手) ショートカットを対話型にしました Siriへの質問を通じて アプリケーションを操作できるのです 例えば何の料理を作るか聞けば レシピのアプリケーションを呼び お気に入りのリストを出します リストからレシピを選ぶと 動画が再生されます
今年からショートカットAppは iOSとiPadOSにビルトインされ どのユーザも試すことができます そしてショートカットAppが アプリケーションのホーム画面になり
リクエストにより 自動化のサポートも追加しました (拍手) ユーザはショートカットを実行する トリガーを設定できる 選択肢はたくさんあります 時間で設定してもいい ワークアウトを始める時間や CarPlayにつなぐ時間などです
エディタでアプリケーションの アクションも設定でき パラメータを通じて アクション情報の受け渡しもできます これにより複数のアプリケーションの 動作と組み合わせ― 複数のステップにできます
例えば夕食に手っ取り早く 出前を取るとします ショートカットを使えば アプリケーションでお店を選び
料理を選んで
注文し 夕食がいつ届くか メッセージで知らされます このようにアプリケーションを 組み合わせれば― 日々の仕事を簡単にできます
もちろん… (拍手) ショートカットはiPhoneやiPad Apple WatchやHomePodで使えます 以上がSiriのアップデートです
(拍手) ではジェフが 拡張現実の最新情報を紹介します ありがとうございました (拍手) ありがとう ビル 拡張現実についてお話しします ARKitは実現が難しいものや 不可能なものを視覚化できます ARKitを発表後 アプリケーションは大きく進化しました ARは娯楽のためのものだと 思われがちですが 教育や事業 商業など 様々なものに活用されています とりわけ商業では 有効に使われています Home DepotやTargetやWayfairでは 多くの商品が― ARでプレビューできます
ARKitはUSDZファイルと Quick Lookを融合させた― 世界初となる一般市場向けの ARソリューションです Wayfairでは ARで商品を見た顧客の購入率が― 3倍以上になると言います
これは 商業におけるAR使用の すばらしい事例と言えます Apple Payが今秋 Quick Lookと統合されるため この勢いは続くでしょう これによって消費者は 例えばメガネなどを― ARで より手軽に試してから 購入できるのです
iOSとiPadOS用のARKitは― 世界最大のARプラットフォームです 何百万ものデバイスがあります しかし経験がないデベロッパは この機会を生かしたくても― 何から始めればいいか 迷うことでしょう そこで今回 発表するのは― ARアプリケーションの開発を 簡単にする3つの技術です ARKitと RealityKitとReality Composerです このフレームワークとツールで― ARアプリケーションを 迅速かつ楽に開発できます
まずReality Composer 3Dを作った経験がなくても 最高のAR体験を作り出せます 直感的で 分かりやすい操作性を実現し― Xcodeでシームレスに動作します 同僚のシュルディにReality Composerの デモをしてもらいます (拍手) ありがとう ジェフ 光栄です この旅行アプリケーションは ハワイの アクティビティを紹介しています ユーザがヘリツアーを選ぶと ヘリのコースを表示します ではARを使い よりツアーの雰囲気を伝えましょう AR体験を始めるためのボタンを 追加します 見てみましょう まずSwiftUIでボタンを作ります そして それをビューに追加します Reality Composerの 新規ファイルを開き― ドラッグ&ドロップで Xcodeのプロジェクトと統合します
Reality Composerから ARシーンをロードするには― RealityKitをインポート AR用に新しいビューを作成します 失礼 SwiftUIを使って 新しいビューを作成します AR体験を追加するのに― 必要なコードはこれだけです 次にReality Composerで― ARシーンを作成していきます プロジェクトを開き― ハワイのカスタムUSDZをロードします
いいですね ツアーの開始地点に印をつけます ビルトインのARライブラリを 使いましょう 何百もの 高品質な3Dコンテンツがあります
ここでは球を選びます
マテリアルを適用して 見た目を変えます
Reality Composerなら直感的に 3Dコンテンツを配置できます 他にも何かしましょう シーン開始時に フェードのエフェクトを追加します ビヘイビアパネルを開き― カスタムビヘイビアを作成 シーンが始まると動作します まず開始時に コンテンツを隠すアクションを― 追加します 次に 一定時間後コンテンツを 再び表示するアクションを追加 プレビューを見ましょう
ばっちりです MacでのAR開発は便利ですが― 実際にコンテンツがどう見えるかは 推測に頼ることになります その必要をなくすためmacOS iPadOS iOSに対応する― Reality Composerを作りました ではiPadでどう見えるのか ジェフに説明してもらいます ありがとう シュルディ これがiPadの Reality Composerです Mac版と同じ機能がありますので 先ほどのシーンを 仕上げていきましょう Adobe AIRで 画像を作成してもらったので それを入れます シュルディが作った球を 新しい画像に置き換えて 確認しましょう いいですね ヘリの画像です アニメーションも入れましょう 先ほど ビヘイビアを作りましたが そこにアクションを追加するだけです
USDZアニメーションを ファイル内に持ってきます いいですね プレビューを見ましょう
すばらしい ビヘイビアパネルを隠しますね
ARでプレビューしましょう iPadでできます
おっと もう一度
すばらしい 完璧です アニメーションを再生
ヘリが島を回っています これで うまくできました
これがiPadのReality Composerです macOSでもiPadOSでも iOSでも同じシームレスな体験が― 簡単に実現できます
(拍手) 次はRealityKit 3Dコンテンツのレンダリングと シミュレーション用に開発された 高性能なフレームワークです これがあれば2Dのアプリケーションを 簡単に3Dに拡張できます 最新の物理ベースレンダリングが可能 AppleのGPUに最適化された― データ駆動型 マルチスレッドレンダラです
ARKitのシーンに対する理解力が RealityKitに統合されたのも重要です ARKitが環境について学ぶと― それが自動的にARシーンに 同期されます
今朝 少し紹介しましたが 詳しく見てみましょう どうなっているでしょう? イメージベースドライティング 被写体ぶれ 被写界深度や カメラノイズなどのエフェクト そうした要素が仮想と現実の 境界をなくします RealityKitでは自動的にできます
ネイティブなSwift APIを通じて アクセス可能 Swiftの主要機能により コンパクトなコードを実現します
ARのコンセプトが 直接 統合されるので 例えばARアセットをロードし 直接アンカーにアタッチできます
Protocol Extensionで プロパティにも簡単にアクセスできます この光や影のようなコンポーネントへの 迅速なアクセスで ランタイムチェックが減らせます 強く型付けされたエンティティで 作業もできます ここではエンティティに AngularImpulseを指定しています 必要なコードはこれだけです
最後に紹介するのは新バージョンの ARフレームワークであるARKit 3 世界最高の ARプラットフォームを― さらなる新機能でパワフルにしました
ARKitでフロントとバックカメラを 同時使用したいという要望を― ARKit 3がかなえました だから… そう 同時に使えるんです (拍手) フェイストラッキングを使って AR体験の可能性が広がります 今朝 紹介したように― ARでのピープルオクルージョンは 非常に難しいものです 人が物の前を通るたびに 問題になります
その解決のために 機械学習アルゴリズムを使い― ピクセルの深度を算出します その情報から仮想オブジェクトを 正確にレンダリングします ピープルオクルージョンにより 新しい体験が可能になります (拍手) すばらしいでしょう 最後に仮想コンテンツと 人間の相互作用について ARKit 3では iPadかiPhoneのRGBカメラを使って― リアルタイムで モーションキャプチャが可能です 機械学習アルゴリズムで人の動きを 2Dの骨組みで捉え― その骨組みから 3Dを作り上げていきます 骨組みは2Dでも3Dでも表示できます 3Dには90以上の関節があり 非常に使いやすいです
以上が新技術です ARKit 3 RealityKit そしてReality Composer これらを使えば誰でも― 簡単に驚くようなAR体験を作れます
今日は楽しいアプリケーションも 用意しました SwiftStrikeです Tabletop版がサンプルとして 配布されています 3つの技術を使っていて― 皆さんのアプリケーション開発の いい出発点になると思います
(音楽) 楽しいですね (拍手) どうも (拍手) そしてMetalもARには欠かせません ジェレミーに Metalについて話してもらいます (拍手) ありがとう ジェフ
Metalはグラフィックスと演算の 高性能GPUプログラミングAPIです ビギナーでもベテランでも 簡単に使えます しかもOpenGLに比べ 最大100倍のドローコールをサポート まったく新しい グラフィックスを可能にします なぜならMetalはアプリケーションに GPUを制御する力を与えるからです これらのGPUは14億の Metal対応システムを動かします iPhoneやiPadからMac Proまで 全プラットフォームが Metalで動いています スムーズなUIから RealityKitの3Dレンダリング そして画像処理パイプラインまで Metalは どこにでも使われています 今年は3つの分野に注目しました より使いやすくなります 高性能なGPUコンピューティングを 実現し― デベロッパの高い要求に応えるため Metalを強化しました Metalの分かりやすい シェーディング言語のおかげで― GPUのデバッグやプロファイル パフォーマンス最適化などが行えます そしてさらなる改善点として XcodeのiOSシミュレータで 動作するようになりました (拍手) 我々もワクワクしています シミュレータでMetalを使えるため UIKitやマップなど― 様々なフレームワークの パフォーマンスが大幅に向上します これもすべてiOSシミュレータが Metalをサポートしたからです
メモリデバッガも追加しました アプリケーションがMetalに どれだけメモリを使っているか判定し ゲームやアプリケーションの グラフィックスを向上できます
主要GPUベンダーのハードウェアや 我々の各プラットフォームにおいて― ここ数年 Metalは進化を遂げ 多くのGPUの機能をサポートしています これまではデベロッパが 各ハードの複雑な機能を管理しましたが
それを3つのGPUファミリに 分けました 1つ目は― どのプラットフォームでも使える Metalの一般機能ファミリ 2つ目はiOSやiPadOS tvOS製品のGPUの― 特別な機能のファミリ そして3つ目は― MacのパワフルなGPUファミリ アプリケーションをiOSとmacOS間で 移動させるのが楽になります Metalは ゲームやグラフィックスの他に― GPUにコンピューティングの能力も 与えてくれます GPUコンピューティングとは何か? GPUは大量のピクセルを処理し― 複雑な演算を 並行して行うために作られました その処理能力は グラフィックスだけでなく― 様々なタスクに応用できると 分かったのです MetalはGPUによる汎用計算に必要な 要素を提供できるのです なじみのある C++のプログラミング言語 演算処理コマンドのエンコード コンパイラ兼デバッガ Metal Performance Shadersと 呼ばれるシェーダとカーネル このMPSライブラリの演算機能は― 様々なGPUやAppleのシステムに 最適化されています MetalはAppleのGPUにも 高度な演算を提供します コンピュートシェーダと フラグメント処理を統合し 単一レンダリングパスにすることも 可能です
そして今年はMetal Indirect Compute Encodingを発表 GPU上にGPUコンピューティング コマンドを構築し 演算の効率化と CPU処理の自由化を 実現します
Radeon Pro Vega IIもあり Mac Proは GPUコンピューティングの化け物です Metalを通じて なんと最大で 56兆フロップスが可能になります すごい数です 見てください 画面いっぱいだ (拍手) かなり多い (拍手) これだけのフロップスで何をするか? 動画の高度な演算処理 写真のクオリティの向上 機械学習モデルのトレーニングや レイトレーシングの高速化にも使えます レイトレーシングのサポートも進化 Bounding Volume HierarchyをCPUから GPUに移して動的シーンが可能になり 最適化されたMPSノイズ除去フィルタも 追加しました レイトレーシングではGPUに― 光や反射の物理プロパティを モデリングさせますが それは博士号の論文になるほど 複雑な演算です MetalによるGPUコンピューティングで レイトレーシングを行う例を 用意しました ラヴに実演してもらいましょう ラヴ (拍手) ありがとう ジェレミー Metalを使った レイトレーシングエンジンを Mac Proで試作しました
さて このオモチャの街は4Kの解像度で Metalが毎秒10億レイを― 処理しています 細かく見ていきましょう Metalの描画コマンドで― ジオメトリやマテリアルの情報を レンダリングします
次にMetalコンピューティングと MPSのRay Triangle交差APIに切り替え 大変な作業をさせます 例えば この画像のような アンビエントの計算です さらに物体間の光の反射を シミュレートします そして影や反射― さらには 反射の中の反射まで生成します 最後にMPSデノイザの― 最適化された演算カーネルを使って 見事な映像を作ります 従来のCPUレンダラなら 生成に1分以上かかりますが Metalなら30ミリ秒以下でできます 1000倍以上の速さです
だからデベロッパは… すごいですよね (拍手) プロのデベロッパは 物理的に正確な陰影を描画するため― Metalを使いツールをビルドできます ビルの影もきれいに再現されています
非常階段の影も
屋根に目を向けると― 屋根の緑色が 隣のビルに反射しています
見事ですね (拍手) もう1つの すばらしいエフェクトは 正確な反射です 例えば このバスの窓 太陽が動くと 窓に映っている影も動くのが― 分かると思います
ですがアニメーションのレイトレースは 計算コストが高くなります ジオメトリと ひもづいたBVHを アップデートするからです 幸いMetalコンピューティングと MPS APIで― 処理をGPUに移し 美しいアニメーションを実現できました 電車が走り去ります
以上がMac Proで― Metalコンピューティングを使い レイトレーシングをした例です ありがとうございました ジェレミーに返します (拍手) ありがとう ラヴ 今お見せしたのは 簡単なサンプルです サードパーティのデベロッパによる 優れたレイトレーシングはもっとすごい OTOYがMetalを使って構築した Octane Xを発表しました Appleプラットフォームと Metalに最適化された― 新しいパストレーシングエンジンです Maxonとの協力も楽しみです GPUアクセラレーションレンダラの Redshift最新版が― Mac ProとMetalに最適化されて 開発されます 高度なMetalコンピューティングと パワフルなハードウェアで Metalは最先端の コンテンツ作成ツールになりました 業界をリードするデベロッパも ツールやアプリケーションを― MetalそしてAppleプラットフォームに 最適化すると発表しています 例えばSerifは新しい Mac向けAffinity Photoで― Metalのグラフィックスと コンピューティングAPIを採用 画像処理エンジンを強化し パフォーマンスが10倍以上に 向上しました そしてMac Proでは マルチGPUによって― 50倍以上の パフォーマンスを達成しました こうしたパフォーマンスを 実現するため― 我々もGPU関連のパートナーと 緊密に協力しています AMDのInfinity Fabric Linkを サポートするため― MetalのピアグループAPIを追加 これは何か? 従来は複数のGPU間で 作業負荷を分担するにはPCIバスで― 大量のデータを 移動させる必要があった ですがMetalピアグループAPIを使えば 回り道せずに― Infinity Fabric Linkを通じて 直接移動できるため 効率がいい 今日は新しいMac Proと Metalコンピューティングを使い ピクセル処理を増やす方法を 見てきました さらに美しい映像を生み出すために Pro Display XDRを紹介します macOSのHDRソフトウェアで サポートされます AVFoundation APIで HDR動画をデコードしたり MetalでHDRコンテンツを レンダリングしたりできます 自分でHDRディスプレイを トーンマッピングしなくても 新しいディスプレイシステムに 任せましょう 同様のAPIを使えば― 既存のMacディスプレイでも より幅広い明るさが得られます 以上がアップデートです iOSのサポートとGPUファミリで Metalがより使いやすくなり 様々な新機能とハードウェアにより GPUコンピューティングも向上しました Metalは プロ仕様の コンテンツ作成ツールのための 最高のGPUプログラミングAPIに 成長しました ありがとうございました セバスチャンに返します (拍手) ありがとう ジェレミー Metalは最高ですよね 本当にすばらしい 今日はデベロッパの皆さんに 新たな技術を多く紹介しました ですが今日 見せたツールや― コアテクノロジーは あくまでも主要な一部に過ぎません まだまだお見せしたいものがあります この先 109回のセッションがあります それでも すべては網羅できません そこで今年は動画のみのセッションを 27本 追加しました もっと深く知りたい方は― この1週間で229回の ラボセッションもありますので ぜひ ふるってご参加ください
驚きに満ちた1週間を 楽しんでください ありがとうございました (拍手)
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。