さまざまなインターネット リソースとの計算と通信を行うアプリを作成しました。私は自分のアプリケーションを 3 つの企業クライアントのタブ バー ナビゲーション バーでブランド化しました。唯一の変更点は、写真と色の違いでした。そこで、3 つのターゲットを作成し、ターゲット メンバーシップを適切に処理しました。
ここまでは順調ですね。しかし、ビューのレイアウト全体やクライアントのアプリのナビゲーションまでもカスタマイズしたい場合はどうすればよいでしょうか? たとえば、次のクライアントは、タブ バーに基づくナビゲーションではなく、ナビゲーション コントローラーに基づく対話を要求する可能性があります。または、1 つのビューにもう 1 つのラベルを追加します。または、棒グラフの代わりに円グラフを使用して、特定のデータ セットを視覚化します。
これらすべての if/else if/else if/else if/... コード ブロックを含む 1 つのプロジェクトにすべての異なるターゲットを配置すると、非常に醜いコードになります。クライアントが100人いたら?
ここで質問です。私の想像では、ドメイン固有の計算、通信などを (もちろん) すべて実行し、基本的な非ブランド UI を持つ「 Base 」という名前の Xcode プロジェクトを作成できれば、理想的なコンセプトになります。. このようにして、すべてのクライアントのコードを 1 つの中央リポジトリで簡単に管理できます。次に、クライアントごとにまったく新しい Xcode プロジェクトを作成し、「ベース」プロジェクトをインポートまたは参照します。カスタマイズせずに [ビルド] をクリックすると、ブランド化されていないが完全に機能するアプリが既にビルドされています。クライアントがレイアウトの変更を要求した場合、対応するビューをサブクラス化します。[ビルド] ボタンをもう一度押すと、「Base」アプリが表示されるはずですが、特定のサブクラス化されたビューが標準レイアウトを置き換えました。
ビジュアルを「オーバーライド」する「ベース」アプリのこのアイデアは、Xcodeでエレガントに実行できますか?