駆け出しエンジニアぱかぱかの成長記録

引くほど忘れっぽい新卒2年目駆け出しSEぱかぱかの備忘録です。

【iOS】SwiftUIってこれなんだ!

おはようございます!
変な時間に寝落ちしたので早朝に活動しているぱかぱかです。
2週間ぶりの投稿になってしまいましたが、元気にしております!

昨日はお試しで転職活動1発目、大手企業社内SEの休日1日選考会に参加しました。
思いがけず最終面接に進み結果は後日とのことでしたが、咄嗟に自分の思いを言語化するのは難しいなと感じた1日でした。
話していて再認識した自分の思いとしては、やっぱりSIerとしてそれぞれプロジェクトごとに全く違う方向を向いて開発をするのではなく、会社全体で1つの方針や強みに向かって社会に価値提供をしていきたいなという思いです。
これを実現できる方法としては、強みのあるサービスを持つ企業の中でSEをやるか、自社製品を持ったIT企業に入るかといったところなのでしょうかね。

結果はどうなるかわかりませんが、ドキドキしながら待っておきます…😳

本日は前回に引き続きiOS開発の内容です。

このiOS開発手法って実は…

以前の記事でようやくiOSアプリ開発の勉強を開始しました。

radish-se.hatenablog.com

以前の記事では気づきとしてこんなことを書いていました。

xibファイルを使わないレイアウト作成方法
普段業務ではxibファイルという部品の構造をXML形式で記述したファイルを使ってレイアウトを作成しています。
XML形式とはいっても、実際にはGUIで直感的に部品の配置や制約の設定を行うので、xibファイル内のコードを直接いじることは基本的にありません。
処理によって画面の動きを変えるために、xibファイルと対になるswiftファイルにコードを記載しています。

今回の教材ではswiftファイル上にViewのレイアウトを一から記載する方法をとっています。
レイアウトが複雑になるとこれでは大変になるのだとは思いますが、このようにViewを作成したことはなかったので一つ勉強になりました。

ちょっとこの時よくわかっていなかったのですが

「xibファイルという部品の構造をXML形式で記述したファイルを使ってレイアウトを作成」
→これが従来のStoryboardによる開発のことで

「swiftファイル上にViewのレイアウトを一から記載する方法」
→これが実はSwiftUIというやつだったのですね…!

今日は軽くSwiftUIとそれ以前の開発についてメモしておきます!

SwiftUI以前の開発

SwiftUI以前の開発ではレイアウトファイルとソースコードを別々に作成していました。
その場合、どのレイアウトファイルがどのソースファイルに紐付いているのかを把握する必要があります。
(大抵は同じファイル名などで作成しているのかと思いますが、ものによってはそうでない場合もあると思います。)

また、一番問題だと思うのは、XML形式で記述されたレイアウトファイルのわかりづらさです…
XcodeのUIツールを使って画面を作成したものがXibファイルというファイルにXML形式で反映されるのですが、XibファイルのXMLは編集は困難ですし、他の人の変更を読み取るのも難しい…
しかも、プログラムの紐付けが切れるとエラーが発生したりします…

業務でAndroidiOSの開発をやっていて、どうしてもiOSに苦手意識を感じてしまっていたのはこういうところだったのかなと思います。

SwiftUIでの開発

SwiftUIではCPUの発達によりリアルタイムにソースコードコンパイルしプレビューが表示できるようになり、デザイン用のXibファイルは不要となりました!
すごい!
ソースコードの構造体でビューを定義するので読みやすく管理がしやすくなっています。
UIを宣言するだけで状態が変化した時にSwiftUIが勝手に画面を更新してくれる。

以前の記事でこんな感想を書いていたのですが、まさにSwiftUIのメリットというところだったわけですね。

xibファイルでよくわかんないタグが追加されて何が設定されているか把握しきれなくなるより、このように全部コードに現れてくれた方がわかりやすいかも?と思ってしまいましたね。

どんどん便利な開発手法が生まれてきているので、もっと活用していきたいところ!
(うちのプロジェクトもSwiftUIに移行しないかな…)

ではまた!