モノ、MonoTouch + C#vs iPhone SDK + Objective-C

ソフトウェア開発者としての私の活動が、iPhoneと.NETテクノロジーの両方に関係していることがたまたまありました。 プライマリであると言うと、もちろん.NETとC#であるため、情報はドナーの観点から提供されます。



この記事では、MonoTouchを使用したモノラルとネイティブのObjective-Cで1つのプロジェクトを同時に開発した少しの経験についてお話したいと思います。



プロジェクトの説明



1つのiPhoneアプリケーションに対して、美しいページめくり効果を開発する必要がありました。 行う必要があることの良い例が、Silverlightアプリケーションとしてインターネット上で見つかりました。



オプション#1:Mono + MonoTouch



Monoが何であるかを言う必要はないと思います。



MonoTouchを使用すると、C#でアプリケーションを作成し、iPhone用にコンパイルしたり、.NETライブラリを使用したりできます。



ソフトウェアのフルセット:

* Apple Mac OS X

* Mac OS X用Monoをインストール

* MonoDevelop

* MonoTouch



まず、Silverlightソースコードはmacosで問題なくコンパイルされ、Safariで起動されました(macosのSilverlightはすでにMoonlightです )。 それは良い兆候でした。



MonoTouchプロジェクトが作成され、クロスプラットフォームのコピー&ペースト技術を使用して、アプリケーションの80%が作成されました。 残りのコードの適応には約2日かかり、その後アプリケーションの最初のバージョンがデモされました。 アプリケーションが迅速に機能したことに注意してください(主に画像変換に使用された数学的計算で構成されていました)。



残念ながら、MonoTouchバージョンは顧客に適さず、ネイティブのObjective-Cで記述されたアプリケーションが必要でした。



オプション#2:iPhone SDK + Objective-C



C#からObjective-Cへのコードは日中に書き直され、その後...アプリケーションはひどく遅くなり始めました。 さらに2日間はメモリリークとの戦いといくつかのローカル変数のリリースの作成に費やされ、その後、アプリケーションは同様に動作し始めました。



ここでは、停止して余談をする必要があります。 優れた開発者は、割り当て、メモリの解放の仕組み、メモリリークの検索方法、およびそれらが存在しないことを確認する方法を理解する必要があることを完全に理解しています。 ですから、なぜ.NETとC#が好きなのか、何か実装する方法に気を取られる必要はありませんが、実装する必要があるものに集中できます。



結論



したがって、この状況で次の結論を出しました。

*上記のツールの使用を開始するために、中毒や追加のマニュアルは必要ありません(Xcodeの場合)。

*アフィリエイトであり、C#とMonoTouchで書く機会がある場合-より良くすれば、多くの問題からあなたを救うでしょう。

*モノ-誰かが考えたいようなプラットフォームではありません。

* MonoTouchは若い製品であるという事実にもかかわらず、この製品を使用する機能に関連するネットワーク上にはすでに多くの資料があります。

*実際には、iPhone SDKを使用しますが、C#構文と.NET機能を使用します(たとえば、[string1 stringByAppendingString:string2]の代わりにstring1 + string2);

* MonoDevelopの使いやすさは、Xcodeよりもはるかに高くなっています。



この小さな経験が、将来あなたがiPhoneアプリケーションを開発するためのツールを選択するときに役立つことを願っています(あなたがアフィリエイトである場合)。



PS結果として、OpenGL ESが実装に選択されました。これは、デバイス上での効果が非常に遅かったためです。



All Articles