iOSアプリ開発のアーキテクチャについて

とっきゃー
·
公開:2024/9/4

弊社で開発しているアプリは、基本的には「MVVM」で、かなり古くから開発しているアプリは「MVP」と「MVVM」が混ざっているという状況のものも。

また、UI側は弊社のほとんどのアプリはUIKitで作られている。しかも、継ぎ足しで作られている画面もあり、カオスな実装になってるところもある。

正直言うと、すんごく作り直したい...

まあでも、企画チームの施策を実現したり不具合修正をしたりと言った中では時間を割くことはできないので、せめて利用率が低そうな画面から自分たちの技術習得も兼ねてSwiftUI化を進めている。

そこで、アーキテクチャーってどうするのが今風で保守しやすそうなコードになるんだろう、と思っている。

Androidだと標準で用意されているMVVM的なもの(だけど公式ではMVVMとは言っていない)があり、それに特別課題を感じていなければ採用すると思うのだけど、iOSは標準のものはなく(強いて言うなら昔からあるCocoaMVC?)、ほんとチームによって採用するものが違う。

  • Clean Architecture (これを同じ列に並べていいものか毎度悩むが一応...)

  • VIPER

  • Flux

  • TCA (The Composable Architecture)

  • MV State Pattern

MV State Patternは直近のiOSDC Japan 2024でトークセッションで初めて聞いたが、選択肢の一つとしてもありかもしれないなーと思った。

また、数年前からTCAが増えてきたかな? Swiftのフレームワークとしても用意されているので、開発時にオレオレな仕組みが入りにくそうだなと思っている。今一番学んでみたいと思うので、今度公式サイトを眺めながら何か作ってみようかな。

@mltokky
Mobile App Engineer 新しいもの好きで色々なものに触っています。 Xに投稿するには少し長くなりそうな事を、不定期に書いていきます。 linktr.ee/mltokky