web-dev-qa-db-ja.com

iOSで構築ロジックとランタイムロジックを分離する方法は?

私はRobertMartinのCleanCodeの本を読んでいて、プログラムの起動/構築プロセスをランタイムロジックから分離する必要があることを示唆しています。

Java(本が使用する言語)では、これには、構築のすべての側面をmainに移動し、すべてのオブジェクトが構築され、適切に接続されていると仮定して、システムの残りの部分を設計することが含まれます。メインの知識がありません。

これをiOS開発に適用するにはどうすればよいですか?

私の当面の考えは、すべてのビジネスロジックとモデルをAppDelegatedidFinishLaunchingWithOptions関数内に構築することです。これが使用するのに適切な関数であるかどうか、そしてViewControllersをセットアップしようとすることが実行可能か賢明かはわかりませんが、私のアプリはすべてを1か所で使用します。

4
Declan McKenna

これを見てください iOSライフサイクル 。 Clean Codeを読んだことはありませんが、iOSではMVC/MVVMパターンを使用することをお勧めします。 iOSは、Robertが言及していると私が信じている重い起動/構築プロセスのほとんどを実行する必要があります。

あなたのビジネスロジックはあなたのそれぞれに入るでしょう コントローラー (私はちょうど最初のグーグルヒットをつかんだそのリンクを読んでいないことに注意してください)

および [〜#〜] mvvm [〜#〜] ...完全な開示私はフレームワークに移行して以来、ネイティブiOSのベストプラクティスについて少し時代遅れになっています... Ionic/Reactネイティブ/など..

1
Justin

それはそのようには機能しません。ほとんどの作業は、ViewControllerで直接または間接的に行われます。アプリの起動時にビューコントローラーを作成するのではなく、必要なときにコントローラーを作成します。そして、実際の作業はviewDidLoadで行われます。また、viewControllerは、不要になったときに破棄されます。

多くの作業はシングルトンで行われ、必要なときに作成されます。存在が必要なシングルトンが存在する場合があります。それらはappDidFinishLaunchingで作成します。シングルトンは永遠に生き続けます。

すべてのオブジェクトが作成されたとは限りません。多くのオブジェクトが作成されることはないため、これを想定することはできません。必要なときにオブジェクトを作成します。

1
gnasher729