ホワイトラベルアプリケーション(この記事の後半にある製品)を準備しており、非常に優れたアーキテクチャを設定したいと考えています。これにより、デザインを変更して機能を有効にして新しいクライアントを簡単に設定できます...ホワイトラベルアプリケーションの構造/アーキテクチャとは
私はいくつかのサーバー(開発、プリプロダクト、プロダクト)を持っていますので、フレーバーサイズserver
が製品にあり、flavorDimension client
クライアント側にあります。
私はこの解決策を考えました: 1つのgitと1つのgitを製品に設定します。
クライアントはgitサブモジュールによって製品コードにアクセスできます。これにより、クライアントから特定のコードと製品のソースコードを分離することができます。
Git -> Client 1
Submodule -> Product v1
Git -> Client 2
Submodule -> Product v1.2
...
Git -> Product v1.4
しかし、すべて正しく実行する方法に問題があります。 flavorDimensions client
の使用は、ビルド前に私のサブモジュールからアプリケーションモジュールにコピーペースト(グラデーション付き)を行う必要があるため難しいです。 この構造の生成は、毎回同期する必要があるため、Gradleを破棄します。 (Androidスタジオでは今すぐ同期のフラグが設定されています)
私は自分自身に頼んでいい建築ですか?どう思いますか ?
他のアイデアや実装方法はありますか?
ご協力いただきありがとうございます。
gitへのクライアントへのアクセスに関しては、彼が私たちともう仕事をしないかどうか尋ねると簡単です。彼にはソースコードがありますが、それは製品だと考えています。特定の部分へのアクセスしか持たないため、各クライアント間のgitが異なります。 私たちの製品でタグを使用すると、それを維持するのは桁外れだとは思わない。例:製品v1.2のClient1これにより、店舗での展開中に正確なバージョンの製品を入手することが可能になり、製品のバージョンを知っているため問題が発生した場合にバグの解決を簡単にすることができます。 – Julien
私は仕事の構成に完全に同意します。 「Gradle Sync now」でどのようなタスクが使用されているかを確認し、一度自分のコピー(buildSrc(依存関係、バージョン管理...)とsrc(製品))を実行することができます。 私はライブラリを使ってクライアントの製品。それはより簡単になります。私はリソースを変更するだけです。マニフェストでライブラリアクティビティを使用することが可能かどうかをテストする必要があります。 – Julien
もちろん、bash gradlew --recompile-scriptsやbash gradlew --refresh-dependenciesを試すこともできますが、すべての依存関係を強制的に取り戻し、遅くなる可能性があります。しかし、あなたはGIT部分の計画があるように聞こえるので、残りの部分は依存関係を別のファイルに抽出し、libs.gradleファイルをフレーバーで管理するだけです。がんばろう。 – Sam