Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Xamarin for
Androidを
試してみた
2013/12/08 李充根
Mono知ってますか?
 .NETのオープンソース実装
 .NET Framework互換のMono実行環境及びC#コ

ンパイラや標準ライブラリなどが付属
 Linuxなどで.NETアプリが起動する!
 Unityなどにも使われている...
じゃあXamarinって何よ
 Monoプロジェクト主導している企業、及びそ

こが出している製品
 IDEのXamarin Studioなどをだしている
 C#でiOSやAndroidアプリを開発できる
XamarinForAndroi...
Xamarin For Android
 C#を使ってAndroid開発を行える開発ツール
 Android標準のDalvikVMの代わりに同梱されて

いるMonoVMが走ってJITコンパイルによりア
プリが動作する
 Xamarin ...
XamarinTouch
 iOS用の開発ツール
 こちらはC#をネイティブコード(Objective-C)に

変換してコンパイルする
 そのためダイナミックに動作するC#特有の一
部機能(reflection等)は非対応
 Macを...
他のクロスプラットフォーム開
発環境との違い
 Titanium



UIやIOのアクセスなどはプラットフォーム固有
のものを使うため共通化できない
ロジックの部分の共通化しかできない

 Adobe AIR


ランタイムがアプリ...
開発の基本
 大体はJavaと一緒
 Javaの文法で書かれているところをC#風に書

き換えるだけで何となく分かる
 IDEの推測候補により大体の使い方は見えてく
る
 ソリューションのフォルダ構成はeclipseとほ
ぼ同様なので迷...
Activityの基本
namespace SampleForAndroid
{
[Activity (Label = “SampleAndroid", MainLauncher = true)]
public class MainActivi...
delegateもラムダ式もあるんだよ
 AndroidのJavaは未だに6!!(せめてそろそろ7

ベースにならんもんか)
(ちなみにAndroidのバイトコードはソース
→(JDK)→Javaバイトコード→(ADK)→Dalvikバイト
...
使い方
Xamarin for AndroidではADKでのListenerがeventに
なっている
 そのためdelegateで複数のメソッドを追加できる
例:


Button button = FindViewById<Button...
使い方
 匿名関数にする
button.Click += delegate{
i++;
};
 ラムダ式にする
button.Click += () => i++;
Jarライブラリが使えたらそれは
とっても嬉しいなって
 Androidの開発なので既存資産の流用としてJar

ライブラリを使いたい時がある
 Jarをバインドする仕組みも用意されている
 方法は簡単で新規ソリューションから

「And...
私ってホントバカ
 と実際にやってみようとTwitter4Jをバインド

させたところ謎のビルドエラーにより使用で
きなかった
 アセンブリ参照の不足?
 やっぱりまだ安定度は低いかも……
その他


ライセンス









Starterのお試しライセンスだとILコード(バイトコー
ド)で32KBまでしかビルドできない
個人開発者向けのライセンスは$299ドル
もう少し安ければ検討するけど……

32KBでも...
ご清聴ありがとうございまし
た
Upcoming SlideShare
Loading in …5
×

xamarin for android試してみた

1,418 views

Published on

  • Be the first to comment

xamarin for android試してみた

  1. 1. Xamarin for Androidを 試してみた 2013/12/08 李充根
  2. 2. Mono知ってますか?  .NETのオープンソース実装  .NET Framework互換のMono実行環境及びC#コ ンパイラや標準ライブラリなどが付属  Linuxなどで.NETアプリが起動する!  Unityなどにも使われている  ちなみにIKVM.NETという.NET(Mono)上に JavaVMを実装するというわけのわからないも のある
  3. 3. じゃあXamarinって何よ  Monoプロジェクト主導している企業、及びそ こが出している製品  IDEのXamarin Studioなどをだしている  C#でiOSやAndroidアプリを開発できる XamarinForAndroid、XamrinTouchがある
  4. 4. Xamarin For Android  C#を使ってAndroid開発を行える開発ツール  Android標準のDalvikVMの代わりに同梱されて いるMonoVMが走ってJITコンパイルによりア プリが動作する  Xamarin StudioほかプラグインとしてVisual Studioでも動作する(未検証)  ビルドされたAPKはランタイムを含んでいる ため大きい(HelloWorldで3.5MB)
  5. 5. XamarinTouch  iOS用の開発ツール  こちらはC#をネイティブコード(Objective-C)に 変換してコンパイルする  そのためダイナミックに動作するC#特有の一 部機能(reflection等)は非対応  Macをサーバとして使うことによりVisual Studioでも開発可能らしい(調べてない)  iOS開発環境が無いため不使用
  6. 6. 他のクロスプラットフォーム開 発環境との違い  Titanium   UIやIOのアクセスなどはプラットフォーム固有 のものを使うため共通化できない ロジックの部分の共通化しかできない  Adobe AIR  ランタイムがアプリにパッケージされている  アプリとランタイム間で互換性問題が発生しな い ファイルサイズは大きい 
  7. 7. 開発の基本  大体はJavaと一緒  Javaの文法で書かれているところをC#風に書 き換えるだけで何となく分かる  IDEの推測候補により大体の使い方は見えてく る  ソリューションのフォルダ構成はeclipseとほ ぼ同様なので迷うことはない  レイアウト等のXMLファイルが.axmlとなって いるが中身は他と変わらずGUI編集画面もあ る
  8. 8. Activityの基本 namespace SampleForAndroid { [Activity (Label = “SampleAndroid", MainLauncher = true)] public class MainActivity : Activity { protected override void OnCreate (Bundle bundle) { base.OnCreate (bundle); SetContentView (Resource.Layout.Main); } }
  9. 9. delegateもラムダ式もあるんだよ  AndroidのJavaは未だに6!!(せめてそろそろ7 ベースにならんもんか) (ちなみにAndroidのバイトコードはソース →(JDK)→Javaバイトコード→(ADK)→Dalvikバイト コードの流れでコンパイルされる)  来年の3月に出るJDK1.8でようやく対応される ラムダ式!Androidでの対応は未定  それがXamarinなら今にでも使えるよ
  10. 10. 使い方 Xamarin for AndroidではADKでのListenerがeventに なっている  そのためdelegateで複数のメソッドを追加できる 例:  Button button = FindViewById<Button> (Resource.Id.myButton); button.Click += hoge; …… void hoge(){ i++; }
  11. 11. 使い方  匿名関数にする button.Click += delegate{ i++; };  ラムダ式にする button.Click += () => i++;
  12. 12. Jarライブラリが使えたらそれは とっても嬉しいなって  Androidの開発なので既存資産の流用としてJar ライブラリを使いたい時がある  Jarをバインドする仕組みも用意されている  方法は簡単で新規ソリューションから 「Android Java Bindings Library」を選択するだ け  あとはソリューションのJarsフォルダに使い たいJarファイルを突っ込めばいいだけ  使う側ソリューションは参照に追加すれば良 い
  13. 13. 私ってホントバカ  と実際にやってみようとTwitter4Jをバインド させたところ謎のビルドエラーにより使用で きなかった  アセンブリ参照の不足?  やっぱりまだ安定度は低いかも……
  14. 14. その他  ライセンス       Starterのお試しライセンスだとILコード(バイトコー ド)で32KBまでしかビルドできない 個人開発者向けのライセンスは$299ドル もう少し安ければ検討するけど…… 32KBでもそれなりに遊べるのでインストールだけ でもどうですか? MacでC#使うことができるようになりますし 速度  DalvikVMを介さないコードなので他のものに比べる と比較的高速
  15. 15. ご清聴ありがとうございまし た

×