問題タブ [square-flow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Square Flow + モルタル タブレットの例
Android アプリの代替アーキテクチャとしてフローとモルタルを使用して実験してきました。私は今のところ単一の電話レイアウトだけのアプリに取り組んでいますが、タブレット用に別のレイアウトが必要な場合、フローとモルタル アーキテクチャがどのように機能するのか疑問に思っていました. マスター詳細は最も単純な例かもしれませんが、明らかに他の例があります。
これがどのように機能するかについていくつかのアイデアがありますが、このトピックに関して、スクエアの開発者がすでに考えていることを知りたいと思いました.
dagger - モルタル プレゼンターまたはビュー内からアクティビティを終了するにはどうすればよいですか?
モルタル サンプル アプリのプレゼンターまたはビュー内からアクティビティを終了するにはどうすればよいですか?
android - Square の「画面外の断片が生き返る」および「アニメーションを直接制御できない」とはどういう意味ですか?
Android のライブラリとフレームワークを発見しているときに、Flow と Mortar に関する Square のブログ投稿に出くわしました。著者は、Flow と Mortar を開発する動機のいくつかは、
...画面外の断片が奇妙な瞬間に不思議なことに生き返ります
...アニメーションを直接制御することはできません
作者が何を言いたいのか理解に苦しむ。著者が語っているこれらの 2 つの問題点を詳しく説明できる人はいますか?
android - Square の「Flow」サンプル アプリの構築: Maven は成功するが APK を使用できない
Square の Flow ライブラリのサンプル アプリケーション、具体的にはこのコミットのコードをビルドしようとしていました。
https://github.com/square/flow/commit/38c1e12d49b20b4f7eeee6a21f339e03dac76394
コマンドラインから mvn を使用しました。正常に終了し、APK をデバイスにインストールできますが、起動できません。ビルド中の唯一の疑わしい出力は、次のような多くのメッセージでした:
しかし、私が言ったように、mvn は "BUILD SUCCESS" を報告します。
logcat 出力の関連部分は次のとおりだと思います。
これにはmvn 3.2.3とJava 6を使用しましたが、mvn 3.1.1とJava 7も使用して同じ結果を得ました。
一部のクラスが明らかにapkに含まれていないため、mvnパスに何か問題がありますか?
更新:興味深いことに、まったく同じ手順で、職場の Mac で使用可能な APK が生成されました (自宅のマシンでは Ubuntu を使用しています)。だから、Maven が私を嫌うもう 1 つのケースだと思います...
java - 向きの変更時にアクティビティを漏らさずに、MortarActivityScope のアクティビティを @Provide する方法は?
ルート スコープの下の最初の子として MortarActivityScope を持つ Mortar アプリケーションがあります。MortarActivityScope には、注入されたクラスのアクティビティを @Provides する ActivityScope があります。
これは、向きの変更が発生するまでは問題ありません。Mortar サンプル プロジェクトでは、向きが変わってもアクティビティ スコープは破棄されません。これはおそらく、@Singleton プレゼンター、スクリーンなどを向きの変更後も保持できるようにするためです。これは、サンプル プロジェクトのメイン アクティビティの onDestroy() メソッドで確認できます。
ただし、このようにすると、向きが変わっても古い ObjectGraph が存続することになります。Mortar.requireActivityScope古いアクティビティ スコープのモジュールが、新しいブループリントによって提供される新しいモジュールに置き換えられないことがわかりました。代わりに、オブジェクト グラフは、破棄されたアクティビティを含む、前のモジュールへの参照を保持します。
@Provides ActivityMortar サンプル アクティビティは、メイン モジュールにメソッドを含めないことで、これを回避しているようです。しかしMortarActivityScope、Activity を注入できるべきではありませんか? 向きの変更時にすべてのシングルトン オブジェクト (Presenterオブジェクトなど) を失うことなく、これを行うための推奨される方法は何ですか?
android - フロー サンプル SimpleSwitcher サブコンテナー
Flow サンプル アプリの最近の更新で、カスタマイズされたサブコンテナーを許可する方法としてPathContextを使用する SimpleSwitcher を導入しました。
この用語について詳しく説明してください。また、サブコンテナの意味について例を挙げていただけますか?
また、Mortar の実装にどのように影響しますか? Mortar スコープの作成には親 Context が必要なため、PathContext は画面スコープのチェーンを作成します。つまり、それぞれがその祖先に応じて HomeScreen -> ListScreen -> DetailsScreen になります。そのため、HomeScreen スコープを破壊すると、残りのスクリーン スコープが失われ、非常に悲しくなります。以前のスクリーン スコープを離れた後も保持する意味がわかりません。ActivityScope をそれぞれの親にすることをお勧めします (以前の Mortar の例と同様)。この場合、別の ScreenSwitcher impl が必要ですか、それとも何か不足していますか?
編集:ScreenScoperではなく、ScreenSwitcher
java - Mortar と Flow の onActivityResult と同等ですか?
onActivityResult で行うのと同様に、前の画面で構築されたものを失うことなく、フローを使用して画面から結果を返す方法を探しています。たとえば、新しいドキュメントを作成している画面は次のとおりです。
これどうやってするの?私はPopupとPopupPresenterを試してきましたが、これらに関する情報は多くなく、セレクターはそれ自体が画面であるため、これが正しい方法であるとは確信していません。
更新 – 考えられる解決策
@rjrjrからの以下の回答に基づいて、問題なく動作するように思われる次のことを行いました。
TakesResult.java
NewDocumentScreen.java
ChooseAuthorScreen.java