使って実装していました。表現できるようになりました。使って画面遷移を実装しているはずです。アプリケーションの配布の仕組みもできていて、これを活用するためにマルチモジュールなプロジェクトの構成にする重要度が高まっています*1。この記事では、マルチモジュールな構成のプロジェクトにおける画面遷移の実装方針について解説します。画面の実装について軽く触れておきます。画面を作り、画面遷移の機能も持っているライブラリです。持っていることがわかります。遷移するには、次の例のように実装します。画面遷移の実装は次のようになります。利用した場合でも同じ考え方が適用できるようになっています。次の図に示すようなマルチモジュール構成を採用しています。それに対応するモデルなどを持っています。ネット決済、コード決済、iD決済はそれぞれ別のモジュールに分割しています。:common_navigationや:common_xxxなど、:common_で始まるモジュールはすべてのモジュールで共通に使うライブラリモジュールです。ここで注目する点として、ドメイン単位で分割したモジュールどうし依存関係を持たないことがあげられます。呼び出すことができません。モジュールにその実装を委ねなければなりません。モジュールから注入するように作ります。遷移する実装例を解説します。それに対応する画面遷移のインタフェースを用意します。前述のインタフェースに定義したメソッドを呼び出すだけにします。実装をどのように注入するかは後ほど解説します。実装クラスを作ります。注入したらよいでしょうか。呼び出せる仕組みが必要です。いうオブジェクトを定義しインスタンスの管理を任せることにします。登録可能なオブジェクトを制約しています。継承するように変更します。インスタンスを得るには次のように実装します。登録する作業をします。対して画面遷移の実装を注入できます。実装から画面遷移のロジックのみを委譲しただけのように作っています。仮に画面遷移のロジックに何らかの条件分岐が現れても、入力がシンプルなためユニットテストも容易です。モジュールでの実装が多くなることは否めません。登録する作業は画面が増えればそれだけ作業も増えます。インスタンスを登録し忘れて期待通り動かないことも考えられます。現在この煩雑さを解消するための仕組みを組み立てているところですので、また後ほど解説記事を書いてみようと思います。さんの社内ツールについての記事となります。お楽しみに!*1:この仕組みができる以前から、ビルドの効率化や関心の分離などの目的でマルチモジュールな構成にするプラクティスはありました。アーキテクチャとテストこんにちは。18日目を担当する...2019-12-07Flutter製MTC2018アプリをSwiftUIでリライトした話こんにちは。採用情報メルカリは常に優秀なソフトウェアエンジニアを募集しています。ご興味を持たれた方はぜひご応募ください。skills月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。