Preview: ビューのデザインと検証を効率化する

この記事は約4分で読めます。

SwiftUIでは、Previewを使用してビューのデザインや挙動をリアルタイムに確認することができます。
この記事では、SwiftUI Previewの基本的な概念と使用法に焦点を当て、効率的なUI開発に役立つTipsを紹介します。

  • iOS:13.0以上
  • XCode(当サイトの環境):15.0.1

Previewとは?

PreviewはXcode内で提供されているツールで、SwiftUIで開発しているビューをリアルタイムで確認するための画面です。
コードを修正する度にビルドしなくても、Preview上で変更を確認できるため、UI開発の効率が向上します。

Previewの基本的な使い方

SwiftUIのPreviewは、ビューの外観や動作をリアルタイムで確認するための簡便な方法です。以下は基本的な使い方です。

  1. 新しいビューを作成する: SwiftUIビューを新しく作成します。コード例ではSmpPreviewを作成します。
  2. Previewを追加する: 同じファイル内に、Preview用のマクロを追加します。
import SwiftUI

struct SmpPreview: View {
    var body: some View {
        Text("Hello, SwiftUI Preview!")
    }
}

#Preview {
    SmpPreview()
}

これにより、ビューをビルドすることなく、実際のデバイスに相当する表示を確認できます。

複数のプレビューの表示

同じビューにおいて上位ビューからの入力などにより、表示が異なる場合など複数のプレビューを表示させることも可能です。

previewマクロのパラメータで”Input true”と”Input false”の名前を付与しておきます。

import SwiftUI

struct SmpPreview: View {
    var switchView: Bool
    var body: some View {
        if switchView {
            Text("Input is true")
        }
        else {
            Text("Input is false")
        }
    }
}

#Preview("Input true") {
    SmpPreview(switchView: true)
}


#Preview("Input false") {
    SmpPreview(switchView: false)
}

preview用のキャンバスの上部にパラメータで設定した名称が表示されます。タップして選択するとpreviewが切り替わります。

プレビュー画面における動作の検証

なおプレビュー画面においても画面の操作が可能です。buttonをタップすると数値がインクリメントします。

その他のプレビュー機能

プレビューには以下のような便利な機能もあります。プレビューのキャンバスの下部からいくつか機能を使用可能です。

プレビューの一覧表示

プレビューを一覧表示する機能で以下から表示を選択できます。

  • Color Scheme Variants:LightモードとDarkモードを並べて表示します
  • Orientation Variants:画面の方向による表示の違いを並べて表示します
  • Dynamic Type Variants:文字サイズの設定の違いを並べて表示します

Color Scheme Variants(LigntモードとDarkモードを並べて表示します)

Orientation Variants(画面の方向による表示の違いを並べて表示します)

Dynamic Type Variants(文字サイズの設定の違いを並べて表示します)

プレビューの表示を切り替え

プレビューの表示を一覧表示ではなく、個別に切り替えることも可能です。表示できる内容は一覧表示で紹介した内容と同様です。

  • Color Scheme:LightモードとDarkモードを切り替えます
  • Orientation:画面の方向による表示の違いを切り替えて表示します
  • Dynamic Type:文字サイズの設定の違いを切り替えて表示します

まとめ

SwiftUI Previewは、ビューのデザインと挙動を素早く確認するために非常に強力なツールです。これを上手に活用することで、迅速な開発サイクルを実現し、UIの構築プロセスをスムーズに進めることができます。是非、プロジェクトにおいてPreviewを積極的に利用してみてください。

タイトルとURLをコピーしました