鳩ブログ

サラリーマンが綴るブログ

SwiftUIの勉強 1日目

f:id:hato36:20200717094050p:plain

出社してたら飲みに行ってそうな金曜日...。
仕事も落ち着いてるから今日も勉強。

 

昨日のブログで書いた通り、本日からはこの本を使ってSwiftUIの勉強。

 

StoryboardとSwiftUIって何が違うの?

結構衝撃だ。何せSwiftUIのことを理解していなかったので。
もちろんiOS13から利用できるようになった新しいUIの実装方法というのは知っていたが何が新しいのかなと。

まだまだ本を読み始めたところなので理解は薄いが下記が現段階の理解。

  • StoryboardはGUIでViewを設定
  • SwiftUIはコードでViewを設定

大きくはこの違い。※View=画面

SwiftUIでもパーツの配置とかにGUIを使うことは可能だし、一部のプロパティはインスペクターズ(XCode画面右側のプロパティ設定みたいなやつね)で設定することも可能。ただ、SwiftUIでプロジェクトを作ってインスペークターズをいじると、その内容がコードに反映される。

もちろんコードをいじるとView画面の方に反映される。
Windowsの開発をやってた頃でもオブジェクトをコードで生成して配置みたいなことはあったからわかるが、コードを書いている最中に画面にそれが反映されるのは結構衝撃だ。

しかも、UIパーツの追加時の画面からEffect Modifiresライブラリを選択して、そこから設定変更も出来てしまう。これが出来ることよりも、覚えなくてもコードが書けちゃうことに驚く。

f:id:hato36:20200717105810p:plain

正直かなりびっくりだ。

f:id:hato36:20200717110121j:plain

これを覚えたらStoryboardよりもSwiftUIの方が制御しやすいし開発もやりやすい。
慣れてきたらどっちが早いかわからないが、現時点の素人目にはSwiftUIの方が都合良いと感じる。これもStoryboardの方を先に学んだから言えること。

 

インスペクターズもカスタマイズ可能だった...

まさかと思ったが、インスペクターズのモディファイアもカスタマイズ出来た。

f:id:hato36:20200717115658j:plain

要は設定したい項目がインスペクターズになかった場合には、Add Modifierから項目を追加し、コードを書かずに設定できる。

AppleはiPhoneでいろいろな便利なUIを提供しているので発想自体が素晴らしいと思っていたが、ちゃんとXCodeにもその意識はある。

インスペクターズって中途半端な項目しか無いな...変だよな...と思っていたが、回避策がちゃんと用意されていたことに感動。VBみたいに全プロパティが表示されていれば尚よかったけど回避策があるなら良しとしよう。

f:id:hato36:20200717181238p:plain

本の最初の方はちょっとつまらない感じ(失礼!)だったけど、P125ぐらいまでサクサク練習コードを書いてきたらSwiftUIでアプリ作ってる感が出てくる。
SwiftUIって面白いと思えてきたので週末も引き続き勉強しよう。