まえがき
僕は先日からiPadのplaygroundsを使ってスキマ時間にswiftUIの学習を始めたプログラミングど素人です。
勉強記録をQiitaに書き始めて、初めてMarkdown記法を知ったレベルのど素人です。
何か誤りなどありましたら、ご指摘いただけますと幸いです。
みんながコードに書き添えてるPreviewProviderって、何?
ひたすらドキュメントや先人の知恵を読みまくっている時に、ナニコレ?と思ったうちの一つがPreviewProvider
でした。
struct CircleImage_Previews: PreviewProvider {
static var previews: some View {
CircleImage()
}
}
そうそう、これこれ。
なんかみんな末尾に添えてるんだよな。
Xcode上でプレビューを確認する時に使うやつ…?
うーん、そんな感じで記述しておられるな。
今のところまだXcodeは触ってないからよくわからんけど、プレビュー機能もコードで呼び出してあげないといけない…って感じっぽいな。違うんかな。
playgroundsであればコードの変更内容を即時反映してプレビューで表示してくれるから、iPadのplaygrounds君をだけを使ってるうちは実用性あんまなさそう…?
もう少し掘り下げるには、playgrounds君そのもののレビュー記事とかが参考になりそう。
プレビューの項目にビンゴな内容の記載があった。
4.2からPreviewProviderを宣言したビューを含むSwiftファイルを表示していると、プレビューの上部にボタンが現れ、そのビューのプレビューを直接表示できるようになりました。表示するまでに多段階の操作のが必要なビューの確認は楽になったと言えます。
なるほど、playgrounds君でも活かせる場面はあるっぽいな。
続く一文に若干の不穏があるが…
ただ、@Binding宣言した変数やenvironmentObjectで受け渡すオブジェクトの状態が、表示するまでの操作の中で設定され、表示が変わるようなビューの場合には、想定通りに表示されない可能性があります。
まぁシンプルにそりゃそうか、って感じだ。一画面だけ抜き取ってきた場合、プレビューするための情報が足りない可能性もあるもんな。
結論 PreviewProviderとは
- Xcodeで開発をする時に手軽にプレビュー表示させるための機能
PreviewProviderを使わない場合はビルド&実行しないといけないっぽい(めっちゃ大変そう)
Canvasってところに表示されるっぽい - iPadのplaygroundsにはそもそもライブプレビュー機能が備わってるから、iPadのplaygroundsだけで開発するならあんまり必要なさそう
- iPadのplaygroundsでPreviewProviderがあると、通常のプレビュー画面に加えてPreviewProviderの情報を表示できるボタンが追加される
環境 | PreviewProvider のメリット |
通常の Swift Playgrounds | ほぼ無し(即時描画機能搭載) |
Xcode プロジェクト | 必須(Canvas表示用) |
こんなところか。以上!