モバイルアプリの開発経験から、開発が最も簡単なモバイル開発プラットフォームはどれですか? iOS、AndroidまたはWinPhone7?そしてなぜそれが最も簡単だと思いますか?最も簡単なものから最も難しいものまで注文できるなら、それはさらに良いです。
私の経験からこれは、実行したいアプリケーションの種類に大きく依存します。プラットフォームに精通していることは問題ではないと仮定します。
「プログラミングロジック」、「アルゴリズムヘビー」アプリケーションを開発する必要がある場合:
WinPhone 7-> Android-> iOS(難易度の昇順)
理由:WinPhoneは、その領域で強力な言語セット(「C#、F#とJavaまたはObjective-C)」を組み合わせた「そのまま」をサポートし、 「バックエンド」のもののためのかなり良い標準ライブラリ(Androidとほぼ同じですが、この点で恥ずかしいだけのCocoaをはるかに上回っています)。
Objective-Cにはジェネリックがなく、そのコレクションAPIにはマップ/フィルター/フォールドなどの操作の幅広いサポートがありません(基本的なサポートはクロージャ/ブロックのおかげです)。データ構造の基本的な実装は、格納する要素の数によって変わります。これにより、たとえば次のような場合にパフォーマンスを予測することが困難になります。 NSArray、NSDictionariesなどを使用すると、これをかなり冗長な構文、非常に異常なメソッドの命名規則、APIの明白な穴(例:正規表現なし、パーサーなし)と組み合わせると、単純なアルゴリズムを実装する場合でも大量のボイラープレートが発生します。
Javaは、クロージャーの欠如(結果として生じるコードの膨張によるコレクションの変換)と具体化されていないジェネリック(大きな問題ではない)によって「ただ」妨げられ、必要以上に頻繁にNullポインター例外をチェックする必要があります。あるデータセットを別のデータセットに変換したい場所(ほとんどのアルゴリズムは本質的に)を表現しようとすると、これらすべてが自明ではない量の定型文になります。 F#(および程度は少ないがC#)にはこの手荷物は付属していません。これは、私の経験では、「アルゴリズムの処理」を行うときにコードが大幅に少なくなる結果になります。
余分な作業が気にならない場合は、ClojureやScala on Androidを使用すると、この点で同じ場所に配置できます。 WinPhoneとして。MonoTouch/ Mono Androidこの点でも、iPhoneを近づけることができます。
「UIを多用する」、「相互作用が重い」アプリケーションを開発する必要がある場合、私のランキングは:
iOS-> WinPhone 7-> Android(難易度の高い順)
理由:これは[〜#〜] imho [〜#〜]非常に主観的ですが、CocoaTouchは非常に主観的です美しいUIウィジェットとObjective-Cの豊富なセット(そのままでは古風なもの)は、「UIのもの」(Key-Valueコーディング、レスポンダーチェーンなど)の処理に非常に適しています。 WinPhoneはこの点で興味深いようです(デリゲート/ラムダは非同期イベントの処理に非常に役立ちます)ので、2番目に近いと思います。 Androidを使用してGUIを作成することは、私見では不必要に複雑です。これの一部は、Javaのダイナミズムやクロージャーの欠如の結果です。
金属に本当に近づく必要がある場合-ハードウェアを最大限に活用する場合は、そのようにランク付けします:
Android-> iPhone-> ...-> WinPhone 7(難易度の昇順)
理由:Androidを使用すると、ネイティブアプリを開発し、(理論的には)制限なしで配布できます。iPhoneには他のオプションはありませんが、AFAIK Appleは、OSへのアクセスをAndroidよりも少し制限します。それを除けば、どちらも非常に近いと思います。WinPhoneは完全にサンドボックス化します。
もちろん、他にも複数のシナリオがあり、対応するランキングがあります。