読者です 読者をやめる 読者になる 読者になる

Xamarin 日本語情報

Xamarin(ザマリン) の代理店だったエクセルソフト田淵のブログです。主に Xamarin に関するエントリーをアップしていきます。(なるべく正しい有益な情報を掲載していきたいと考えていますが、このブログのエントリーは所属組織の公式見解ではありませんのでご注意ください)

Project "Astoria" 終了について

Xamarin Xamarin.Android

こんにちは。エクセルソフトの田淵です。

早速というかやはりというか、Microsoft の Bridge プロジェクトにいくつかの発表があったようです。

blogs.windows.com

Bridge プロジェクトは、Windows Store の拡充を狙い、様々なプラットフォームから Windows ストアに掲載できるアプリを生成する機能です(個人的理解)。

その中で、Project "Astoria" は Android の apk をそのまま Windows Phone で動作させるという野心的なものでした。が、以前よりこのプロジェクトの終了が発表(噂?)されており、今回正式に Astoria の終了と、Xamarin を使ってほしい旨の見解が発表されました。Project "Islandwood" は、Visual StudioObjective-C のコードを開き、適切な変更をさせて、Clang でビルドするというもので、継続されるようです。

"Astoria" は、apk を直接変換するので、変換できなかった時は Java コードの修正が必要になりますし、あまり Microsoft として嬉しくなかったのかもしれません。ただ、「じゃあ Android Java のコードを Xamarin.Android 用に C# に書き換える?」というのは乱暴ですよねw

Android Java アプリを Xamarin.Android にポーティングするには?

そこで、Xamarin には次のドキュメントが用意されています。

Xamarin for Java Developers - Xamarin

Android Java のコードを C# に移植すると次のような利点があると記載されています。

  • プロパティ - C# のプロパティを使用すると、Getter, Setter メソッドを記述することなく、安全に直接メンバー変数にアクセスすることができます。
  • ラムダ式 - C# では、ラムダ式とも呼ばれる匿名メソッドを使用できて、より簡潔に、効率的に機能性を表現することが出来ます。あなたは 1回だけ使用するオブジェクトを記述するオーバーヘッドを回避したり、パラメータを追加しなくても、メソッドにローカルな状態を渡すことができます。
  • イベント処理 - C# では言語レベルでオブジェクトが対象のイベントが発生したときに通知されるように登録するイベントドリブンプログラミングをサポートします。イベントのキーワードは、イベント発行クラスがイベント購読クラスに通知するために使用できるマルチキャストブロードキャスト・メカニズムを定義します。
  • 非同期プログラミング - C# の非同期プログラミング機能(async/await)は、アプリを応答可能にします。非同期プログラミング機能の言語レベルのサポートで、非同期処理の実装が簡単に、よりエラーが発生しにくくすることができます。

今回の買収発表で Xamarin を知った方で、Android アプリしかなくて iOS 作るのはなーと思っている方は(似て非なるものですが)C# への移植を検討してみてください^^

Xamarin はいいぞ

まず最初にやることは Android アプリの機能の棚卸かと思います。その中でも、Android アプリで使用しているライブラリと同じような機能を持つ、.NET のライブラリがあるか?を探すのが良いと思います。例えば Google gsonJson.NET などです。

また、全部を書き換えるのは辛いので、Android アプリの資産を活用する方法も紹介されています。

  • Java Binding ライブラリ作成
  • JNI を使用してネイティブライブラリ呼び出し

上記について詳しくは以下をご覧ください。

Xamarin for Java Developers - Xamarin

iseebi.hatenablog.com

qiita.com

JXUGC #11 開催

今回は 初心者向けのハンズオン大会 です。ホントにベーシックな内容ですが、ご興味のある方は是非お越しください^^

Xamarin 気になった方は

是非 ダウンロード(直接) / ダウンロード(弊社経由) して触ってみてください。 学習用リソースJXUG リンクページ に参考資料を纏めてますので併せてどうぞ。

Xamarin の情報が欲しい方はこのブログも購読いただいたりすると嬉しいです。

以上です。