ココナラiOSアプリの最近の取り組みと今後の取り組み
こんにちは!株式会社ココナラアプリ開発グループ、iOSチームの齋藤です。
月日が経つのは早いもので、私が入社してからあっという間に1年が経ちました。
この1年でココナラiOSアプリにもさまざまな技術が導入され、開発環境の改善にも取り組んできました。
今回はここ1年で導入した技術や、今後の取り組みについてご紹介します。
ここ1年で導入した技術について
SwiftUIの導入
背景
SwiftUI導入の背景としては、Storyboardでの開発よりも開発速度の向上が期待できたからです。
今まではStoryboardでの開発だったため、コンフリクトした際にレビューがしにくいなどの問題がありました。
また、WWDCにおいてUIフレームワークに関する発表はSwiftUIがほとんどなことから、AppleはUIKitからSwiftUIへ移行をしようとしていることが伺えます。
採用の面からも、SwiftUIを使って(学んで)いきたい候補者に対してのアピールになると考えました。
そのため、これらの課題を解消するために本格的にSwiftUIの導入がはじまりました。
最近では、新規に追加した画面については、SwiftUIでレイアウトを実装しています。
詳細は以下の記事に書かかれていますのでご確認ください。
導入してどうだったか?
SwiftUIを導入したことで1番変わったなと思うことは、Storyboardでの開発に比べてレビューがしやすくなったことです!コンフリクトを解消するための時間も大幅に減りました。
また、SwiftUI導入にあたって、Viewとデータの連携は従来と同じようにMVVMで実装することで、アーキテクチャについての学習コストはかかりませんでした。
しかし、SwiftUI自体の学習コストはありましたので、SwiftUIのコーディングガイドラインを作るなど、SwiftUIに慣れていないメンバーがキャッチアップするための環境を用意しました。
さらに、SwiftUI導入をきっかけに、チーム内でも新技術に関するキャッチアップのモチベーションが高くなったと感じます!
CircleCIの導入
背景
CircleCI導入の背景としては、それまで利用していたサービスの価格改定をきっかけにCI/CD環境の見直しがあったためです。
複数のサービスを比較検討した結果、バックエンドチームでも利用しているCircleCIを導入することになりました。
CircleCIを使う上でのメリットとしては、コスト面であったり、他社での導入事例も多いため情報が出回っていることや、並列ビルド数が向上することなどがありました。
導入してどうだったか?
CircleCI導入にあたって、CircleCIの実行に関するドキュメントやワークフロー保守に関するドキュメントも作成していますので、移行後もスムーズに使うことができています!
また、fastlaneも合わせて導入することによって、App Store Connectのストアメタ情報もgitで管理するようになったので、申請までの作業も効率化することができました。
Swift Package Managerの導入
背景
Swift Package Manager(以下SPM)導入の背景としては、昨今ではアプリ開発の複雑化や多機能化が進んでおり、ビルド時間短縮をするためにマルチモジュール化が注目されています。
そこで、ココナラiOSアプリではパッケージマネージャーとして、AppleがXcodeで公式サポートしている純正のパッケージマネージャーであるSPMを導入していくことになりました。
導入してどうだったか?
SPMについてはとてもスムーズに導入することができました!今後新規に追加するライブラリに関しては、基本的にSPMを利用して追加していくことになりました。
また、ココナラiOSアプリではライブラリ管理ツールであるCocoaPodsを利用しているため、現在はCocoaPodsとSPMが共存している状態になっています。
ほとんどのライブラリをCocoaPodsで管理しているので、それらをSPMへ移行していくことも現在検討中です。
しかし、SPMに対応していないライブラリがあったり、ライブラリのバージョンアップ対応や、デグレードなどのリスク回避をどのようにしていくかなど、解消すべき課題はたくさんあります。
その他
そのほかにも以下のような取り組みもあるなど、日々開発環境の改善に向けてメンバーが熱く取り組んでいます!
今後の取り組みについて
ココナラiOSアプリで今後やろうとしている取り組みについてもご紹介します。
アーキテクチャ統一
アーキテクチャ統一の背景としては、ココナラiOSアプリのソースコードは、複数のアーキテクチャが混在して書かれています。
旧アーキテクチャで書かれた画面はロジックとビューが分離されていないものもあり、テストコードが実装できていないなどの課題があります。
これらをMVVMアーキテクチャに統一させることで、今後の保守性向上などを期待しています。
すでにアーキテクチャ移行の対応は始まっており、チームでも温度感高く対応しています!
導入検討の技術
また、他にもさまざまな技術の導入検討や調査が進んでいます。
SPMの導入でも触れましたマルチモジュール化であったり、Swift Concurrency やCombine frameworkの導入なども検討中です。
これらの導入や検討結果についても、また別の機会でご紹介できればと思います!
まとめ
今回は、ココナラiOSアプリの最近の取り組みと今後の取り組みについてご紹介しました。
ココナラでは、一緒に事業のグロースを推進していただけるさまざま領域のエンジニアを募集しています。
プロダクトの開発から日々の改善活動など幅広く活躍いただけるエンジニアのご応募をお待ちしています!
今回のお話に興味を持たれた方はぜひカジュアル面談のご応募をお願いします。
Discussion