はじめての tvOS クイック スタート ガイド

このガイドでは、最初の Xamarin.tvOS アプリとその開発ツールチェーンの作成について説明します。 また、UI コントロールをコードに公開する Xamarin Designer についても紹介し、Xamarin.tvOS アプリケーションをビルド、実行、テストする方法を示します。

警告

iOS Designer は、Visual Studio 2019 バージョン 16.8 および Visual Studio 2019 for Mac バージョン 8.8 で非推奨とされ、Visual Studio 2019 バージョン 16.9 および Visual Studio for Mac バージョン 8.9 から削除されています。 iOS のユーザー インターフェイスについては、Xcode の Interface Builder が実行されている Mac で直接ビルドすることをお勧めします。 詳細については、「Xcode を使用したユーザーインターフェイスの設計」を参照してください。

Apple は、tvOS 11 を搭載した Apple TV の第 5 世代である Apple TV 4K をリリースしました。

Apple TV プラットフォームは開発者向けに公開されているので、リッチなイマーシブ アプリを作成し、Apple TV に組み込まれた App Store を通じてリリースできます。

Xamarin.iOS 開発に慣れている場合は、tvOS への移行はとても簡単です。 ほとんどの API と機能は同じですが、多くの一般的な API (WebKit など) は使用できません。 さらに、Siri リモート コントローラーを使う場合、タッチスクリーン ベースの iOS デバイスには存在しないい設計上の課題がいくつか生じます。

このガイドでは、Xamarin アプリで tvOS を使う方法について説明します。 tvOS の詳細については、Apple の Apple TV 4K に向けた準備に関するドキュメントを参照してください。

概要

Xamarin.tvOS を使うと、Swift (または Objective-C) と Xcode で開発するときに使われるものと同じ OS X ライブラリとインターフェイス コントロールを使って、C# と .NET で完全にネイティブな Apple TV アプリを開発できます。

さらに、Xamarin.tvOS アプリは C# と .NET で書かれているため、共通のバックエンド コードを Xamarin.iOS、Xamarin.Android、Xamarin.Mac アプリと共有し、さらに各プラットフォーム上でネイティブ エクスペリエンスを提供できます。

この記事では、ボタンがクリックされた回数をカウントする基本的な Hello, tvOS アプリをビルドするプロセスを段階的に説明することで、Xamarin.tvOS と Visual Studio を使って Apple TV アプリを作成するために必要な重要な概念について説明します。

アプリの実行例

次の概念について説明します。

  • Visual Studio for Mac - Visual Studio for Mac の概要と、Visual Studio for Mac を使って Xamarin.tvOS アプリケーションを作成する方法。
  • Xamarin.tvOS アプリの構造 - Xamarin.tvOS アプリの構成要素。
  • ユーザー インターフェイスの作成 - Xamarin Designer for iOS を使ってユーザー インターフェイスを作成する方法。
  • 展開とテスト - tvOS Simulator と実際の tvOS ハードウェアでアプリを実行してテストする方法。

Visual Studio for Mac での新しい Xamarin.tvOS アプリの起動

前述のように、メイン画面に 1 つのボタンとラベルを追加する Hello-tvOS という Apple TV アプリを作成します。 ボタンがクリックされたとき、クリックされた回数がラベルに表示されます。

まず、以下の手順を実行しましょう。

  1. Visual Studio for Mac を起動します。

    Visual Studio for Mac

  2. 画面の左上隅にある [新しいソリューション] のリンクをクリックして、[新しいプロジェクト] ダイアログ ボックスを開きます。

  3. [tvOS]>[アプリ]>[単一ビュー アプリ] を選び、[次へ] ボタンをクリックします。

    単一ビュー アプリを選択する

  4. [アプリ名] に「Hello, tvOS」と入力し、[組織の識別子] を入力して [次へ] ボタンをクリックします。

    「Hello, tvOS」と入力する

  5. [プロジェクト名] に「Hello_tvOS」と入力し、[作成] ボタンをクリックします。

    HellotvOS と入力する

Visual Studio for Mac で新しい Xamarin.tvOS アプリが作成され、アプリケーションのソリューションに追加される既定のファイルが表示されます。

既定のファイル ビュー

