lynx   »   [go: up one dir, main page]

RxSwiftは新規採用してはいけない

SwiftでObserverパターンでプログラミングしたい時に、候補として上がってくるライブラリとして ReactiveX/RxSwift がありますが、2025年現在では新規採用してはいけない。採用している場合でも捨てるように変更して行った方が好ましい状況です。

採用しない理由

公式に代替できるものがある

Combine | Apple Developer Documentation

Combine Frameworkがあり、RxSwiftでほぼほぼ全てのことができます。採用している場合に単純に置き換えていきたい場合は Combine に置き換えていくと良いでしょう。

より便利なConcurrencyがある

Concurrency | Apple Developer Documentation

Concurrency API Collectionがあり、大抵の場合はこちらの方が便利です。Swift6からstrict concurrency checking(厳密なSwift並行処理の安全性チェック)機能が導入されてより安全に並行処理が行えるようになっています。

SwiftUIの相性

Combine やConcurrency はSwiftUIでうまく使えるように設計されています。RxSwiftが特別に悪いわけではないですが、SwiftUIより使いやすい手段を使った方が良いです。

あまり変更する気がない?

ITMS-91061: Missing privacy manifest · Issue #2625 · ReactiveX/RxSwift · GitHub

Appleが名指しで対応を迫ったことがありました。期日までに対応しませんでしたが、リジェクトされるということもなさそうだということでそのままクローズになっている。積極的に対応して継続するという感じはないのだと思われる。

今後の予想

SwiftUIとConcurrencyをメインとしつつつ、Combineを織り交ぜてたものが核となってアプリが作れられていきます。継続的にアプリを開発していくならばあまり主流とはかけ離れた開発手法をとることは採用や継続性の面で遅れをとることになります。UIKitやRxSwiftを使っているのであれば徐々にでも置き換えていった方が良いでしょう。

Лучший частный хостинг