私は、多くの異なる組織 (理想的なシナリオでは数十) に展開される製品に取り組んでいます。システム (iOS および Android 用のネイティブ アプリで構成される) の各展開には、次のものが含まれます。
- 組織に固有のブランディング (つまり、新しいスキン)
- 組織の認証システムおよびユーザー データベースとの統合
- 組織のニーズに応じたいくつかのカスタム機能
つまり、コア機能はすべての展開で同じままですが、各インスタンスは異なって見え、異なる認証システムに接続し、特定の機能が有効/無効になっています。
私の質問:重複を最小限に抑え、展開プロセスを簡素化するために、2 つのモバイル コードベース (iOS と Android) を管理するための最良の戦略は何ですか?
私たちが議論している3つの解決策は次のとおりです。
すべてのインスタンスで共有されるコア ライブラリを (サブプロジェクト/ライブラリ プロジェクト、または git サブモジュールとして) 作成し、その上にブランディングと構成の詳細を含む薄いレイヤーを追加します。
コア機能を備えた Git ブランチを維持し、追加のコードを含むデプロイごとに新しいブランチを作成します。
スタックオーバーフローの賢い人が提案するまったく違うことをしてください。
どれが一番いいですか?フィードバックをお寄せいただきありがとうございます。