Visual Studio for Mac でのソリューションプロジェクトの使い方は、Visual Studio とまったく同じです。 ソリューションは 1 つまたは複数のプロジェクトを保持できるコンテナーです。プロジェクトには、アプリケーション、サポート ライブラリ、テスト アプリケーションなどを含めることができます。この例では、ソリューションとアプリケーション プロジェクトの両方が Visual Studio for Mac で自動的に作成されています。

必要に応じて、共通の共有コードを含む 1 つ以上のコード ライブラリ プロジェクトを作成できます。 これらのライブラリ プロジェクトは、標準の .NET アプリケーションをビルドする場合と同様に、アプリケーション プロジェクトで使うことや、他の Xamarin.tvOS アプリ プロジェクト (またはコードの種類に応じて Xamarin.iOS、Xamarin.Android、Xamarin.Mac) と共有することができます。

Xamarin.tvOS アプリの構造

iOS プログラミングに慣れている場合は、多くの類似点があることに気付くでしょう。 実際のところ、tvOS 9 は iOS 9 のサブセットであるため、多くの概念が交差します。

プロジェクト内のファイルを見ていきましょう。

  • Main.cs – このファイルには、アプリのメイン エントリ ポイントが含まれています。 アプリが起動した時点では、実行される最初のクラスとメソッドが含まれています。
  • AppDelegate.cs - このファイルには、オペレーティング システムからのイベントをリッスンするメイン アプリケーション クラスが含まれています。
  • Info.plist - このファイルには、アプリケーション名、アイコンなどのアプリケーションのプロパティが含まれています。
  • ViewController.cs - これはメイン ウィンドウを表し、そのライフサイクルを制御するクラスです。
  • ViewController.designer.cs – このファイルには、メイン画面のユーザー インターフェイスとの統合のための組み込みコードが含まれています。
  • Main.storyboard - メイン ウィンドウの UI。 このファイルは、Xamarin Designer for iOS を使って作成および保守できます。

以下のセクションでは、これらのファイルの一部を簡単に見ていきます。 後ほど詳しく説明しますが、ここで基本を理解しておくことをお勧めします。

Main.cs

Main.cs ファイルには、新しい Xamarin.tvOS アプリ インスタンスを作成し、OS イベントを処理するクラスの名前を渡す静的 Main メソッドが含まれています。ここでは、AppDelegate クラスが該当します。

using UIKit;

namespace Hello_tvOS
{
    public class Application
    {
        // This is the main entry point of the application.
        static void Main (string[] args)
        {
            // if you want to use a different Application Delegate class from "AppDelegate"
            // you can specify it here.
            UIApplication.Main (args, null, "AppDelegate");
        }
    }
}

AppDelegate.cs

AppDelegate.cs ファイルには AppDelegate クラスが含まれています。このクラスは、ウィンドウの作成と OS イベントのリッスンを行います。

using Foundation;
using UIKit;

namespace Hello_tvOS
{
    // The UIApplicationDelegate for the application. This class is responsible for launching the
    // User Interface of the application, as well as listening (and optionally responding) to application events from iOS.
    [Register ("AppDelegate")]
    public class AppDelegate : UIApplicationDelegate
    {
        // class-level declarations

        public override UIWindow Window {
            get;
            set;
        }

        public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions)
        {
            // Override point for customization after application launch.
            // If not required for your application you can safely delete this method

            return true;
        }

        public override void OnResignActivation (UIApplication application)
        {
            // Invoked when the application is about to move from active to inactive state.
            // This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message)
            // or when the user quits the application and it begins the transition to the background state.
            // Games should use this method to pause the game.
        }

        public override void DidEnterBackground (UIApplication application)
        {
            // Use this method to release shared resources, save user data, invalidate timers and store the application state.
            // If your application supports background execution this method is called instead of WillTerminate when the user quits.
        }

        public override void WillEnterForeground (UIApplication application)
        {
            // Called as part of the transition from background to active state.
            // Here you can undo many of the changes made on entering the background.
        }

        public override void OnActivated (UIApplication application)
        {
            // Restart any tasks that were paused (or not yet started) while the application was inactive.
            // If the application was previously in the background, optionally refresh the user interface.
        }

        public override void WillTerminate (UIApplication application)
        {
            // Called when the application is about to terminate. Save data, if needed. See also DidEnterBackground.
        }
    }
}

iOS アプリケーションをビルドしたことがない場合、このコードはなじみがないかもしれませんが、とても簡単です。 重要な行について確認してみましょう。

まず、クラスレベルの変数宣言を見てみましょう。

