3

私は最初のモバイルアプリを作成しようとしているPythonプログラマーです。iOSとAndroidの両方で、見た目も使い心地もネイティブなアプリを作りたいです。すべてがどのように機能するかを確認するために、単純なiPhoneアプリから始めようと思いました。モノは明らかな解決策のようです。しかし、私が見つけたほとんどすべてのサンプルのMonotouchコードと、ここでのStackoverflowの回答は、IOSフレームワークに大きく依存しており、本質的にコードがクロスプラットフォームではないことに驚きました。たとえば、私はタイマーの使用を検討していました。私が読んだすべての例はNSTimerを使用しています。確かに、これはC#自体で実行できるので、その部分はクロスプラットフォームになりますか?しかし、なぜこれらすべての人々がNSTimerを使用するのでしょうか。

だから、私の質問は、IOS / AndroidのMono開発はどのようにクロスプラットフォームですか?小さいアプリを検討する価値はありますか、それともビジネスロジックがたくさんある非常に大きなアプリだけを検討する価値がありますか?

4

2 に答える 2

9

あなたの質問は一般的すぎます。2 つのシナリオについてお答えします。

具体的な例
タイマーの作成方法、配列の作成方法、リストのトラバース方法を探している場合は、通常の .NET の例を探して、これを両方のプロジェクトで使用できる単一のクラス ライブラリにコンパイルしてみませんか。

コード全体の
共有 2 つのプラットフォーム間でコードを一般的に共有することだけを意味する場合は、テンプレートとサンプルが作成されたフレームワークを検討する必要があります。このような 2 つのパターンは、http://www.monocross.net/ (MVC) とmvvmcross (MVVM) です。これは、プロジェクトを最初から構築してクロスプラットフォーム開発 (iOS、Droid、Wp7、デスクトップなど) をサポートするのに役立ちます。

.NET 基本クラス ライブラリには、タイマー、配列、および文字列があります。これまで見てきたように、MonoTouch がラップする Cocoa ライブラリーにはいくつかあります。たとえば、.NET ではミル文字列を定期的に実行していますが、モノタッチでは NSString のオプションもあります。あなたの質問に答えると思いますが、人々が iOS 固有のタイプを時々使用する理由は、そのコードをクロスプラットフォームにしようとしておらず、それは好みの問題だったからか、必要な特定のことをしなければならなかったからです。すべての人に当てはまるわけではないそのタイプの使用。

Mono の目的は、クロスプラットフォーム開発を支援することだけではありません。私は C#/.NET のバックグラウンドを持っているので、1 つの画面と 2 つのボタンを備えたアプリを構築する場合でも、MonoTouch を使用します。なぜなら、Obj-C よりも .NET BCL で C# を使用したいからです。しかし、それは私自身の個人的な選択であり、私にとって十分な決定要因です.

編集
リンクを追加しました。

于 2012-06-22T15:50:30.430 に答える
0

重要な点は、Monoを使用し、NSSTringなどのプラットフォーム固有の型を使用しないためには、Mono型のみを使用するコードを記述できるプラットフォーム固有のラッパー(抽象化レイヤー)が必要だと思います。

つまり、Monoの使用について質問していますが、実際に必要なのはMonoTouchとMonoDroidです(@valdeteroによって参照されるフレームワークは、それらを支えるラッパーに依存します)。

于 2012-09-10T15:16:05.493 に答える