web-dev-qa-db-ja.com

Webアプリケーションとしてのスタートアップは、その後モバイルアプリケーションとして拡張されました。それを正しく行う方法は?

私はこの考えを作りたいと思っています。アイデアをウェブアプリとして始めてから、モバイルアプリと可能なデスクトップアプリケーションに移りたいと思います。

プロジェクトにはデータベース(主に文字列)が必要です。また、ユーザーはアカウントを持ち、これらのデータベースにアクセスできます。したがって、プロジェクトはインターネットを介してユーザーリソースへのアクセスを提供します。さまざまなプラットフォームからデータベースに簡単にアクセスできるようにしたい。このプロジェクトは私のITを研ぎ澄ますことでもあるので、簡単な道は望んでいませんが、より良い道を望んでいます。

  • フレームワーク/スキルの私の最良のオプションは何ですか?
  • プロジェクトを管理するための優れたツール?
  • Webアプリとして開始するのは良い選択ですか、それとも最初にモバイルアプリとして構築する必要がありますか?

私はいくつかの知識を持っています(しかし多くの経験はありません):

C、C++、Java、PHP、Javascript、MySQL、HTML/CSS。

編集:私の質問は一般的すぎることを知っています。私が欲しかったのは、良いスタートを切るためのいくつかのアイデアとガイドだけです。

@Nathan Taylor、ウェブアプリに関しては、私はオプションを気にしません(Pythonを学ぶべきか、この点でphpに固執するべきですか)?

私はおそらくAndroid、そしておそらくiPhoneでプロジェクトを実装するでしょう。

2
m4design

コードの共有部分はサーバー側のコンポーネントになります。一連のWebサービスを構築すると思います。 SOAPサービス。さまざまなフロントエンドはすべて、この同じサービスAPIと通信します。どのAPIがすべてのターゲットプラットフォームとデバイスに対応できるかについて、じっくり考えることが非常に重要です。デスクトップアプリとモバイルアプリのユーザーの期待の違いと、これが基盤となるAPIにとって何を意味するのかを考えてください。

異なるターゲットプラットフォーム(モバイル、Web、デスクトップ)に同じクライアント側コードを使用しようとしないでください。そのようにすると、確かなユーザーエクスペリエンスが得られることはありません。さまざまなフロントエンドの場合、目的のすべてのプラットフォームに拡張できる単一のテクノロジースタックに焦点を当てることがおそらく最善です。そうでなければ、あなたは学ぶべきことの量に溺れるでしょう。 Webスタックを選択するのは安全な選択です。これは、さまざまなソリューション(Adobe Air、Sencha Touchなど)を使用してモバイルデバイスやデスクトップデバイスに適応できるためです。どうしても必要な場合は、後でネイティブiphoneアプリを作成するためにObjectiveCを選択できます。

私の場合、次のテクノロジを選択します。

  • サーバーサイド:PHPまたはnode.js
  • クライアント側(Web):Ext JS
  • クライアント側(モバイル):Sencha Touch
  • クライアント側(デスクトップ):Adobe Air

それらがあなたにとって最良の選択であると言っているのではありません。彼らは私にとって最良の選択でしょう。

2
Joeri Sebrechts