public override UIWindow Window {
            get;
            set;
        }

Window プロパティは、メイン ウィンドウへのアクセスを提供します。 tvOS は、Model View Controller (MVC) というパターンを使います。 一般に、作成するすべてのウィンドウ (とウィンドウ内の他の多くのもの) にはコントローラーがあり、表示、新しいビュー (コントロール) の追加といったウィンドウのライフ サイクルを担います。

次に、FinishedLaunching メソッドがあります。 このメソッドは、アプリケーションのインスタンスが作成された後に実行されます。また、実際のアプリケーション ウィンドウの作成と、そこにビューを表示するプロセスの開始を担います。 このアプリはストーリーボードを使って UI を定義するため、ここで追加のコードは必要ありません。

このテンプレートには、DidEnterBackgroundWillEnterForeground など、他にも多くのメソッドが用意されています。 アプリケーション イベントがアプリで使われていない場合は、これらを削除しても問題ありません。

ViewController.cs

ViewController クラスはこのメイン ウィンドウのコントローラーです。 つまり、メイン ウィンドウのライフ サイクルに関する処理を担います。 これについては後ほど詳しく説明しますが、ここでは簡単に説明します。

using System;
using Foundation;
using UIKit;

namespace Hello_tvOS
{
    public partial class ViewController : UIViewController
    {
        public ViewController (IntPtr handle) : base (handle)
        {
        }

        public override void ViewDidLoad ()
        {
            base.ViewDidLoad ();
            // Perform any additional setup after loading the view, typically from a nib.
        }

        public override void DidReceiveMemoryWarning ()
        {
            base.DidReceiveMemoryWarning ();
            // Release any cached data, images, etc that aren't in use.
        }
    }
}

ViewController.Designer.cs

メイン ウィンドウ クラスのデザイナー ファイルは現時点では空ですが、iOS Designer を使ってユーザー インターフェイスを作成すると、Visual Studio for Mac によって自動的に設定されます。

using Foundation;

namespace HellotvOS
{
    [Register ("ViewController")]
    partial class ViewController
    {
        void ReleaseDesignerOutlets ()
        {
        }
    }
}

通常、デザイナー ファイルを気にすることはありません。これは Visual Studio for Mac によって自動的に管理され、アプリケーションのウィンドウまたはビューに追加するコントロールへのアクセスに必要な組み込みコードが用意されるからです。

Xamarin.tvOS アプリを作成し、そのコンポーネントの基本を理解したので、次は UI の作成を見てみましょう。

ユーザー インターフェイスの作成

Xamarin.tvOS アプリのユーザー インターフェイスを作成するために Xamarin Designer for iOS を使う必要はありません。UI は C# コードから直接作成できますが、この記事では説明しません。 わかりやすくするために、このチュートリアルの残りの部分では iOS Designer を使って UI を作成します。

UI の作成を開始するには、iOS Designer で編集できるようにソリューション エクスプローラーMain.storyboard ファイルをダブルクリックして開きます。

ソリューション エクスプローラーの Main.storyboard ファイル

これで Designer が起動し、次のようになります。

デザイナー

iOS Designer とそのしくみの詳細については、Xamarin Designer for iOS の概要に関するガイドを参照してください。

これで、Xamarin.tvOS アプリのデザイン領域にコントロールを追加できるようになります。

