BT

Ready for InfoQ 3.0? Try the new design and let us know what you think!

XamarinがiOS/Mac用のUnified APIをリリース,64ビットをサポート

| 作者: Matt McComb フォローする 0 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2015年2月4日. 推定読書時間: 3 分 |

原文(投稿日:2015/01/22)へのリンク

Xamarinは先週,iOS SDK(Xamarin iOS)のバージョン8.6を発表した。同社のiOSとMac用のUnified APIを含む,最初の非ベータ版リリースだ。Unified APIは32ビットのMono TouchとMonoMacを代替するもので,両プラットフォーム間でのコード再利用の実現に加えて,新たに64ビットをサポートする。今回のリリースは,新たに提出するすべてのアプリケーションを64ビット対応する期限としてAppleが設定した,2月1日よりも2週間先んじたことになる。

Xamarinのモバイル開発プラットフォームは,C#によるネイティブなクロスプラットフォームモバイルアプリの開発を可能にする。iOSとAndroid用の互換ランタイムの開発には,オープンソースのMonoツールチェーンを活用している。iOSではAOT(Ahead-of-Time)コンパイラを使用して,C#アプリケーションをネイティブなARMアセンブリコードにコンパイルする。Androidでは,C#は中間言語にコンパイルされた上で,デバイス上でさらにJIT(Just-in-Time)コンパイルされる。これにより,一度開発したアプリケーションをiOSやMac,Android,さらにはWindows Phoneで実行できるようになるのだ。

新しいUnified APIは,旧MonoTouch APIと大きくは違っていないが,クロスプラットフォームなコード再利用と64ビット互換性とを進める目的で,2つの大きな変更が施されている。

  1. ネームスペースの削除 -iOSおよびMacに特有のネームスペースが廃止され,ひとつのネームスペースに統合された。例えば,これまでのMonoTouchのFoundationフレームワークは,iOSではMonoTouch.Foundation,MacではMonoMac.Foundationというネームスペースであったが,いずれのプラットフォームもFoundationというネームスペースで見付けられるようになった。
  2. 新しいネイティブタイプ -旧MonoTouchとMonoMac APIでは,NSInteger(32ビットデバイスではint,64ビットデバイスではlong と解釈される)のようなアーキテクチャ非依存の型であっても,常に対応する32ビットの.NETの型にマップされていた。この制限を訂正するためにXamarinは,System.nint, System.nuint, System.nfloatという,3つのネイティブタイプを新たに導入した。それぞれの型は暗黙的に,デバイスのアーキテクチャについて適切なバッキングタイプにマップされる。Unified APIでは.NETのプリミティブタイプに代えて,これらの新しいネイティブタイプが積極的に使用されている。

Unified APIを使用するようにアプリをアップデートしたい開発者は,手作業でそれを行うか,あるいはXamarinのMigration Toolを利用する。Xamarin Studio 5.7の一部として配布されるMigration Toolは,必要なプロジェクト設定と,API参照の更新を自動的に行ってくれるツールだ。別の選択肢として,“Updating Existing iOS Apps”ガイドに示されたステップに従って,アプリを手作業でアップデートする方法も可能だ。Xamarinは双方のアプローチに関する詳しい情報を,今週初めのウェビナでも提供している。その時の録画は,Xamarinのブログで見ることができる。

2014年12月にInfoQがレポートしたように,Xamarinは,サードパーティのライブラリやコンポーネントの開発者を対象として,ベータリリースを配布することで,プロジェクトのアップデートを促進している。ただし,すべてのサードパーティコンポーネントがアップデートを行う訳ではない。この問題を回避するには,開発者自身がプロジェクトビルドの一部分として,これらのコンポーネントのコードの移行とコンパイルを行う必要がある。

開発者はUnified APIを使うことで初めて,64ビット対応のiOSおよびMacアプリをコンパイルできるようになる。この機能が特に関係するのは,iOSアプリを新規開発中の開発者たちだ。10月のAppleの発表によって,新たに開発されるアプリは,2015年2月1日までに64ビット対応しなければならなくなった。すでにAppStoreで公開済のアプリの開発者には,さらに猶予が与えられていて,2015年6月1日までに64ビット対応を追加するアップデートを行えばよい。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション
BT