web-dev-qa-db-ja.com

複数のプラットフォーム/コードベースで1つのアプリの機能セットを管理する

そこで、AndroidとiOSの両方に対応するアプリを開発します。

一方のバージョンで作業しているときに、もう一方のバージョンに実装する必要がある変更が発生することがあります。これらの変更を追跡するのは面倒なので、後で忘れないようにします。

さまざまなプロジェクトに実装される単一の機能セットを管理するときに、他にどのようなワークフローを使用するのか知りたいだけです。

ありがとう

1
jim

いくつかの考え:

良い仕様を持っている-私は仕様についての教義ではありません。大きすぎない一人のプロジェクトに取り組むとき、私はおそらく正式な書面による仕様を作成しないでしょう。ただし、2つのプラットフォームに実装する必要があるものがある場合は、必ず仕様が必要です。アプリケーションの機能を正確に定義する単一のドキュメントを用意し、それを両方のバージョンのソースとして使用します。そうすれば、それらが互いに同期しなくなることはありません。

仕様を最新の状態に保ちます。いずれかのバージョンにアドホックな変更を加えることは避けてください。また、2つのアプリケーションの違いについて仕様が明確であることを確認してください。

1つのバグリストを維持する-バグを発見したときはいつでも、それをバグリストに入れてください。バグが非常にプラットフォーム固有のものでない限り(他のプラットフォームでは意味がないほど)、特定のバグを閉じる前に、両方のプラットフォームが正しく実行されていることを確認してください。

可能であれば共通コードを使用する-iOS開発は主にC/C++であるのに対し、Androidは主に)であるため、これは注意が必要です。 Java。ただし、Androidプログラム。 このStackOverflowの質問を参照 のC/C++部分を持つことは可能です。コアを配置できるかどうかを検討する価値があります。単一のCまたはC++ライブラリの機能。明らかに、複製する必要のある作業が少ないほど、優れています。

共通の設計を使用する-両方のプラットフォームで同じように機能するライブラリに共通の機能を配置します。共通のコードベースを使用できない場合でも、これを実行してください。2つの言語で実装された単一のライブラリと考えてください。実用的な限り、同じオブジェクト、関数、インターフェース、アルゴリズムなどを使用してください。iOSとAndroidの動作が異なる場合は、違いを抽象化レイヤーの背後に置きます。これの利点は、新しい機能を追加するときは、1つの方法を理解するだけで済みます。

これを強制しないでください。特定のタスクを実行する自然な方法がプラットフォーム間でかなり異なる場合は、最も意味のある方法を使用してください。コードが類似したものと異なるものを適切に分離していることを確認してください。

並行して開発する-1つのバージョンを他のバージョンよりもはるかに先に進めないでください。両方のバージョンで段階的な変更を加えてから、両方をビルドしてテストします。問題のコードが十分に類似している場合は、両方のバージョンを並べて開いてみてください。これを行うにはある程度の規律が必要ですが、このようにすることで、両方のアプリで同様のコードを使用することのメリットを最大化できると思います。

1
user82096