次の操作を行います。

  1. ツールボックスを見つけます。これはデザイン領域の右側にあります。

    ツールボックス

    ここで見つからない場合は、[表示] > [パッド] > [ツールボックス] に移動して表示します。

  2. [ラベル][ツールボックス] からデザイン領域にドラッグします。

    ツールボックスからラベルをドラッグする

  3. [プロパティ] パッド[タイトル] プロパティをクリックし、ボタンのタイトルを「Hello, tvOS」に変更し、[フォント サイズ]を「128」に設定します。

    タイトルを Hello, tvOS に設定し、フォント サイズを 128 に設定する

  4. すべての単語が表示されるようにラベルのサイズを変更し、ウィンドウの上部付近の中央に配置します。

    ラベルのサイズを変更して中央揃えする

  5. 意図したとおりに表示されるように、ラベルをその位置に固定する必要があります (画面サイズに関係なく)。 これを行うには、"T 字型ハンドル" が表示されるまでラベルをクリックします。

    T 型ハンドル

  6. ラベルを水平方向に制限するには、中央の四角形を選び、垂直方向の破線までドラッグします。

    中央の四角形を選択する

    ラベルがオレンジ色に変わります。

  7. ラベルの上部にある T ハンドルを選び、ウィンドウの上端までドラッグします。

    ハンドルをウィンドウの上端にドラッグする

  8. 次に、以下に示すように、幅をクリックしてから高さの "ボーン ハンドル" をクリックします。

    幅と高さのボーン ハンドル

    各 "ボーン ハンドル" をクリックすると、幅と高さの両方をそれぞれ選んで固定寸法を設定します。

  9. 完了すると、[制約] は [プロパティ] パッドの [レイアウト] タブの値と同じようになります。

    制約の例

  10. [ツールボックス] から [ボタン] をドラッグして、[ラベル] の下に配置します。

  11. [プロパティ] パッド[タイトル] プロパティをクリックし、ボタンのタイトルを「Click Me」に変更します。

    ボタンのタイトルを [ここをクリック] に変更する

  12. 上記の手順 5 から 8 を繰り返し、tvOS ウィンドウのボタンを固定します。 ただし、(手順 7 のように) T ハンドルをウィンドウの上部にドラッグするのではなく、ラベルの下部にドラッグします。

    ボタンを制約する

  13. 別のラベルをボタンの下にドラッグし、最初のラベルと同じ幅になるようにサイズを設定し、[配置][中央] に設定します。

    別のラベルをボタンの下にドラッグし、最初のラベルと同じ幅になるようにサイズを設定し、[配置] を [中央] に設定します

  14. 最初のラベルとボタンと同様に、このラベルを中央に設定し、次の位置とサイズにピン留めします。

    ラベルを場所とサイズについてピン留めする

  15. ユーザー インターフェイスに対する変更を保存します。

コントロールのサイズを変更したり移動したりすると、Apple TV のヒューマン インターフェイス ガイドラインに基づいた役立つスナップ ヒントがデザイナーに表示されます。 これらのガイドラインは、Apple TV ユーザーにとってなじみのある外観と操作感を備えた高品質のアプリケーションを作成するのに役立ちます。

[ドキュメント アウトライン] セクションを見ると、ユーザー インターフェイスを構成する要素のレイアウトと階層がどのように表示されるかがわかります。

[ドキュメント アウトライン] セクション

ここから、必要に応じて項目を選んで編集することや、UI 要素をドラッグして順序を変更することができます。 たとえば、UI 要素が別の要素で覆われている場合、その要素をリストの一番下にドラッグすると、その要素をウィンドウの一番上の項目にすることができます。

ユーザー インターフェイスを作成したので、次は UI 項目を公開して、Xamarin.tvOS が C# コードでそれらにアクセスし、操作できるようにする必要があります。

分離コード内のコントロールへのアクセス

iOS Designer に追加したコントロールにコードからアクセスするには、主に 2 つの方法があります。

  • コントロール上にイベント ハンドラーを作成する。
  • 後で参照できるように、コントロールに名前を付ける。

これらのいずれかが追加されると、ViewController.designer.cs 内の部分クラスが更新され、変更が反映されます。 これにより、View Controller のコントロールにアクセスできるようになります。

イベント ハンドラーの追加

このサンプル アプリケーションでは、ボタンがクリックされたときに "何か" が起こるようにするため、ボタン上の特定のイベントにイベント ハンドラーを追加する必要があります。 これを設定するには、以下の操作を行います。

  1. Xamarin iOS Designer で、View Controller のボタンを選びます。

  2. [プロパティ] パッドで、[イベント] タブを選びます。

    [イベント] タブ

  3. TouchUpInside イベントを見つけて、それに Clicked というイベント ハンドラーを指定します。

    TouchUpInside イベント

  4. Enter キーを押すと、ViewController.cs ファイルが開き、コード内のイベント ハンドラーの場所が提案されます。 キーボードの方向キーを使って場所を設定します。

    場所の設定

  5. これにより、次のような部分メソッドが作成されます。

    部分メソッド

これで、ボタンが機能するようにコードを追加する準備が整いました。

コントロールの名前付け

ボタンをクリックすると、クリック数に基づいてラベルが更新されます。 これを行うには、コードでラベルにアクセスする必要があります。 これを行うには、名前を付けます。 次の操作を行います。

  1. [ストーリーボード] を開き、View Controller の下部にある [ラベル] を選びます。

  2. [プロパティ] パッドで、[ウィジェット] タブを選びます。

    [ウィジェット] タブを選択する

  3. [ID] > [名前]ClickedLabel を追加します。

    ClickedLabel を設定する

