XCode 12.5 日本語化計画:Swift Tutorials
macOS アプリの作成
watchOS 用の Landmarks アプリのバージョンを作成したら、次はもっと大きな目標を設定します。つまり、Landmarks を Mac に持ち込むことです。 iOS、watchOS、および macOS 用の SwiftUI アプリをビルドする経験を完成させるために、これまでに学んだことをすべて活用します。
まず、macOS ターゲットをプロジェクトに追加し、以前に作成したビューとデータを再利用します。基盤が整ったら、macOS に合わせた新しいビューをいくつか追加し、プラットフォーム間でより適切に動作するように他のビューを変更します。
手順に従ってこのプロジェクトをビルドするか、完成したプロジェクトをダウンロードして自分で調べてください。
30min予想される時間 | プロジェクト ファイル | Xcode 12 |
セクション 1
プロジェクトに macOS ターゲットを追加することから始めます。Xcode は、アプリのビルドと実行に必要なスキームとともに、macOS アプリの新しいグループとスターターファイルのセットを追加します。次に、いくつかの既存のファイルを新しいターゲットに追加します。
アプリをプレビューして実行できるようにするには、Mac で macOS BigSur が実行されていることを確認してください。
ステップ 1
[File(ファイル)] > [New(新規)] >[Target(ターゲット)] を選択します。テンプレートシートが表示されたら、macOS タブを選択し、App(アプリ) テンプレートを選択して、[Next(次へ)] をクリックします。
このテンプレートは、新しい macOS アプリターゲットをプロジェクトに追加します。
ステップ 2
シートに、Product Name(製品名) として MacLandmarks を入力します。インターフェイスを SwiftUI に、ライフサイクルを SwiftUI App に、言語を Swift に設定し、[Finish(完了)] をクリックします。
ステップ 3
スキームを MacLandmarks > My Mac に設定します。
スキームを My Mac に設定すると、macOS アプリをプレビューし、ビルドし、また実行できます。チュートリアルを進めるときは、他のスキームを使用して、他のターゲットが共有ファイルの変更にどのように応答するかを監視して下さい。
ステップ 4
MacLandmarks グループで、ContentView.swift を選択し、Canvas を開き、Resume をクリックしてプレビューを表示します。
SwiftUI は、iOS アプリの場合と同様に、デフォルトのメインビューとそのプレビュープロバイダーの両方を提供し、アプリのメインウィンドウをプレビューできるようにします。
ステップ 5
プロジェクトナビゲータで、MacLandmarks グループから MacLandmarksApp.swift ファイルを削除します。求められたら、[Move To Trash(ゴミ箱に移動)] を選択します。
watchOS アプリと同様に、既存のアプリ構造を再利用するため、デフォルトのアプリ構造は必要ありません。
次に、iOS アプリからのビュー、モデル、リソースファイルを macOS ターゲットと共有します。
ステップ 6
プロジェクトナビゲータで、 LandmarksApp.swift, LandmarkList.swift, LandmarkRow.swift, CircleImage.swift, MapView.swift, および FavoriteButton.swift のファイルをコマンド+クリックで選択します。
これらの最初のものは、共有アプリの定義です。その他は、macOS で動作するビューです。
ステップ 7
コマンド+クリックを続けて、Model フォルダと Resources フォルダ、および Asset.xcassets 内のすべての項目を選択します。
これらの項目は、アプリのデータモデルとリソースを定義します。
ステップ 8
ファイルインスペクタで、選択したファイルのターゲットメンバーシップに MacLandmarks を追加します。
他のターゲットのアイコンと一致するように、macOS アプリアイコンのセットを追加します。
ステップ 9
MacLandmarks グループ内の Assets.xcasset ファイルを選択し、空の AppIcon アイテムを削除します。
次のステップでこれを置き換えます。
ステップ 10
AppIcon.appiconset フォルダーをダウンロードしたプロジェクトの Resources フォルダから MacLandmark の Asset カタログにドラッグします。
ステップ 11
MacLandmarks グループ内の ContentView で、フレームサイズに制約を付けて、LandmarkList をトップレベルビューとして追加します。
LandmarkList が LandmarkDetail を使用しているため、プレビューは作成されなくなりますが、macOS アプリの詳細ビューはまだ定義していません。次のセクションでそれを処理します。
    ContentView.swift
    ContentView.swift
セクション 1 | セクション 2 | セクション 3 | セクション 4 |
セクション 5 | セクション 6 | セクション 7 | |
セクション 101 | セクション 102 | セクション 103 | セクション 104 |
セクション 105 | セクション 106 | セクション 107 |