LoginSignup
7
7

More than 3 years have passed since last update.

iOS開発でのCombine導入の戦略について考えてみた

Last updated at Posted at 2020-12-15

はじめに

  • iOSのバージョンアップに伴いフレームワークも進化してきました。SwiftUI, Combineの登場によって、UIの構築方法の変化、アーキテクチャの変化が必要な時期になってきました。しかし、既存のプロダクトを全て書き換えるのはすぐにはできないです。今回は新しいフレームワークに徐々に移行していくための戦略に追加考えてみました。

CombineとSwiftUI

  • 新しく登場したSwiftUIですがいきなり複雑なUIをSwiftUIで実装するにはハードルが高いと思います。なぜなら、SwiftUIが登場して、2年ほどしか立っておらず、フレームワークの進化の途中であり、iOSのバージョンで使えるAPIの差分が大きいと感じます。
  • Combineに関して、すでにRxSwiftなどのReactive Programmingで実装する土壌がある程度整っていて、UIKitとSwiftUIどちらでも対応可能です。 さらにRxSwiftなどをすでに使っていれば、学習コストが低く、既存のものから置き換えやすいと考えられます。
  • 以上の結果からCombineの導入で話を進めます。

Combine導入

Target versionをiOS13に変更する

⭕️

  • サポートバージョンをiOS13にすれば問題なく使えることができます。

  • 運用中のサービスであると関係者の了解をとらないといけないです

OpenCombineを入れる

⭕️

  • 導入が容易
  • iOS13以下でも動作する
  • Combineと実装は同じような実装はできる

  • ライブラリとして追加するのでバイナリサイズが余計に増え
  • メンテナンスが継続的にされるかわからない

必要なところだけ自作してみる

⭕️

  • 自作することで内部実装まで理解することが容易になります。
  • OpenCombineを使うより、影響範囲を自分でコントロールできる

  • 自作するので実証者によっては学習コストがかかる

Combine導入後

参考リンク

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7