これで、ラベルを更新する準備が整いました。

コントロールへのアクセス方法

ソリューション エクスプローラーViewController.designer.cs を選ぶと、ClickedLabel ラベルと Clicked イベント ハンドラーが C# の OutletAction にどのようにマップされているかを確認できます。

Outlet と Action

また、ViewController.designer.cs は部分クラスであるため、Visual Studio for Mac で ViewController.cs を変更する必要がないことにも注目してください。そのようなことをすると、クラスに加えた変更は上書きされます。

この方法で UI 要素を公開すると、View Controller でアクセスできるようになります。

通常、ViewController.designer.cs を自分で開く必要はありません。ここでは教育目的でのみ提示しています。

コードの記述

ユーザー インターフェイスを作成し、その UI 要素を OutletAction を介してコードに公開したので、いよいよプログラムに機能を持たせるコードを書く準備が整いました。

このアプリケーションでは、最初のボタンがクリックされるたびに、ボタンがクリックされた回数を示すラベルを更新します。 これを行うには、Solution PadViewController.cs ファイルをダブルクリックして編集用に開く必要があります。

Solution Pad

まず、ViewController クラスにクラスレベル変数を作成して、発生したクリックの回数を追跡する必要があります。 クラス定義を編集し、次のようにします。

using System;
using Foundation;
using UIKit;

