Model-View-Presenter (MVP) は、GUI アプリケーションのよく知られたデザイン パターンです。Android の場合、プレーンな Java モジュールでビジネス ロジックを実装すると、Android エミュレーターを必要とせずにテストが容易になります。
ただし、Android アプリケーションの GUI には特別な要件があるため、Android でパターンを実装するのに苦労しています。
アクティビティはいつでも破棄される可能性があり (着信コール、ユーザーがホーム ボタンを押すなど)、再作成されたときは、残されていたときとまったく同じ状態になるはずです。これは、他のほとんどの GUI アプリケーションとは異なります。
アクティビティは、多くのライフサイクル状態を通過できます。一時停止される場合があります。その場合、アクティビティの UI は変更されません。たとえば、一部のデータがバックグラウンドでロードされている場合、MVP (アクティビティ) の View 部分に一時停止状態にあると配信できません。繰り返しますが、これは異常な要件です。
ブログ投稿MVP for Androidを読み、ソース コードの例を確認しました。MVP パターンを使用して達成しようとしている最終目標は、トランスパイラーj2objcを使用してすべてのビジネス ロジックを Objective-C に変換できるようにすることです。これにより、iOS で同じアプリを実装しながらビジネス ロジックを再利用できます。
Android の MVP パターンを正常に実装した人はいますか? その場合、何が足りないのでしょうか?