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.
2015.01.31 MVP Community Camp 札幌会場
Objective-CやJavaとの比較によるXamarinの理解・プラットフォーム固有の機能は如何にコーディ
ングされるのか・・・
この辺で、Xamarin導入による 効果...
自己紹介
 識別子 SIN/札幌ワークス
 Twitter @furuya02
 仕事 某社でシステムサポート
 スタッフ CLR/H
 ブログ SIN@SAPPOROWORKSの覚書
 Microsoft MVP for Visu...
Xamarin人気
紅白歌合戦でNHKがアプリ配信
2年連続でフェンリル株式会社製
http://www.fenrir-inc.com/jp/business/app/casestudy_app/nhk_kouhaku.html
はてぶ・Qiitaの投稿件数
国内での人気を検索してみた
2013
@amay077氏
Xamarin Advent Calendar 2013 作成:奥山 裕紳 氏(@amay077)
http://qiita.com/advent-calendar/2013/xamarin
2014
数日で埋まりました
Xamarin Advent Calendar 2014 作成:奥山 裕紳 氏(@amay077)
http://qiita.com/advent-calendar/2014/xamarin
Xamarinとは
Xamarinとは
Create native
Xamarinとは
UI+固有機能は、C#ラッパーで各PFごと記述
Xamarinとは
更新の頻度は異常に早い
Xamarin で Android L Developer Preview と Android Wear をサポート
http://www.xlsoft.com/jp/products/xamarin...
P/Invoke
.NETにおけるネイティブコードを呼び出すしくみ
Win32
.NET
DllImport… System.IO…
XamarinもP/Invoke
P/Invoke の仕組みで iOS/Android の API を C# に公開(AndroidはJNI)
Android API
Java Xamarin.Android
iOS API
Objecttiv...
実行
Androidでは、MonoVM、iOSでは、直前コンパイルでARM命令に変換される
Dalvik VM
Javaバイトコード MSIL
Java
Mono VM
Android
Xamarin.Android
iOS
Objectiv-...
薄いラッパー
Android編
ボタンの生成を例に比較してみる
Button btn = new Button(this); // ボタンの生成
btn.setText("OK"); // キャプション
btn.setLayoutParams(new Lay...
Android編
ボタンの生成
Button btn = new Button(this);
Button btn = new Button(this);
Java
C#
Android編
キャプション
btn.setText("OK");
btn.Text = "OK";
Java
C#
Android編
サイズ
btn.setLayoutParams(
new LayoutParams(100,80));
btn.LayoutParameters =
new LayoutParams(100,80);
Java
C#
Android編
レイアウトへの追加
layout.addView(btn);
layout.AddView(btn);
Java
C#
Android編
もはや同じと言っても過言ではない
Button btn = new Button(this);
btn.setText("OK");
btn.setLayoutParams(new LayoutParams(100,80));...
iOS編
ボタンの生成を例に比較してみる
UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem]; // ボタンの生成
[btn setTitle:@“OK” forState:...
iOS編
ボタン生成
UIButton *btn =[UIButton
buttonWithType:UIButtonTypeSystem];
UIButton btn =
UIButton.FromType(UIButtonType.Syst...
iOS編
キャプション
[btn setTitle:@“OK”
forState:UIControlStateNormal];
btn.SetTitle("OK",UIControlState.Normal);
Objectiv-C
C#
iOS編
サイズ・位置
[btn setFrame:CGRectMake(110,210,100,40)];
btn.Frame = new CGRect(110,210,100,40);
Objectiv-C
C#
iOS編
ビューへの追加
[self.view addSubview:btn];
View.AddSubview(btn);
Objectiv-C
C#
iOS編
まー同じ?(似てる)といっても問題ない
UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
[btn setTitle:@“OK” forState:UICont...
アーキテクチャ
iOS
・UINavigationController/UIViewController
・pushViewController スタック管理
・popViewController 画面遷移
Android
・Activity単位
・Inten...
アーキテクチャ
iOSライフサイクル
・localView 画面読み込み
・viewDidLoad ビュー読み込み完了
・viewWillAppear 画面描画前
・viewDidAppear 画面描画後
・viewWillDisappear ...
アーキテクチャ
Androidライフサイクル
・onCreate 画面作成(初めて)
・onStart 画面表示直前
・onResume ユーザとの対話開始
・onPause 別画面への移行時
・onStop ユーザから見えなくなった
・onR...
Androidの構成
Android Studio で「Blank Activity」を新規作成
①
②
③
Xamarin.Androidの構成
Visual Studioで「Blank App(Android)」を新規作成
①
②
③
①AndroidManifest.xml
最初に起動するActivityの指定、Xamarinでは定義なし
Java
C#
②MainActivity
SetContentView()でレイアウトを指定している
Java
C#
③レイアウト
拡張子は、AndroidStudioではXML、Xamarinではaxml(中身は同じ)
Java
C#
iOSの構成
Xcode で「Single View Application」を新規作成
①
②
③
④
⑤
iOSの構成(Swift)
Xcode で「Single View Application」を新規作成
①②
③
④
⑤
①
②
③
④
⑤
Xamarin.iOSの構成
Visual Studioで「Single View(iPhone)」を新規作成
①Main
UIApplicationMainによる初期化(メインクラス:AppDelegate)
Objecttiv-C
C#
②AppDelegate
アプリケーションの起動や終了や中断などの処理
Objecttiv-C
C#
③Info.plist
ルートビューの指定など
Objecttiv-C
C#
④Storyboard
コントロールの配置など(ビューコントローラのクラス名指定)
Objecttiv-C
C#
⑤ViewController
ビューの表示と管理を担当するオブジェクト
Objecttiv-C
C#
C#メリット
Visual Studioが使える
IDEの学習コストがゼロ(Buisnessライセンスが必要)
.NET BCL
プラットフォーム固有+C#Core
ファイル操作 System.IO
ネットワーク操作 System.NET
データ操作 System.Linq
XML操作 System.XML
非同期操作 System.Threading
varで書ける
バリアントじゃないよ
NagaiName<String,String> n = new NagaiName<String,String>();
var n = new NagaiName<String,String>();
リスナー系がイベントになっている
別途リスナークラスを用意する必要はない
//Java リスナークラスを作成してonClickをオーバーライドする
button.setOnClickListener(new View.OnClickListen...
ラムダ式
規模の小さい処理を最小スコープで記述できる
runOnUiThread(new Runnable() {
@Override
public void run() {
//UI処理
}
}
RunOnUiThread(() => UI処...
Linq
好きな人は、無いと辛い
var ans1 = ar.Count();
var and2 = ar.Sum(n => n*2);
var ans3 = ar.Where(n => n != 5).Sum();
Parallel
やっぱり簡単に書けるのが嬉しい
X
foreach (var item in collection) {
Thread.Sleep(1000);
}
Tasks.Parallel.ForEach(collection, ite...
async await
簡単に書けるのが、ただただ嬉しい
button.Click += async (s, a) => {
var res = await HeavyAsync(); //時間のかかる処理
button.Text = res....
Xamarin.Forms
Xamarin.Formsとは
UI部分の共通ライブラリ
Xamarin.Formsとは
独自ライブラリ(コード+XAML+データバインディング)
<?xml … ?>
<ContentPage … >
<Label Text="{Binding …}"
…
BindingContext="{…}“/...
Xamarin.Forms
単一コードで、Android、Windows Phone、iOSで動作できる
var map = new Map( ...)
var pin = new Pin {
Position = position,
Labe...
独自のライブラリ
最初から学習する必要がある
ContentPage
NavigationPage
TabbedPage
独自のライブラリ
最初から学習する必要がある
StackLayout
AbsoluteLayout
Grid
独自のライブラリ
最初から学習する必要がある
UIのレンダリングはネイティブで行われる
コントロールによっては見た目が違う
TimePicker
UIのレンダリングはネイティブで行われる
コントロールによっては見た目が違う
Switch
Xamarin.Forms
共通的なコントロールを使用する限りは、それなりに書ける
ListView Image
Label
Xamarin.Forms
一部のコントロールを拡張することで、それなりに書ける
TextView
Button
BoxView
Xamarin.Forms
固有のUIにこだわらないのであれば、すすんで1つに統一(超コストダウン)
Image
Label
Xamarin.Forms
固有のUIにこだわらないのであれば、すすんで1つに統一(超コストダウン)
Image
Label
Xamarin.Forms
固有UIが一部なら、あまり違和なく共存できる
ToolBar
BoxView
Xamarin.Formsの拡張
独自コントロール
BalloonView = Image + BoxView + Label
XAMLで作成してclr-namespaceでインクルードして利用可能(コードビハイドあり)
カスタムレンダラー
コントロールの実装を各PF側で記述する
DependencyService
インターフェースによる委譲
//インターフェース定義
public interface ICMail {
bool Send(string to, string message);
}
//機能の利用
Dep...
Xamarin.Formsの拡張
各PFで記述可能なものすべてがFormsでも利用可能
//インターフェース定義
public interface ICMail {
bool Send(string to, string message);
}...
料金
月・年単位
https://store.xamarin.com/
各PFごとにライセンスが必要
INDIE・BUSINESSの違い
Support in-house , headless builds , System.Data.SqlClient
Indie
個人開発者、5名以内の会社・サポートなし(フォーラムのみ)
アプリサイズの制限...
MSDN subscribers
https://xamarin.com/msdn
can save 20% on the Business or Enterprise editions
エクセルソフト株式会社
国内代理店
Xamarin製品は、英語製
日本語によるテクニカルサポート
アカデミック プログラム
INDIE無償
http://www.xlsoft.com/jp/products/xamarin/student.html?r=ythb
大学、専門学校、高校などの
教育機関に在籍する学生を対象に
Xamarin I...
Build INSIDER Xamarin逆引きTips
http://www.buildinsider.net/mobile/xamarintips
Xamarin情報
唯一の日本語解説書
「C#によるiOS、Android、Windowsア...
Xamarin 日本語情報 田淵義人 氏(@ytabuchi)
http://ytabuchi.hatenablog.com/
Xamarin情報
Qiita キーワード「Xamarin」
http://qiita.com/search?utf...
Xamarin情報
SIN@SAPPOROWORKSの覚書
http://furuya02.hatenablog.com/entry/20140523/1400966058
参考にさせて頂いた資料
インサイドXamarin 榎本 温 氏(@atsushieno)
http://www.buildinsider.net/mobile/insidexamarin
Xamarin逆引きTips 奥山 裕紳 氏(@amay...
ご清聴ありがとうございました
札幌ワークス
http://www.sapporoworks.ne.jp/spw
Upcoming SlideShare
Loading in …5
×

この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015

7,487 views

Published on

Java 及び Objective-C による開発と Xamarin(C#) によるものを比較し、各 OS のライブラリが、見事にラッピングされているようすを確認すると共に、共通コードによるクロスプラットフォーム開発の威力と制限について解説します。 また、デバイス固有の機能が、全てコーディング可能になっている事も紹介します。 本セッションでは、まだ、このツールに触れたことの無い方も、Xamarin 導入の効果と限界が語れるようになる事を目標にします。

Published in: Technology
  • Be the first to comment

この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015

  1. 1. 2015.01.31 MVP Community Camp 札幌会場 Objective-CやJavaとの比較によるXamarinの理解・プラットフォーム固有の機能は如何にコーディ ングされるのか・・・ この辺で、Xamarin導入による 効果と限界 をしっかり把握してみよう
  2. 2. 自己紹介  識別子 SIN/札幌ワークス  Twitter @furuya02  仕事 某社でシステムサポート  スタッフ CLR/H  ブログ SIN@SAPPOROWORKSの覚書  Microsoft MVP for Visual C# (2013/1~)  フリーソフト BlackJumboDog
  3. 3. Xamarin人気
  4. 4. 紅白歌合戦でNHKがアプリ配信 2年連続でフェンリル株式会社製 http://www.fenrir-inc.com/jp/business/app/casestudy_app/nhk_kouhaku.html
  5. 5. はてぶ・Qiitaの投稿件数 国内での人気を検索してみた
  6. 6. 2013 @amay077氏 Xamarin Advent Calendar 2013 作成:奥山 裕紳 氏(@amay077) http://qiita.com/advent-calendar/2013/xamarin
  7. 7. 2014 数日で埋まりました Xamarin Advent Calendar 2014 作成:奥山 裕紳 氏(@amay077) http://qiita.com/advent-calendar/2014/xamarin
  8. 8. Xamarinとは
  9. 9. Xamarinとは Create native
  10. 10. Xamarinとは UI+固有機能は、C#ラッパーで各PFごと記述
  11. 11. Xamarinとは 更新の頻度は異常に早い Xamarin で Android L Developer Preview と Android Wear をサポート http://www.xlsoft.com/jp/products/xamarin/android-l-developer-preview.html Xamarin は iOS 8 に完全対応 http://www.xlsoft.com/jp/products/xamarin/xamarin-ios-8.html Xamarin.iOS Unified API の 64-bit 対応 http://www.xlsoft.com/jp/products/xamarin/ xamarin-ios-unified-api-with-64-bit-support.html WatchKit対応(Preview) http://developer.xamarin.com/guides/ios/watch/installation/
  12. 12. P/Invoke .NETにおけるネイティブコードを呼び出すしくみ Win32 .NET DllImport… System.IO…
  13. 13. XamarinもP/Invoke P/Invoke の仕組みで iOS/Android の API を C# に公開(AndroidはJNI) Android API Java Xamarin.Android iOS API Objecttive-C Xamarin.iOS 注:個人的理解
  14. 14. 実行 Androidでは、MonoVM、iOSでは、直前コンパイルでARM命令に変換される Dalvik VM Javaバイトコード MSIL Java Mono VM Android Xamarin.Android iOS Objectiv-C Xamarin.iOS EXE,DLL Monoランタイム (ARM命令に変換) ARM命令 注:個人的理解
  15. 15. 薄いラッパー
  16. 16. Android編 ボタンの生成を例に比較してみる Button btn = new Button(this); // ボタンの生成 btn.setText("OK"); // キャプション btn.setLayoutParams(new LayoutParams(100,80)); // サイズ layout.addView(btn); // レイアウトへの追加 Java
  17. 17. Android編 ボタンの生成 Button btn = new Button(this); Button btn = new Button(this); Java C#
  18. 18. Android編 キャプション btn.setText("OK"); btn.Text = "OK"; Java C#
  19. 19. Android編 サイズ btn.setLayoutParams( new LayoutParams(100,80)); btn.LayoutParameters = new LayoutParams(100,80); Java C#
  20. 20. Android編 レイアウトへの追加 layout.addView(btn); layout.AddView(btn); Java C#
  21. 21. Android編 もはや同じと言っても過言ではない Button btn = new Button(this); btn.setText("OK"); btn.setLayoutParams(new LayoutParams(100,80)); layout.addView(btn); Button btn = new Button(this); btn.Text = "OK"; btn.LayoutParameters = new LayoutParams(100,80); layout.AddView(btn); Java C#
  22. 22. iOS編 ボタンの生成を例に比較してみる UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem]; // ボタンの生成 [btn setTitle:@“OK” forState:UIControlStateNormal]; // キャプション [btn setFrame:CGRectMake(110,210,100,40)]; // サイズ・位置 [self.view addSubview:btn]; // ビューへの追加 Objectiv-C
  23. 23. iOS編 ボタン生成 UIButton *btn =[UIButton buttonWithType:UIButtonTypeSystem]; UIButton btn = UIButton.FromType(UIButtonType.System); Objectiv-C C#
  24. 24. iOS編 キャプション [btn setTitle:@“OK” forState:UIControlStateNormal]; btn.SetTitle("OK",UIControlState.Normal); Objectiv-C C#
  25. 25. iOS編 サイズ・位置 [btn setFrame:CGRectMake(110,210,100,40)]; btn.Frame = new CGRect(110,210,100,40); Objectiv-C C#
  26. 26. iOS編 ビューへの追加 [self.view addSubview:btn]; View.AddSubview(btn); Objectiv-C C#
  27. 27. iOS編 まー同じ?(似てる)といっても問題ない UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem]; [btn setTitle:@“OK” forState:UIControlStateNormal]; [btn setFrame:CGRectMake(110,210,100,40)]; [self.view addSubview:btn]; UIButton btn = UIButton.FromType(UIButtonType.System); btn.SetTitle("OK",UIControlState.Normal); btn.Frame = new CGRect(110,210,100,40); View.AddSubview(btn); Objectiv-C C#
  28. 28. アーキテクチャ
  29. 29. iOS ・UINavigationController/UIViewController ・pushViewController スタック管理 ・popViewController 画面遷移 Android ・Activity単位 ・Intentに発行 ・Intent経由でパラメータ渡し アーキテクチャ 画面遷移
  30. 30. アーキテクチャ iOSライフサイクル ・localView 画面読み込み ・viewDidLoad ビュー読み込み完了 ・viewWillAppear 画面描画前 ・viewDidAppear 画面描画後 ・viewWillDisappear 閉じる前 ・viewDidDisappear 閉じ終わった
  31. 31. アーキテクチャ Androidライフサイクル ・onCreate 画面作成(初めて) ・onStart 画面表示直前 ・onResume ユーザとの対話開始 ・onPause 別画面への移行時 ・onStop ユーザから見えなくなった ・onRestart 停止後の再開 ・onDestroy 画面破棄
  32. 32. Androidの構成 Android Studio で「Blank Activity」を新規作成 ① ② ③
  33. 33. Xamarin.Androidの構成 Visual Studioで「Blank App(Android)」を新規作成 ① ② ③
  34. 34. ①AndroidManifest.xml 最初に起動するActivityの指定、Xamarinでは定義なし Java C#
  35. 35. ②MainActivity SetContentView()でレイアウトを指定している Java C#
  36. 36. ③レイアウト 拡張子は、AndroidStudioではXML、Xamarinではaxml(中身は同じ) Java C#
  37. 37. iOSの構成 Xcode で「Single View Application」を新規作成 ① ② ③ ④ ⑤
  38. 38. iOSの構成(Swift) Xcode で「Single View Application」を新規作成 ①② ③ ④ ⑤
  39. 39. ① ② ③ ④ ⑤ Xamarin.iOSの構成 Visual Studioで「Single View(iPhone)」を新規作成
  40. 40. ①Main UIApplicationMainによる初期化(メインクラス:AppDelegate) Objecttiv-C C#
  41. 41. ②AppDelegate アプリケーションの起動や終了や中断などの処理 Objecttiv-C C#
  42. 42. ③Info.plist ルートビューの指定など Objecttiv-C C#
  43. 43. ④Storyboard コントロールの配置など(ビューコントローラのクラス名指定) Objecttiv-C C#
  44. 44. ⑤ViewController ビューの表示と管理を担当するオブジェクト Objecttiv-C C#
  45. 45. C#メリット
  46. 46. Visual Studioが使える IDEの学習コストがゼロ(Buisnessライセンスが必要)
  47. 47. .NET BCL プラットフォーム固有+C#Core ファイル操作 System.IO ネットワーク操作 System.NET データ操作 System.Linq XML操作 System.XML 非同期操作 System.Threading
  48. 48. varで書ける バリアントじゃないよ NagaiName<String,String> n = new NagaiName<String,String>(); var n = new NagaiName<String,String>();
  49. 49. リスナー系がイベントになっている 別途リスナークラスを用意する必要はない //Java リスナークラスを作成してonClickをオーバーライドする button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 処理 } }); button.Click += 処理
  50. 50. ラムダ式 規模の小さい処理を最小スコープで記述できる runOnUiThread(new Runnable() { @Override public void run() { //UI処理 } } RunOnUiThread(() => UI処理 );
  51. 51. Linq 好きな人は、無いと辛い var ans1 = ar.Count(); var and2 = ar.Sum(n => n*2); var ans3 = ar.Where(n => n != 5).Sum();
  52. 52. Parallel やっぱり簡単に書けるのが嬉しい X foreach (var item in collection) { Thread.Sleep(1000); } Tasks.Parallel.ForEach(collection, item => { Thread.Sleep(1000); } );
  53. 53. async await 簡単に書けるのが、ただただ嬉しい button.Click += async (s, a) => { var res = await HeavyAsync(); //時間のかかる処理 button.Text = res.ToString();// UIスレッドで実行される };
  54. 54. Xamarin.Forms
  55. 55. Xamarin.Formsとは UI部分の共通ライブラリ
  56. 56. Xamarin.Formsとは 独自ライブラリ(コード+XAML+データバインディング) <?xml … ?> <ContentPage … > <Label Text="{Binding …}" … BindingContext="{…}“/> </ContentPage>
  57. 57. Xamarin.Forms 単一コードで、Android、Windows Phone、iOSで動作できる var map = new Map( ...) var pin = new Pin { Position = position, Label = "custom pin", ・・・ }; map.Pins.Add(pin); Content=new StackLayout { Children = { map } };
  58. 58. 独自のライブラリ 最初から学習する必要がある ContentPage NavigationPage TabbedPage
  59. 59. 独自のライブラリ 最初から学習する必要がある StackLayout AbsoluteLayout Grid
  60. 60. 独自のライブラリ 最初から学習する必要がある
  61. 61. UIのレンダリングはネイティブで行われる コントロールによっては見た目が違う TimePicker
  62. 62. UIのレンダリングはネイティブで行われる コントロールによっては見た目が違う Switch
  63. 63. Xamarin.Forms 共通的なコントロールを使用する限りは、それなりに書ける ListView Image Label
  64. 64. Xamarin.Forms 一部のコントロールを拡張することで、それなりに書ける TextView Button BoxView
  65. 65. Xamarin.Forms 固有のUIにこだわらないのであれば、すすんで1つに統一(超コストダウン) Image Label
  66. 66. Xamarin.Forms 固有のUIにこだわらないのであれば、すすんで1つに統一(超コストダウン) Image Label
  67. 67. Xamarin.Forms 固有UIが一部なら、あまり違和なく共存できる ToolBar BoxView
  68. 68. Xamarin.Formsの拡張
  69. 69. 独自コントロール BalloonView = Image + BoxView + Label XAMLで作成してclr-namespaceでインクルードして利用可能(コードビハイドあり)
  70. 70. カスタムレンダラー コントロールの実装を各PF側で記述する
  71. 71. DependencyService インターフェースによる委譲 //インターフェース定義 public interface ICMail { bool Send(string to, string message); } //機能の利用 DependencyService.Get<ICMail>().Send("to","message"); //機能の実装 [assembly: Xamarin.Forms.Dependency (typeof(CMail))] class CMail : ICMail { public bool Send(string to, string message) { } PCL 各PF
  72. 72. Xamarin.Formsの拡張 各PFで記述可能なものすべてがFormsでも利用可能 //インターフェース定義 public interface ICMail { bool Send(string to, string message); } //機能の利用 DependencyService.Get<ICMail>().Send("to","message"); //機能の実装 [assembly: Xamarin.Forms.Dependency (typeof(CMail))] class CMail : ICMail { public bool Send(string to, string message) { } 独自コントロール カスタムレンダラー DependencyService
  73. 73. 料金
  74. 74. 月・年単位 https://store.xamarin.com/ 各PFごとにライセンスが必要
  75. 75. INDIE・BUSINESSの違い Support in-house , headless builds , System.Data.SqlClient Indie 個人開発者、5名以内の会社・サポートなし(フォーラムのみ) アプリサイズの制限なし Xamarin Studio では、ほぼ制限ない開発 Business 法人向けライセンス Visual Studio での開発 ビジネス向け機能 Email サポート Xamarin 日本語情報「Xamarin のエディションについて」 http://ytabuchi.hatenablog.com/entry/2015/01/28/170126
  76. 76. MSDN subscribers https://xamarin.com/msdn can save 20% on the Business or Enterprise editions
  77. 77. エクセルソフト株式会社 国内代理店 Xamarin製品は、英語製 日本語によるテクニカルサポート
  78. 78. アカデミック プログラム INDIE無償 http://www.xlsoft.com/jp/products/xamarin/student.html?r=ythb 大学、専門学校、高校などの 教育機関に在籍する学生を対象に Xamarin INDIE 版を無償提供
  79. 79. Build INSIDER Xamarin逆引きTips http://www.buildinsider.net/mobile/xamarintips Xamarin情報 唯一の日本語解説書 「C#によるiOS、Android、Windowsアプリケーション開発入門」 増田 智明 (著), 大西 彰 (著) Build INSIDER インサイドXamarin http://www.buildinsider.net/mobile/insidexamarin
  80. 80. Xamarin 日本語情報 田淵義人 氏(@ytabuchi) http://ytabuchi.hatenablog.com/ Xamarin情報 Qiita キーワード「Xamarin」 http://qiita.com/search?utf8=%E2%9C%93 &sort=rel&q=Xamarin&sort=rel
  81. 81. Xamarin情報 SIN@SAPPOROWORKSの覚書 http://furuya02.hatenablog.com/entry/20140523/1400966058
  82. 82. 参考にさせて頂いた資料 インサイドXamarin 榎本 温 氏(@atsushieno) http://www.buildinsider.net/mobile/insidexamarin Xamarin逆引きTips 奥山 裕紳 氏(@amay077) http://www.buildinsider.net/mobile/xamarintips Xamarin.Formsの概要と カスタムコントロール 増田智明 氏(@moonmile) http://www.slideshare.net/moonmile/xamarinforms-41882310 Xamarin Advent Calendar 2014 作成:奥山 裕紳 氏(@amay077) http://qiita.com/advent-calendar/2014/xamarin iOS,Android,WindowsPhoneを開発者目線で比較 http://www.afp-records.com/android/ios_android_windowsphone_03.html
  83. 83. ご清聴ありがとうございました 札幌ワークス http://www.sapporoworks.ne.jp/spw

×