つふ?尝罢201212151. C# と Android と+@
第12回 つ部 ミーティング兼忘年会
昼の部 LT 2012.12.15
@whale_shark じんべえざめ
1
3. Javaと何がちがうの?
? 型推論
– var x = new List<Human>();
? 自動実装プロパティ
– class Human { public Age {get; set;} …}
? ラムダ式
– button.Click += (sender, e) => { <処理> };
? LINQ
– var y = from p in x where p.Age < 20 select x.Name
etc... 3
4. 何が良くなるの?
? 多機能
– かゆいところに届く機能が多い
? AndroidをC#で書き直したら早くなった
(もうプロジェクト終了したけど…
– http://tatete.blogspot.jp/2012/05/android-osc7-
xobotoos.html
4
5. C# で Androidアプリをつくるには
? IDEで開発するなら
– WindowsならVisual Stadioをそれ以外ならMonoDevelop
をいれましょう
– http://monodevelop.com/
? Mono for Android
– C#でAndroidアプリを開発できるライブラリ
– シミュレータは無料
実機にいれる場合は$399~
– http://xamarin.com/monoforandroid
5
7. 比較
Java C#
? メインアクティビティの ? メインアクティビティの
ステップ数:117 ステップ数:88
7
8. ステップ数が減った!
? ラムダ式とLINQ
– Javaだと
for(SampleDataModel listItem : listItems)
if(listItem.getAddress().contains(“県”))
selectedItems.add(listItems.getName());
– C#だと
selectedItems = items
.Where(item => item.Address.Contains(“県”))
.Select(item => item.Name)
8
9. リスナーの設定が簡単
? イベントリスナーはJavaだと冗長 (不適切かも)
– Javaでは
list.setOnItemClickListener(new OnItemClickListner(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
<処理>
}
});
– C#では
list.ItemClick += (sender, e) => {
<処理>
}; 9