SlideShare ist ein Scribd-Unternehmen logo
1 von 15
C# と Android   と+@



第12回 つ部 ミーティング兼忘年会
     昼の部 LT 2012.12.15
   @whale_shark じんべえざめ

                         1
C#って?
• MS社によって開発された
  オブジェクト指向言語

• Javaと同様に中間言語を生成する

• Windows以外でもMonoを導入すれば動く
                            2
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
何が良くなるの?
• 多機能
 – かゆいところに届く機能が多い


• AndroidをC#で書き直したら早くなった
                                  (もうプロジェクト終了したけど…

 – http://tatete.blogspot.jp/2012/05/android-osc7-
   xobotoos.html
                                                     4
C# で Androidアプリをつくるには
• IDEで開発するなら
  – WindowsならVisual Stadioをそれ以外ならMonoDevelop
    をいれましょう
  – http://monodevelop.com/
• Mono for Android
  – C#でAndroidアプリを開発できるライブラリ
  – シミュレータは無料
    実機にいれる場合は$399~
  – http://xamarin.com/monoforandroid

                                               5
実際に書いてみる
• C#とJavaを比較できるように、
  Javaでも同じようなコードを書く

• 画面レイアウトや文字のリソースは共通

• 実装は3つのクラス
 – メインアクティビティ
 – データのモデル
 – データの実態

                       6
比較
Java            C#
• メインアクティビティの   • メインアクティビティの
  ステップ数:117       ステップ数:88




                                7
ステップ数が減った!
• ラムダ式と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
リスナーの設定が簡単
 • イベントリスナーはJavaだと冗長                                                                         (不適切かも)


        – Javaでは
list.setOnItemClickListener(new OnItemClickListner(){
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
               <処理>
        }
});

        – C#では
                           list.ItemClick += (sender, e) => {
                                  <処理>
                           };                                                                          9
欠点
• Android上での実行にはMonoのランタイム
  が必要になる
 – Monoランタイムがシミュレータに
   インストールされたものを見た限りだと16MB

• 実機で動かす場合有償
 – 年間$399は高い
                         10
まとめ
• C#で書くとJavaに比べ高機能なので
  複雑な記述を容易にすることが出来る

           これだけで終わり?
•   ランタイムが必要な事や有償であるなど
           C#みたいに使えれば
    敷居が高い

                         11
Xtend
• Eclipseを作っているチームが作成した
  ドメイン固有言語 (CoffeeScriptとかJSXみたいなの)

• XtendからJavaのソースコードが生成され
  る

• ラムダ式や拡張メソッドなどが使える
                                      12
試しに書いてみた
• Xtendを用いて同じアプリを書いてみた

• 比較までにステップ数
 – Java : 117
 – C# : 88
 – Xtend : 65
                         13
まとめ
• どうしてもJavaを使う必要があるならば
  Xtendで世界が変わるかも知れない!

• Androidで動作させるには少しコツが必要
 – ライブラリがたりなかった

• 情報が少ないのが欠点かも
                           14
まとめのまとめ
• C#ならWindows Store アプリと
  ロジック部分が共通に出来るかも

• XtendならJavaの資産をそのまま使って
  ラムダ式とか使える

                           15

Weitere ähnliche Inhalte

Was ist angesagt?

モテる JavaScript
モテる JavaScriptモテる JavaScript
モテる JavaScript
Osamu Monoe
 
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例までBuildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Masahiro Wakame
 
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
 
大規模なギョームシステムにHaxeを採用してみた話
大規模なギョームシステムにHaxeを採用してみた話大規模なギョームシステムにHaxeを採用してみた話
大規模なギョームシステムにHaxeを採用してみた話
terurou
 
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
Nobukazu Hanada
 
Javascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみるJavascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみる
Shunji Konishi
 
JVMの中身を可視化してみた
JVMの中身を可視化してみたJVMの中身を可視化してみた
JVMの中身を可視化してみた
Kengo Toda
 

Was ist angesagt? (20)

普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話
 
モテる JavaScript
モテる JavaScriptモテる JavaScript
モテる JavaScript
 
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例までBuildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
 
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
 
モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目
 
JavaScriptで出来る、あんなことこんなこと
JavaScriptで出来る、あんなことこんなことJavaScriptで出来る、あんなことこんなこと
JavaScriptで出来る、あんなことこんなこと
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
大規模なJavaScript開発の話
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話
 
大規模なギョームシステムにHaxeを採用してみた話
大規模なギョームシステムにHaxeを採用してみた話大規模なギョームシステムにHaxeを採用してみた話
大規模なギョームシステムにHaxeを採用してみた話
 
PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料
 
俺とホットキー
俺とホットキー俺とホットキー
俺とホットキー
 
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
 
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
 
第51回NDS PostgreSQLのデータ型 #nds51
第51回NDS PostgreSQLのデータ型 #nds51第51回NDS PostgreSQLのデータ型 #nds51
第51回NDS PostgreSQLのデータ型 #nds51
 
第52回なんてかんたんなJavaEE
第52回なんてかんたんなJavaEE第52回なんてかんたんなJavaEE
第52回なんてかんたんなJavaEE
 
俺と LightSail 概要と使ってみた
俺と LightSail  概要と使ってみた俺と LightSail  概要と使ってみた
俺と LightSail 概要と使ってみた
 
Javascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみるJavascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみる
 
Predefを使ったsqlのトレース
Predefを使ったsqlのトレースPredefを使ったsqlのトレース
Predefを使ったsqlのトレース
 
動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集
 
JVMの中身を可視化してみた
JVMの中身を可視化してみたJVMの中身を可視化してみた
JVMの中身を可視化してみた
 

Andere mochten auch

summer training project
 summer training project summer training project
summer training project
andyknp2012
 
New student orientation academic advising information
New student orientation   academic advising informationNew student orientation   academic advising information
New student orientation academic advising information
grandpre
 
Stemming Aflatoxin pre- and post-harvest waste in the groundnut value chain (...
Stemming Aflatoxin pre- and post-harvest waste in the groundnut value chain (...Stemming Aflatoxin pre- and post-harvest waste in the groundnut value chain (...
Stemming Aflatoxin pre- and post-harvest waste in the groundnut value chain (...
Francois Stepman
 
Cara menulis bibliografi
Cara menulis bibliografiCara menulis bibliografi
Cara menulis bibliografi
Ani Amboche
 
Primaire et université une même vision pour lécole
Primaire et université une même vision pour lécolePrimaire et université une même vision pour lécole
Primaire et université une même vision pour lécole
parlantichris
 
Baik punya
Baik punyaBaik punya
Baik punya
ein mr
 

Andere mochten auch (20)

summer training project
 summer training project summer training project
summer training project
 
New student orientation academic advising information
New student orientation   academic advising informationNew student orientation   academic advising information
New student orientation academic advising information
 
1gli for leaders v3
1gli for leaders v31gli for leaders v3
1gli for leaders v3
 
Agroecology Plus Six (AE+6)
Agroecology Plus Six (AE+6)Agroecology Plus Six (AE+6)
Agroecology Plus Six (AE+6)
 
Development outcomes of local innovation (DOLI)
Development outcomes of local innovation (DOLI)Development outcomes of local innovation (DOLI)
Development outcomes of local innovation (DOLI)
 
Stemming Aflatoxin pre- and post-harvest waste in the groundnut value chain (...
Stemming Aflatoxin pre- and post-harvest waste in the groundnut value chain (...Stemming Aflatoxin pre- and post-harvest waste in the groundnut value chain (...
Stemming Aflatoxin pre- and post-harvest waste in the groundnut value chain (...
 
Development of potato seed quality based innovations for small scale farmers ...
Development of potato seed quality based innovations for small scale farmers ...Development of potato seed quality based innovations for small scale farmers ...
Development of potato seed quality based innovations for small scale farmers ...
 
Ptc ppt
Ptc pptPtc ppt
Ptc ppt
 
Uganda Crane Creamery Cooperative Union (UCCCU)
Uganda Crane Creamery Cooperative Union (UCCCU) Uganda Crane Creamery Cooperative Union (UCCCU)
Uganda Crane Creamery Cooperative Union (UCCCU)
 
Violencia intrafamiliar
Violencia intrafamiliarViolencia intrafamiliar
Violencia intrafamiliar
 
MYCOTOXINS and ANIMAL HEALTH: focus on intestinal health
MYCOTOXINS and ANIMAL HEALTH: focus on intestinal healthMYCOTOXINS and ANIMAL HEALTH: focus on intestinal health
MYCOTOXINS and ANIMAL HEALTH: focus on intestinal health
 
Enhancing nutrition security and incomes through adding value to indigenous v...
Enhancing nutrition security and incomes through adding value to indigenous v...Enhancing nutrition security and incomes through adding value to indigenous v...
Enhancing nutrition security and incomes through adding value to indigenous v...
 
Cara menulis bibliografi
Cara menulis bibliografiCara menulis bibliografi
Cara menulis bibliografi
 
Pa 5 famous poems by robert frost veronica
Pa 5 famous poems by robert frost veronicaPa 5 famous poems by robert frost veronica
Pa 5 famous poems by robert frost veronica
 
Primaire et université une même vision pour lécole
Primaire et université une même vision pour lécolePrimaire et université une même vision pour lécole
Primaire et université une même vision pour lécole
 
Mudanzas en-madrid
Mudanzas en-madridMudanzas en-madrid
Mudanzas en-madrid
 
Sïmbols dels elements normals
Sïmbols dels elements normalsSïmbols dels elements normals
Sïmbols dels elements normals
 
October Newsletter
October NewsletterOctober Newsletter
October Newsletter
 
Practica nº 01
Practica nº 01Practica nº 01
Practica nº 01
 
Baik punya
Baik punyaBaik punya
Baik punya
 

Ähnlich wie つぶLT20121215

SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
Naoya Ito
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
terurou
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
 

Ähnlich wie つぶLT20121215 (20)

SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
 
[豆ナイト]Java small object programming
[豆ナイト]Java small object programming[豆ナイト]Java small object programming
[豆ナイト]Java small object programming
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
0621 ndk game
0621 ndk game0621 ndk game
0621 ndk game
 
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
 
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料
 
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
 
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係
 
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
 
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminarVoicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
 
The evolution of c#
The evolution of c#The evolution of c#
The evolution of c#
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
 
.NET vNext
.NET vNext.NET vNext
.NET vNext
 
ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 
.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
 

Kürzlich hochgeladen

Kürzlich hochgeladen (7)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

つぶLT20121215