web-dev-qa-db-ja.com

iOSに推奨されるIoCフレームワーク?

依存性注入を容易にするために、iOS用の優れたIoCフレームワークを推奨できる人はいますか?

私がこれまでに見つけたのは Objection Framework だけです。これは明らかにGuiceに似ています(残念ながら私にはなじみがありません)。これはiOSの一般的な選択肢であり、チェックする価値のある競合するフレームワークはありますか?

24
Clafou

...チェックする価値のある競合するフレームワークはありますか?

異議 はiOS用のグーグルで見つけたDIライブラリなので、ビルド済みのライブラリが必要な場合は、それで行き詰まる可能性があります。

DIは、使用するフレームワークを特に必要としません。アプリが小さい場合は、アプリケーションルートですべてのインスタンスを作成し、手動で挿入するだけです。

これ以上のものが必要で、既存のフレームワークがそれをカットしていない場合は、独自のService Locatorをロールして、その上にDIコンテナーを構築できます。

また、既存の小さなフレームワークを別のプラットフォームから移植することもできます。 .Netには、いくつかの「小さな」ものがあります。たとえば、 Ninject および SimpleInjector です。

これはiOSの一般的な選択肢ですか...?

著者/寄稿者が1人しかリストされていないため、かなり小さなプロジェクトのようです。提出された問題は多くありません。ただし、iOS市場はかなり大きいです。したがって、すべてのiOS開発者のごく一部だけがこのライブラリを使用していると思います。

しかし、これは必ずしも悪いことではありません。 小さな会社によって作成、使用、サポートされている のようです。 過去1年間はかなり安定した更新

同様のスコープのオープンソースプロジェクトでの私の逸話的な経験:私は常に新しい機能を頻繁に入手するとは限らず、バグを見つけてしまうことがよくあります。しかし、私は既存の機能セットのサポートをすぐに受ける傾向があり、私が送信した電子メールのサポートには多くの注意が払われています。 YMMV。

15

台風

Typhoon-website は主要な機能をリストしています。簡単な要約:

  • 非侵襲的。マクロやXMLは必要ありません。構成は、Objective-CまたはSwift APIを利用して行われます。 Objective-Cランタイム。

  • 軽量。わずか2500行のコード。フットプリントが非常に小さいため、CPUおよびメモリに制約のあるデバイスに適しています。パフォーマンスのために調整。

  • 同じ基本クラスまたはプロトコルの複数の構成を簡単に作成できます。

  • マジックストリングなし-IDEリファクタリング、コード完了、コンパイル時チェックをサポートします。

  • ビューコントローラーの挿入とストーリーボードの統合をサポートします。

  • 初期化子とプロパティインジェクションの両方に加えて、ライフサイクル管理をサポートします。

  • 強力なメモリ管理機能。シングルトンのメモリオーバーヘッドなしで、事前設定されたオブジェクトを提供します。

  • 循環依存の優れたサポート。

  • バトルテスト済み-あらゆる種類のAppstore機能アプリで使用されます。

  • 国際的に分散されたコアチーム(StackOverflowも監視しています)なので、質問のサポートは決して遠くありません:)

APIドキュメントとサンプルアプリ

21
Jasper Blues

さて、ここで少しプラグを許していただければ幸いですが、Objective-C用の独自のDIフレームワークをリリースしました:Syringe

https://github.com/tomekc/Syringe

それは意図的に単純で軽量です。私の主な目標は、できるだけ目立たないようにすることでした。私は強いJavaのバックグラウンドを持っているので、GoogleGuiceとSpringの後に設計しました。

11
Tomek Cejner