2016年3月30日 16:18
今知りたい! C#とXamarinでiOS/Androiアプリ開発 (1) クロスプラットフォーム開発環境の現在
例えば、「WebサービスのAPIにアクセスしてJsonデータを取得してパースして格納する」というような処理は、SwiftではAlamofireとSwiftyJSONを使用するかもしれません。Android JavaではvolleyとGSONを使用するかもしれません。このようなロジック部分の処理は、ほぼ.NETで記述できます。標準の Microsoft.Net.Http でhttp通信をし、Json.NETというライブラリでパースしたりできます。
このように、ロジック部分の処理を.NETで記述することで、各プラットフォーム固有の処理を減らし、共通化の割合を高めていくと4割~7割ほどを共通化できるとされています。また、各プラットフォームで実装が異なる各種センサへのアクセスなども、Xamarin対応の共通化ライブラリが数多く出てきており、共通コード内で記述できるようになってきています。
Xamarinネイティブでは、UIは各プラットフォーム標準のStoryboard(iOS/Mac)、xml(Android)を使用します。そのため、ユーザが違和感なく操作できるアプリを作成できます。
以下はVisual Studio 2015で左からWindows Phone/iOS/AndroidのUIを編集している画面です。