namespace Hello_tvOS
{
    public partial class ViewController : UIViewController
    {
        private int numberOfTimesClicked = 0;
        ...

次に、同じクラス (ViewController) で、ViewDidLoad メソッドをオーバーライドし、ラベルの初期メッセージを設定するコードを追加する必要があります。

public override void ViewDidLoad ()
{
    base.ViewDidLoad ();

    // Set the initial value for the label
    ClickedLabel.Text = "Button has not been clicked yet.";
}

(Initialize などの別のメソッドではなく) ViewDidLoad を使う必要があります。ViewDidLoad は、OS が読み込まれ、.storyboard ファイルからユーザー インターフェイスのインスタンスが作成された "後" に呼び出されるためです。 .storyboard ファイルが完全に読み込まれ、インスタンスが作成される前にラベル コントロールにアクセスしようとすると、ラベル コントロールがまだ作成されていないため、NullReferenceException エラーが発生します。

次に、ボタンをクリックしたユーザーに応答するコードを追加する必要があります。 作成した部分クラスに以下を追加します。

partial void Clicked (UIButton sender)
{
    ClickedLabel.Text = string.Format("The button has been clicked {0} time{1}.", ++numberOfTimesClicked, (numberOfTimesClicked

このコードは、ユーザーがボタンをクリックするたびに呼び出されます。

すべての準備ができたので、Xamarin.tvOS アプリケーションをビルドしてテストする準備ができました。

アプリケーションのテスト

アプリケーションをビルドして実行し、期待どおりに動作することを確認します。 1 つのステップですべてをビルドして実行することや、実行せずビルドすることができます。

アプリケーションをビルドするたびに、必要なビルドの種類を選択できます。

  • デバッグ - デバッグ ビルドは、追加のメタデータを含む `` (アプリケーション) ファイルにコンパイルされます。これを使うと、アプリケーションの実行中に発生していることをデバッグできます。
  • リリース - リリース ビルドでも `` ファイルが作成されますが、デバッグ情報は含まれていないためサイズが小さく、高速に実行されます。

Visual Studio for Mac 画面の左上隅にある構成セレクターからビルドの種類を選択できます。

ビルドの種類を選択する

アプリケーションのビルド

この例では、デバッグ ビルドのみが必要なので、[デバッグ] が選ばれていることを確認しましょう。 まず、⌘ + B キーを押すか、[ビルド] メニューの [すべてビルド] を選んでアプリケーションをビルドしましょう。

エラーがなければ、Visual Studio for Mac のステータス バーに "ビルドが成功しました" というメッセージが表示されます。 エラーが発生した場合は、プロジェクトを確認し、手順に正しく従っていることを確認します。 まず、コード (Xcode と Visual Studio for Mac の両方) がチュートリアルのコードと一致していることを確認します。

アプリケーションの実行

アプリケーションを実行するには、次の 3 つのオプションがあります。

  • ⌘+Enter を押します。
  • [実行] メニューの [デバッグ] を選択します。
  • Visual Studio for Mac ツール バー (ソリューション エクスプローラーのすぐ上) の [再生] ボタンをクリックします。

アプリケーションがビルドされ (まだビルドされていない場合)、デバッグ モードで開始され、tvOS Simulator が起動し、アプリが起動してメイン インターフェイス ウィンドウが表示されます。

サンプル アプリのホーム画面

[ハードウェア] メニューから [Apple TV リモート コントローラーの表示] を選ぶと、シミュレーターを制御できるようになります。

[Apple TV Remote の表示] を選択する

シミュレーターのリモート コントローラーを使ってボタンを数回クリックすると、その回数でラベルが更新されます。

カウントが更新されたラベル

お疲れさまでした。 ここでは多くの基礎について説明しましたが、このチュートリアルに最初から最後まで従った場合は、Xamarin.tvOS アプリのコンポーネントとその作成に使われるツールについてしっかり理解できたはずです。

次の場所

Apple TV アプリの開発には、ユーザーと (ユーザーの手の届かない部屋の向こう側にある) インターフェイスの間に切断があり、tvOS によって課せられるアプリのサイズとストレージの制限があるため、いくつかの課題があります。

そのため、Xamarin.tvOS アプリの設計に進む前に、次のドキュメントを読むことを強くお勧めします。

  • tvOS 9 の概要 - この記事では、Xamarin.tvOS 開発者向けに tvOS 9 で使用できる API と機能の新しいものと変更されたものすべてについて説明します。
  • ナビゲーションとフォーカスの操作 - Xamarin.tvOS アプリのユーザーは、iOS のようにデバイスの画面上の画像をタップしてインターフェイスを直接操作するのではなく、Siri リモート コントローラーを使って部屋の向こう側から間接的に操作します。 この記事では、フォーカスの概念と、それを使って Xamarin.tvOS アプリのユーザー インターフェイスでナビゲーションを処理する方法について説明しています。
  • Siri リモート コントローラーと Bluetooth コントローラー - ユーザーが Apple TV および Xamarin.tvOS アプリを操作する主な方法は、付属の Siri リモート コントローラーを使うことです。 アプリがゲームの場合は、必要に応じてサード パーティの Made For iOS (MFI) Bluetooth ゲーム コントローラーのサポートをアプリに組み込むこともできます。 この記事では、Xamarin.tvOS アプリでの新しい Siri リモート コントローラーと Bluetooth ゲーム コントローラーのサポートについて説明しています。
  • リソースとデータ ストレージ - iOS デバイスとは異なり、新しい Apple TV は tvOS アプリ用の永続的なローカル ストレージを提供しません。 そのため、Xamarin.tvOS アプリで情報 (ユーザーの基本設定など) を保持する必要がある場合は、そのデータを iCloud に保存して取得する必要があります。 この記事では、Xamarin.tvOS アプリでのリソースと永続データ ストレージの操作について説明しています。
  • アイコンと画像の操作 - 魅力的なアイコンと画像の作成は、Apple TV アプリのイマーシブ ユーザー エクスペリエンスを開発する上で重要な部分です。 このガイドでは、Xamarin.tvOS アプリに必要なグラフィック資産を作成して組み込むために必要な手順について説明しています。
  • ユーザー インターフェイス - Xamarin.tvOS を使うときのユーザー インターフェイス (UI) コントロール、Xcode の Interface Builder の使用、UX デザインの原則など、一般的なユーザー エクスペリエンス (UX) について説明します。
  • 展開とテスト - このセクションでは、アプリのテストに使われるトピックと配布方法について説明しています。 以下のトピックでは、デバッグに使用されるツール、テスターへの展開、Apple TV App Store にアプリケーションを発行する方法などを説明しています。

Xamarin.tvOS の操作時に問題が発生した場合、既知の問題と解決策の一覧については、トラブルシューティングのドキュメントを参照してください。

まとめ

この記事では、簡単な Hello, tvOS アプリを作成することで、Visual Studio for Mac を使った tvOS 用アプリを開発するためのクイック スタートを提供しました。 tvOS のデバイス プロビジョニング、インターフェイスの作成、tvOS 向けのコーディング、tvOS シミュレーターでのテストの基本について説明しました。