LoginSignup
19
19

More than 3 years have passed since last update.

iPadのSwift PlaygroundsでもSwiftUI書けるじゃん!

Last updated at Posted at 2019-10-30

TL;DR

Swift Playgrounds v3.1以上ならSwiftUIが書ける。

スクリーンショット 2019-10-30 14.55.58.png

注意点

Swift Playgroundsで実装したViewをliveViewで表示するには、以下のように書く必要がありますね。

SampleForUIKit.swift
import UIKit
import PlaygroundSupport

class MyViewController: UIViewController {
    // 省略
}

PlaygroundPage.current.liveView = MyViewController()

liveViewで表示するためにはPlaygroundLiveViewableなるプロトコルに準拠したclassでなければならないそうです。
SwiftUIのviewはこのプロトコルに準拠していないようなので、SwiftUIで用意されているUIHostingControllerを使うことでliveViewで表示できるようになります。

SampleForSwiftUI.swift
import SwiftUI
import PlaygroundSupport

struct ContentView: View {
    var body: some View {
        VStack {
            Text("Turtle Rock")
                .font(.title)
            Text("Joshua Tree National Park")
                .font(.subheadline)
        }
    }
}

PlaygroundPage.current.liveView = UIHostingController(rootView: ContentView())

ほらこの通り。
BDB1DE83-37FD-43A1-AB2A-AD14AB103D62.png

※ContentViewのコードは公式のチュートリアルを引用しています。

ひとこと

SwiftUIが出たもののiOS 13以降でないと使えないため、プロダクトでサポートするOSバージョンを考えるとあと2〜3年は使えないなぁ……と思いほとんどキャッチアップしていませんでした。
とはいえ、カジュアルにSwiftUIを書いていければいざ移行する時に早いのでは?と思いふとSwift Playgroundsで import SwiftUI と書いたら……なんと!!

これで気軽にスイスイSwiftUIできますね(๑•̀ㅁ•́๑)✧

参考

19
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
19