モバイル アプリケーションが存在する状況が現在変化していることを考えると、この質問に対する「最良の」答えも変化すると思いますが、現時点では、モバイル アプリケーションを構築するのに最適なオペレーティング システム/フレームワークはどれですか。
コスト、学習曲線、市場浸透の観点から考えています。
6 に答える
アンドロイド
コスト: 0
学習曲線: Java を知っていればほぼゼロ
市場への浸透: 巨大
今年の Android スマートフォンの売上は 900% 増加すると予想されており、市場はスマートフォンに限定されません。一部のミニコンピュータもその方向に進んでおり、OS として Android を選択しています。
アプリケーションの最終結果要件を定義する必要があります。
答えの一部は、実行するモバイル ハードウェアによって異なります。また、ハードウェアの独自の機能 (タッチスクリーン、バーコード スキャナー、GPS、特殊ボタン、VOIP など) を使用する必要があるかどうか、または単純な入力/出力画面フレームワークで十分かどうか。
これにより、ローカル アプリケーションや、Web アプリケーションやターミナル サービスなどのよりリモートなアプリケーションへの決定が促される可能性があります。(もちろん、リモート サービスを使用するローカル アプリケーションもあります。複数のフロントエンドを考慮する必要がありますか?)
また、開発の強みはどこですか?あなたの言語能力は?おっしゃったように、モバイル アプリケーションの開発は、初期の開発/デバッグ/デプロイ環境の学習とセットアップのために急勾配のスタートアップ曲線を描くことがあります。それは価値がありますか、それともデスクトップまたは Web 開発の経験を活用してリモートで展開できますか?
これらの決定を行い、開発環境とターゲットを決定したら、次のステップに進み、ニーズに固有のフレームワークと方法論を検討できます。
あなたが書いたように、環境は常に変化していますが、アプリを可能な限り移植性の高いものにするつもりなら、私の謙虚な意見では、Java Micro Edition (J2ME) で開発を開始する必要があります。この仕事に最適な IDE の 1 つは Netbeans です。
私が推測するデバイスに依存します。すべてのデバイスで動作するものを書く一般的な方法は 1 つではないと思います。
大きなものは次のとおりです。
- Windows Mobile: C++ または .NET Compact Framework (Java ランタイムを手動でインストールする場合は JavaME)
- iPhone: C++ (だと思います)。IIRC はまだ Java をサポートしていません。
- アンドロイド: JavaME
- ブラックベリー: JavaME
- その他の非スマート/PDA デバイス: おそらく C++?
マーケット シェアに関しては、現時点で iPhone よりも優れた視認性とヒット率を得ることはできません。Blackberry は iPhone よりもはるかに多いが、iPhone でアプリを購入してダウンロードする人の数ははるかに多い。
ただし、iPhone 向けの開発を開始する場合、コストはかなり高くなります。
- どんな種類の iPhone 開発を行う場合でも、Mac を入手する必要があります。これにより、ローエンドで約 1k に戻ります。
- 年間99ドルのiPhone開発者アカウントを支払う必要があります
Objective-C にある iPhone SDK を学習することは、既に知っている場合は C/C++ に似ています。
とはいえ、Palm Pre がどんな種類のスプラッシュを作るかは誰にもわかりません。したがって、市場シェアは不明であり、費用についてはわかりませんが、HTML/Javascript を知っていれば問題ありません。
Androidに関して言えば、それは素晴らしいプラットフォームですが、市場シェアはまだバケツのほんの一滴です. これは Java で書かれており、多くの優れた API を備えていますが、Android デバイスを手にする人がもっと増えるまでは、ちょっと意味がありません。
Blackberry は、iPhone 以外で開発するのに適したプラットフォームです。SDK は Java であり、私が聞いたところによると、仕事を成し遂げるためのまともなツールがあります。ここでの利点は、消費者向けアプリの可能性とエンタープライズ アプリの可能性がたくさんあることです (すべてのビジネスにはこれらのアプリが多すぎるためです :)
したがって、それはあなたがどれだけ使いたいか、そしてあなたがどんな種類のアプリを使っているかによって異なります. これらのプラットフォームにはそれぞれ独自の SDK があり、とにかく学習する必要があるため、学習曲線は問題にならないと思います。したがって、これらのプラットフォームのそれぞれについてほぼ同じレベルから始めていることになります。
私のおすすめは(順番に):
- iPhone
- ブラックベリー
- ??
とはいえ、それがモバイルアプリ開発の現在の見方です。常に最新の状態に保ち、少なくとも他のプラットフォームの概念を把握して、可能性を広げることができるようにすることをお勧めします。