チーム開発にSwiftUIを導入してみて感じたメリットと困ったことZenn株式会社ココナラ💨チーム開発にSwiftUIを導入してみて感じたメリットと困ったこと2024/01/24に公開iOSSwiftSwiftUItech株式会社ココナラアプリ開発グループ、iOSチームの上田です。以前こちらの記事でどのような手順でSwiftUIを導入したかを紹介致しました。ココナラiOSアプリではStoryboardが肥大化しており、一部のStoryboardでは、開いただけでXCodeが固まってしまい、レイアウトの変更に苦戦することがあります。SwiftUI導入後はコードベースでレイアウトを実装するのでXCodeが固まることなく実装することが出来るようになりました。UIKitと比べ圧倒的に実装量が少ないのでとてもスピード感のある実装が可能になりました。コードレビューがしやすいSwiftUIを導入したことによりメリットがあるのは実装者だけではありません。SwiftUIは宣言型UIなのでコードでレイアウトを組むことにより、Storyboardのxmlで書かれたコードに比べとてもレビューがしやすくなりました。コンテンツごとにViewを切り分けて実装することで、body内を見ればレイアウトの全体感を掴むことが出来るのでレビュアーの負担も軽くなりました。他社の動向を見てもやはりSwiftUI化が進んでいます。Builder」から「SwiftUI」が主流となる時が必ず訪れるので、SwiftUI導入は採用にも繋がってくると思います。導入して困ったことOSによって動作が安定しないココナラでは現在iOS14以上をサポートしています。SwiftUIではOSによって表示の挙動が異なってしまうケースが発生しました。UIKitと組み合わせた時にiOS14のみNavigationのボタンをタップしても反応しないなどです。上記は一例ですが、ぱらぱらとOSによって挙動が異なることがあるので、実装後はしっかりと各OSで挙動が問題ないかテストをすることが大切です。対応策として、OSによる分岐でレイアウトの組み方を変える必要が出てきたり、OS分岐でも難しそうなものはデザイナーさんに確認し、一部OSのみデザイン通りの実装にならないが許容して頂きました。チームへの展開SwiftUIを導入する際にチームへの共有がしっかり出来ておらず、実際にSwiftUIで実装してもらう時に苦戦してしまったことがありました。wrapperの使い分けが難しいといった声がチーム内から上がってきました。この問題を解決するために、まずは週1でSwiftUIの勉強会を開き、実際に実装したコードを解説しながらチームへ展開していきました。勉強会では有識者がコード解説をする会とは別に、SwiftUI未経験者がSwiftUIで分からなかった箇所を質問する会も開き、双方向でのコミュニケーションでSwiftUIへの疑問を解消することが出来たと思います。プレビュー機能が使えないこれは導入前の検討段階で発覚していたもので、アプリの規模にもよるものだとは思いますが、現状SwiftUIのプレビューを表示するのに1分以上かかってしまっていて、とても使える状態ではありません。こちらに関しては現在マルチモジュール化を進めており、レイヤーごとに適切に分割することでビルド時間の短縮と同時にプレビュー機能も使えるようになると考えております。マルチモジュール移行に関してはこちらの記事でご紹介しています。まとめ今回はSwiftUI導入のメリットと導入で困ったことをご紹介致しました。SwiftUIを使ってiOSアプリを開発したい!と言う方、ぜひ以下フォームよりお気軽にご連絡ください!ココナラに少しでも興味が湧いたという方も大歓迎です。入力時間は1、2分です。https://open.talentio.com/r/1/c/coconala/pages/70417ココナラのエンジニアについてもっと知りたい!という方はこちらをご確認ください。https://coconala.co.jp/recruit/engineer株式会社ココナラ株式会社ココナラのテックブログ用アカウントです。ココナラに所属するエンジニアが多様な記事を執筆して公開していきます。coconala.co.jp/Discussion株式会社ココナラ株式会社ココナラのテックブログ用アカウントです。ココナラに所属するエンジニアが多様な記事を執筆して公開していきます。Proよくある質問LinksX(Twitter)GitHubメディアキットLegal利用規約プライバシーポリシ。