SwiftUI Tutorials: 2日目

昨夜、OSを無事にCatalinaに更新することができた。これでようやく、SwiftUIのcanvasを試すことができる、と思いきや、、

SwiftUI – Single View App template の初期状態でcanvasのプレビューに失敗し、出鼻をくじかれてしまった。

xcode-swiftui-fail-to-preview-diagnostics.png

diagnostics (↑画像 黄線囲み部分) を確認してみると

active developer path (“/Applications/Xcode.app/Contents/Developer”) does not exist

確かにXcode 11は現状beta版のため、アプリケーション名が「Xcode-beta.app」となっている。通りで上記パスが存在しないのだ。そこでXcodeを終了し、アプリケーション名を「Xcode.app」に変更した上で再度起動すると、無事にcanvasを表示することができた。

Screen Shot 2019-06-06 at 23.37.54

かくして、ようやくチュートリアルのスタートラインに立てたのであった。

ちなみにチュートリアルの第1章「Creating and Combining Views」だが、iOSアプリ開発経験者なら、冒頭1/3だけじっくり取り組めば、この章の大半は理解できたようなものだ。いくつか疑問は残るものの、コンセプトは非常に直感的に感じた。

  • UIの外観カスタマイズは、対象オブジェクトに対する method chaining を記述して行う
    • Text(“…”).font(.title).color(.green).padding(5)
  • UIStackView の要領で、HStack, VStackを駆使してレイアウトを組む
    • frame(width:height:alignment)で、幅、高さ、整列属性の指定が可能
      • frame指定はStack単位で行う概念のようだ
    • ZStackも存在し、本章では扱われていないが、子要素に対する上レイヤーとなり、子要素全て包含するようレイアウトされるものらしい
  • Spacerを要素間に追加することで間隔を設けることが可能。
    • Spacerのサイズは、追加対象のStackが拡張可能な領域いっぱいまで広げられる
    • 各要素のcontentHugging/ComressionResistancePriorityの指定はできるのか? そもそもそうした概念はSwiftUIに存在するのか?
  • UIViewPresentableに適合することで、UIViewの利用が可能
    • makeUIView(context:) -> イニシャライズ処理
    • updateUIView(_:context:): 更新処理。どのタイミングで呼ばれるのか?

 

ざっと読み流して、最後の理解度チェックの質問に答えただけなので、チュートリアルすべてのコードを書いたわけではない。また明日丁寧にチャレンジしてみよう。

 

それにしても、SwiftUI Tutorials、コンテンツの全体像を俯瞰してみたが、UIの組み立てのみならず、プログラムで図形を描画する drawing の手法まで示してくれている。このあたり、Swift Playground for iPad でも網羅していたと思う。従来のCoreGraphicsを用いた図形描画など、初心者には敷居が高かった領域を、Appleが平易な手法を提供しなおし、さらに分かりやすい教材も示してくれるのであれば、その分アプリ開発のベースラインも今後底上げされるだろう。SwiftUIの登場により、誰もが簡単に「クオリティの高い」アプリ実装をできる未来は近い。

コメントを残す