文系iOSエンジニアの備忘録

エンジニア iOS Swift

Xcode PreViews 〜FlutterのHot reloadみたいな!〜

どうもおはようございます、こんにちは、こんばんは。

ちるたろうです。

 ## はじめに

UI実装ナレッジ、今回はXcode Previewsです。

Xcode Previews

Xcode PreviewsXcode上でコードを変更した際、リアルタイムにPreviewを表示するための機能で、

SwiftUI とともに導入されたXcode11の新機能のひとつです。

Xcode Previewsは、SwiftUIで利用されているものだと思っていましたが、

UIKitのUIViewやUIViewControllerといった従来のView実装もPreviewできるようです。

参考:Mastering Xcode Previews - WWDC 2019 - Videos - Apple Developer

実装方法

1.Xcode Previews 専用のターゲットを作る プレビューさせる画面に関連するソースコードとプレビュー用の swift ファイルを対象にして、

iOS13 以降をターゲットバージョンとする

f:id:chiltarou1224:20200726195218p:plain

2.対象のクラスを UIViewRepresentable に準拠させる updateUIView メソッド内で施した変更がプレビューに即時反映される

f:id:chiltarou1224:20200726195225p:plain

3. PreviewProvider に準拠させた struct を定義 static var previews: some View でプレビューに必要な処理を施す

f:id:chiltarou1224:20200726195308p:plain

参考:SwiftUI Tutroial

メリット

  • コードでUI実装が簡単に記述できる。
  • シミュレータ や実機のビルドをしなくてもコードの変更が即時反映される。(FlutterのHot reloadのような)

デメリット(注意点)

  • 開発環境がまだ限定的。 (iOS13以上、Xcode11、MacOS Chatalina以上)
  • まだ、AutoLayoutの代替とは言い難い。(機能的に足りない部分)    凝ったデザインの作り方やベターな実装方法が確率されていないような。

最後に

まだやりたいことが全部できていないんですが、少し進んだかなと🤏 SwiftUIでの実装も進めてますが、blurとか円形切り取りとかの画像加工だったり UIパーツの配置はすごく簡単でイイ感じですね。

 

ブログの投稿は基本毎日19時頃する予定です。

コメントや反応もらえると嬉しいです!よろしくお願いいたします!