ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
Apple Silicon MacでiPadやiPhone Appを利用する
Apple Silicon MacはipadやiPhoneのAppをそのまま実行でき、AppはMac App StoreからMacユーザーに提供されます。Apple Silicon MacでiPad 、iPhone Appがどう実行されるか、またAppが見つけられやすくなる要因を説明します。MacであなたのAppをテストする方法、Appの配信オプションについても説明します。
リソース
関連ビデオ
WWDC21
WWDC20
WWDC19
-
ダウンロード
こんにちは WWDCへようこそ “Apple Silicon Macで iPadやiPhoneアプリケーションを利用する” セッションを始めます 私はジェイソン・ビーバー 後ほどジェームス・スニーと パトリック・ハイネンが加わる予定です Keynoteに記載されている または一般教書演説でも述べたように Apple Silicon上で動作するBig Surでは iOSアプリを再コンパイルすることなく そのままMac上で実行できます Macは開発に適した ロバストなプラットフォームで 多種多様なアプリが使用できます 強力なデスクトップアプリケーションから ウェブベースのエクスペリエンスや グラフィック重視のゲームまで 様々なものが含まれます これらのエクスペリエンスはすべて 専用のUIフレームワークで動作します macOS Catalinaには Mac Catalystを使用して Mac対応のiOSアプリケーションを 作成する能力が追加されています Mac CatalystによりUIKitは Mac上の他のUIフレームワークへの native peerとなり それによりiOSアプリケーションを Mac上に持ち込んで ファーストクラス体験を実現できます 詳しくは昨年のセッション― “Introducing iPad Apps for Mac”を ご覧ください Mac CatalystはmacOS SDKを 使用してアプリを構築することで アプリケーションをカスタマイズして 最適化する能力を提供し Macの能力を最大限に引き出すことができます
macOS Big Surでは 既存のiOSアプリケーションを Apple SiliconベースのMac上で そのまま実行できるようにするMac Catalyst インフラストラクチャーに力を注いでいます この“そのまま”というのは まさに言葉どおりの意味です MacのユーザーはiOS App Store上で すでに利用可能になっているアプリケーションを Mac App Storeを通して購入または ダウンロードすることができます そのバイナリーはまったく同じものです
これらのアプリケーションは Mac Catalystで使用しているものと同じ― 基盤インフラストラクチャーを使用しています 同じ統一フレームワークと 同じiOSフレームワークを 持ち込んでMacと統合しているので iPadやiPhoneのアプリケーションは 膨大な量のシステム挙動を 自動的に取り込んで Mac上でも普段と変わりなく動作できます
ただしそれらのアプリケーションは Macが提供したい― 様々なものにアクセスすることができません iOSアプリケーションを Macでさらに先に押し進めたい場合は Xcodeの該当するスイッチをチェックして Mac Catalystバージョンを作成します これによりアプリケーションの挙動を カスタマイズできるようになるとともに Apple Siliconが動作しているものに限らず すべてのMac上に アプリケーションを配布できるようになります アプリケーションをMac App Storeで 利用できるようにするには Macと互換である必要があります そのアプリが利用できないシンボルや フレームワークに依存していないこと 既存のフレームワークに備わっていない 機能に依存していないこと そしてMacに存在しないハードウェア能力に 依存していないことが必要条件です
互換のiOSアプリケーションは 自動的にMac App Storeで 利用可能となりますが App Store Connectで アプリの可用性を管理できます すでにMacアプリケーションが用意されているか その出荷が予定されている場合 またはアプリケーションがMac上では 意味を成さない場合には 自社のiOSアプリケーションをMac App Storeで 利用可能にしないことも選択できます この点についてはパトリックが 後ほど詳しく話す予定です
iPadとiPhoneの既存のアプリケーションの ほとんどはMac OSでも問題なく動作しますが 環境面でいくつか相違点があることに 注意する必要があります
それらは3つのカテゴリーに分類されます ハードウェアの相違点 UIの相違点 そしてシステムソフトウェアの相違点です ハードウェアの相違点から話しましょう iOSは直接的なMulti-Touchの 相互作用モデルを基にして構築されていますが Mac OSは間接的なカーソルベースの 相互作用モデルを基に構築されています インフラストラクチャーは多数のMulti-Touch ジェスチャーを自動的にマッピングしますが アプリケーションが カスタムタッチ処理を使用している場合 そのアプリケーションにMacとの 互換性があるかをテストする必要があります アプリケーションが カスタムタッチ処理の代替手段として キーボード入力を サポートしている場合 アプリケーションとMacとの 互換性が向上するだけでなく iOSのエクスペリエンス向上にも役立ちます
iOSデバイスにはMacでは利用できない 様々なセンサーが備わっています 加速度計 ジャイロスコープ 磁力計 深度感知カメラやGPSなどです 適切なセンサーが存在していることを コード内で動的に確認することにより アプリケーションがiOSデバイスの 全域で互換であるだけでなく Macとも互換であることを保証できます センサーに依存している全APIが Macで機能しないとは限りません 例えばMacには GPS受信機は内蔵されていませんが コアロケーションをサポートして アプリケーションに位置情報を提供できます ただし精度はGPSより劣ります 通常iOSデバイスには 前面と背面にカメラがあります 一方Macではこのラップトップや 一部のデスクトップなどのように 前面にカメラが内蔵されていたり 外部のディスプレイに 内蔵されている場合や USBでプラグインしている場合もあります iOSアプリケーションはこれらすべての構成には 対応しきれていないかもしれませんが すべてのAVキャプチャデバイスを 列挙する代わりに AVCaptureDeviceDiscoverySessionを 使用すれば アプリケーションは ニーズに最も適したカメラに 確実にアクセスできます 今度はUIの相違点について話しましょう
以前にも話したように iOSアプリケーションはMac OSから 自動的に大量のシステム挙動を取り込みます そのため見た目や動作が iOSデバイスとは異なるものになります 例えばアラートとポップアップは Macでは別の位置に 表示される可能性があり “Open and Save”パネルは 別々のウインドウに表示されます ここで重要なのは アプリケーションは システムUIのロケーションなどの UIに関する前提条件を 一切ハードコーディングしていないことです Macで動作させる際 それらの前提条件が 正しくない可能性があるからです 通常Mac OSではユーザーは ウインドウをリサイズできます iPadアプリケーションがiOSの マルチタスキングをサポートしているなら Mac OSでもリサイズが可能です これはiOSマルチタスキングが サポートする少数の固定サイズだけでなく 様々なサイズで 動作させられることを意味します Auto Layoutを使用すれば どんなサイズでもアプリケーションを 正しく動作させることができます ウインドウのリサイズは Mac OSにも依存しています アプリケーションレイアウトの 性能を最適化すれば Macのリサイズ エクスペリエンスも向上し iOSでマルチタスキングを使用する場合の アプリケーションの反応も向上します iPadアプリケーションがマルチタスキングを サポートしていないか またはiPhoneアプリケーションを 使用している場合 ウインドウは固定サイズで動作し リサイズすることはできません 次はシステムソフトウェアの 相違点についてです iOSではアプリケーションは 標準の位置に留まっていますが Mac OSではユーザーは 好きな場所にアプリを移動できます さらにデータコンテナーの位置も Macでは異なります Foundation APIを使用して ファイルシステム内のアイテムを探す場合 ユーザーにはすべてが透過的であり Macで実行するときも 正しい挙動を示します
一部のシステムAPIはアプリケーションが Macで実行されていることを明らかにします 例えば デバイスまたはサーバーのいずれかで システムの一部が ハードコーディングされている場合 想定されているのがiPhone iPod TouchまたはiPadのみであれば そのiOSアプリケーションを Macで実行するとおそらく問題が発生します ソフトウェアが予期しない値を適切に 処理できるようにして何らかのデフォルト挙動に フォールバックさせる方が確実でしょう その他のデバイスプロパティ 例えば画面サイズなどは Macの間でも様々な違いがあるので アプリケーションは iOSデバイスの画面解像度の いずれかに合わせて 前提条件を定めるべきではありません では次は同僚のジェームスが Mac上でのiOSアプリケーションの テストとデバッグについてお話しします
ありがとう ジェイソン iPhoneやiPadのアプリケーションを Apple Silicon Mac上で実行できるようになれば 全く新しいユーザーを獲得できます さらにmacOS Big Surにより アップルはすべてのハードワークを 最小限の労力で 達成できるようにしました さて皆さんはApple Silicon Macでの アプリケーション動作をご覧になりたいでしょう ジェイソンが述べたようにアプリケーションが 動作対象のデバイスについて設定した前提条件が Macでも成立するとは限りません ここで目標にしているのは 主だったUIの不具合や想定外の 挙動を示すことなく アプリを正しく機能させることです 朗報としてはiPhoneやiPadの アプリケーションをそのままMacに持ち込んで デバッグテストやプロファイリングを 行う際のすばらしいサポートを Xcodeが提供してくれることです まるでシミュレーターかiOSデバイスで 動作させているかのように 早速 お見せしましょう
今ここにiOSアプリケーションのプロジェクトを Xcodeでオープンしています 過去のセッションでお気づきの方も いると思いますが
Apple Silicon Macで iOSアプリケーションを実行するために 必要なことは 新しいrun destinationの選択です “My Mac, Designed for iPad”とあります 先に進んで このアプリのビルドと実行を行います
ここでの注意はこのアプリケーションが iOS SDKに対してビルドされているため エッジケースは制限されます これを実行するためにソースを 変更する必要はないということです このiOSアプリケーションはApple Silicon Mac上で そのままで動作しています これはiOS SDKに対してビルドされたもので シミュレーターでは動作させていません 様々なビューをあれこれクリックしながら アプリがiPhoneの場合と 同じように動くかを検証します
iPhoneやiPadのアプリケーションの実行とともに Xcodeの優れたデバッグとプロファイリングの 機能についても解説します
アプリケーションの実行中にXcodeの デバッグゲージを確認することで 性能の概要を表示させることができます
CPU時間やメモリー使用量に加え ネットワークおよびディスクの すべての入出力も確認できます
さらに何をしているかを 詳しく確認したい場合には 一時停止するかブレークポイントを設定して iPhoneやiPad上にいるかのように Xcodeのデバッグ機能の1つを使用できます 例えばデバッガの一般的な使い方に ユーザーのアクションに対応した ステートの調査があります このiOSアプリで デバッガが どのように機能するかをお見せします
このIBActionメソッドに ブレークポイントを設定します さらにアプリケーションの“Useful”ボタンを クリックしてそれをトリガします
ご覧のように このブレークポイントのトリガに応答して Xcodeは デバッグインターフェイスを表示します デバッガでは 変数の検査や式の評価などの 様々な機能を 望むように使用できます さらに特定の問題を調査する場合は MemoryおよびViewデバッガを 調べることができます アプリケーションの性能について調べたり トラッキングしたい場合は Instrumentを使用できます 最後に皆さんはテストについても 知りたいでしょう テストはソフトウェアが 予期したとおりの挙動を示すかを 検証するのに非常に適した方法です ご覧いただきましょう
Xcodeを使用してiOSアプリケーションの XCTestユニットテストを そのまま Apple Silicon Macで実行します Test Navigatorの “Run”をクリックして テストを実行します
テストもiOS SDKに対してビルドされており そのままで実行されます
すばらしい テストは合格です
XcodeはiPhoneやiPadのアプリケーションの デバッグテストやプロファイリングを Apple Silicon Macで そのままで行うのに役立つツールを提供します 次は パトリックが― iPhoneやiPadアプリケーションの Macへの配布についてお話しします
iPadやiPhoneのアプリケーションが どのように機能するかは理解できたので 次は実際にユーザーやチームメンバーが どのようにMacで実行するかについて 話そうと思います
すばらしいのはiOSアプリケーションの Macへの配布は iPadやiPhoneで行われているのと まったく同じように機能します アプリケーションがサポートする デバイスのファミリーにMacを追加すると すべてのワークフローが シームレスに拡張されます
Macで利用可能にするために やらなければならないのは 新しいDeveloper Agreementに サインすることです 今年の後半には互換アプリケーションが Mac App Storeで利用できるようになります
新しい提出に関しては Macへの配布は 既存の開発ワークフローに シームレスに適合します
XcodeのOrganizerからアプリケーションを Macで動かすための準備を行います App Store Connectを通して エクスポートするか またはアドホックやエンタープライズ 開発などの ローカル配布オプションを使用して iPadやiPhoneのアプリケーションのバージョンを チームのメンバーに直接配布することができます App Store機能の恩恵を受けている場合 それらはアプリケーションを Macで動作させる時にすべてサポートされます ユーザーはMacで動作させる場合でも iPadやiPhoneアプリに関連する アプリ内課金や加入契約に 完全にアクセスできますし StoreKitフレームワークを使用して 新しく購入することもできます アプリケーションが オンデマンドリソースを使用して ダウンロードしたコンテンツを 動的に管理している場合 Macで動作させる時でも エクスペリエンスは同じです 実際にはすべてのApp Store機能は iPadやiPhone使用時と同じように機能します
またApple Silicon Macへの 展開で機能するように App Thinningも拡張されています インストールエクスペリエンスを効率化するため アプリケーションのコンテンツはMacでの動作に 最適なものが自動的に選択され iPadやiPhoneにはうまく適合していても Macに適切でないリソースは除外されます 実際App Thinningに関しては 新しいMacは別のかなり高性能な iPadか何かのように見えるでしょう
このワークフローをサポートするため XcodeにはOrganizerの エクスポートワークフローに 新たにvirtual thinning destinationが 追加されました Macデバイスを使用して あらゆるApple Silicon Mac上での 動作またはテストに最適化された インストールバリアントを生成します
Macユーザーは装置や リムーバブルストレージの間で シームレスにアプリを移動することに 慣れていることに注意してください 必要なのは単一のアプリバリアントと thinningターゲットだけです
アプリケーションが開発またはアドホック 配布を利用している場合 iPhoneやiPadの場合と同じように機能します うれしいニュースとしては 他のiOSデバイスで行っていたように エクスポートすることでiPhoneやiPadの アプリケーションをMacで取得できます Over the Airインストールを 利用している場合 Macへの配布で 変更を行う必要はありません Macは適切にプロビジョニングされた Macにダウンロードして 実行する適切なバリアントを OTAマニフェストから自動的に選択します
管理デバイスに関連するシナリオについては iPadやiPhoneのアプリケーションは 他のデバイスと同じように登録された― Macにプッシュすることができます
Macへの配布は とても簡単ですが Macは性質の異なるプラットフォームであり 展開する場合に考慮すべき キーポイントがいくつかあります
TestFlightはMacでは利用できないので 最終提出を行う前の いずれかのプレリリース配布で テストの代替手段として アドホック配布― または開発配布を 使用する必要があります さらにジェイソンが触れましたが― iPadやiPhoneのアプリケーションには Macのランタイム互換性に関する制約があります
Macでは利用できない シンボルやフレームワークに関する― ハードへの依存があれば Xcodeがその旨を伝えます しかしユーザーエクスペリエンスを 評価するため Apple Silicon Macのハードウェア上で アプリケーションをテストするのは良い考えです
Mac App Storeにアプリケーションを展開するのは かなり簡単になりました MacでiOSアプリケーションを使用した時 顧客へ最高のエクスペリエンスを届けるため App Store Connectは夏の後半に テストと検証を支援するツールを提供します 当然のことですがアプリケーションを Mac App Storeで利用可能にするかは 選択できます では管理について話しましょう
Developer Agreementにサインすれば すべての互換アプリケーションは 自動的にMacで利用可能になります App Store Connectを使用すれば アプリケーションのステータスを確認できます
App Store Connectの “Pricing and Availability”ページで アプリケーションをMac App Storeで 配布可能にするかを選択できます Macで利用できないようにしたい場合は ボックスのチェックを外すだけです するとMac App Storeで販売されなくなります 一度 利用不可にすると そのアプリケーションが再び利用可能になるまで 既存のバージョンの 再ダウンロードもできなくなります
ご理解いただけたでしょうか アプリケーションは今や変更を加えずに そのままApple Silicon Macで実行できます ユーザーはアプリケーションをデスクトップで 実行できる能力を気に入るでしょう ほとんどの機能はそのまま動作し Macユーザーの エクスペリエンスに合わせて動作します ビルドとデバッグもよく知っている 使い慣れたツールのように動きます 必要なのはアプリケーションが Macでもうまく動作するかを確認するために Apple Silicon Macsでテストすることです それだけで新規ユーザーが まもなくMac App Storeで あなたのアプリケーションを 楽しめるようになります
ご視聴ありがとうございました
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。