SlideShare a Scribd company logo
1 of 83
Download to read offline
2015.01.31 MVP Community Camp 札幌会場
Objective-CやJavaとの比較によるXamarinの理解・プラットフォーム固有の機能は如何にコーディ
ングされるのか・・・
この辺で、Xamarin導入による 効果と限界
をしっかり把握してみよう
自己紹介
 識別子 SIN/札幌ワークス
 Twitter @furuya02
 仕事 某社でシステムサポート
 スタッフ CLR/H
 ブログ SIN@SAPPOROWORKSの覚書
 Microsoft MVP for Visual C# (2013/1~)
 フリーソフト BlackJumboDog
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/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/
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
Objecttive-C Xamarin.iOS
注:個人的理解
実行
Androidでは、MonoVM、iOSでは、直前コンパイルでARM命令に変換される
Dalvik VM
Javaバイトコード MSIL
Java
Mono VM
Android
Xamarin.Android
iOS
Objectiv-C Xamarin.iOS
EXE,DLL
Monoランタイム
(ARM命令に変換)
ARM命令
注:個人的理解
薄いラッパー
Android編
ボタンの生成を例に比較してみる
Button btn = new Button(this); // ボタンの生成
btn.setText("OK"); // キャプション
btn.setLayoutParams(new LayoutParams(100,80)); // サイズ
layout.addView(btn); // レイアウトへの追加
Java
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));
layout.addView(btn);
Button btn = new Button(this);
btn.Text = "OK";
btn.LayoutParameters = new LayoutParams(100,80);
layout.AddView(btn);
Java
C#
iOS編
ボタンの生成を例に比較してみる
UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem]; // ボタンの生成
[btn setTitle:@“OK” forState:UIControlStateNormal]; // キャプション
[btn setFrame:CGRectMake(110,210,100,40)]; // サイズ・位置
[self.view addSubview:btn]; // ビューへの追加
Objectiv-C
iOS編
ボタン生成
UIButton *btn =[UIButton
buttonWithType:UIButtonTypeSystem];
UIButton btn =
UIButton.FromType(UIButtonType.System);
Objectiv-C
C#
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: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#
アーキテクチャ
iOS
・UINavigationController/UIViewController
・pushViewController スタック管理
・popViewController 画面遷移
Android
・Activity単位
・Intentに発行
・Intent経由でパラメータ渡し
アーキテクチャ
画面遷移
アーキテクチャ
iOSライフサイクル
・localView 画面読み込み
・viewDidLoad ビュー読み込み完了
・viewWillAppear 画面描画前
・viewDidAppear 画面描画後
・viewWillDisappear 閉じる前
・viewDidDisappear 閉じ終わった
アーキテクチャ
Androidライフサイクル
・onCreate 画面作成(初めて)
・onStart 画面表示直前
・onResume ユーザとの対話開始
・onPause 別画面への移行時
・onStop ユーザから見えなくなった
・onRestart 停止後の再開
・onDestroy 画面破棄
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.OnClickListener() {
@Override
public void onClick(View v) {
// 処理
}
});
button.Click += 処理
ラムダ式
規模の小さい処理を最小スコープで記述できる
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, item => {
Thread.Sleep(1000);
}
);
async await
簡単に書けるのが、ただただ嬉しい
button.Click += async (s, a) => {
var res = await HeavyAsync(); //時間のかかる処理
button.Text = res.ToString();// UIスレッドで実行される
};
Xamarin.Forms
Xamarin.Formsとは
UI部分の共通ライブラリ
Xamarin.Formsとは
独自ライブラリ(コード+XAML+データバインディング)
<?xml … ?>
<ContentPage … >
<Label Text="{Binding …}"
…
BindingContext="{…}“/>
</ContentPage>
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 }
};
独自のライブラリ
最初から学習する必要がある
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);
}
//機能の利用
DependencyService.Get<ICMail>().Send("to","message");
//機能の実装
[assembly: Xamarin.Forms.Dependency (typeof(CMail))]
class CMail : ICMail {
public bool Send(string to, string message) {
}
PCL
各PF
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
料金
月・年単位
https://store.xamarin.com/
各PFごとにライセンスが必要
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
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 INDIE 版を無償提供
Build INSIDER Xamarin逆引きTips
http://www.buildinsider.net/mobile/xamarintips
Xamarin情報
唯一の日本語解説書
「C#によるiOS、Android、Windowsアプリケーション開発入門」
増田 智明 (著), 大西 彰 (著)
Build INSIDER インサイドXamarin
http://www.buildinsider.net/mobile/insidexamarin
Xamarin 日本語情報 田淵義人 氏(@ytabuchi)
http://ytabuchi.hatenablog.com/
Xamarin情報
Qiita キーワード「Xamarin」
http://qiita.com/search?utf8=%E2%9C%93
&sort=rel&q=Xamarin&sort=rel
Xamarin情報
SIN@SAPPOROWORKSの覚書
http://furuya02.hatenablog.com/entry/20140523/1400966058
参考にさせて頂いた資料
インサイド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
ご清聴ありがとうございました
札幌ワークス
http://www.sapporoworks.ne.jp/spw

More Related Content

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

関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)啓 小笠原
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法Yoshito Tabuchi
 
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点Yoshito Tabuchi
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法Yoshito Tabuchi
 
.NET Core でデスクトップアプリ Visual Studio 2019 Preview 版
.NET Core でデスクトップアプリ Visual Studio 2019 Preview 版.NET Core でデスクトップアプリ Visual Studio 2019 Preview 版
.NET Core でデスクトップアプリ Visual Studio 2019 Preview 版m ishizaki
 
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオンAzure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオンYasuaki Matsuda
 
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送Google Cloud Platform - Japan
 
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例Shigeru UCHIYAMA
 
20140517 knockoutjs hands-on
20140517 knockoutjs hands-on20140517 knockoutjs hands-on
20140517 knockoutjs hands-onSeiji Noro
 
メディア・アート II 第1回: ガイダンス openFrameworks入門
メディア・アート II 第1回: ガイダンス openFrameworks入門メディア・アート II 第1回: ガイダンス openFrameworks入門
メディア・アート II 第1回: ガイダンス openFrameworks入門Atsushi Tadokoro
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発papamitra
 
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)Shinya Nakajima
 
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1Atsushi Tadokoro
 
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternApplication Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternAtsushi Kambara
 
Xamarin から使う Azure
Xamarin から使う AzureXamarin から使う Azure
Xamarin から使う AzureYoshito Tabuchi
 
Xamarin でクラシックデスクトップアプリ
Xamarin でクラシックデスクトップアプリXamarin でクラシックデスクトップアプリ
Xamarin でクラシックデスクトップアプリm ishizaki
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組みKouji Matsui
 
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしようわんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしようYasuhiko Yamamoto
 
T119_5年間の試行錯誤で進化したMVPVMパターン
T119_5年間の試行錯誤で進化したMVPVMパターンT119_5年間の試行錯誤で進化したMVPVMパターン
T119_5年間の試行錯誤で進化したMVPVMパターン伸男 伊藤
 

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

関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法
 
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法
 
.NET Core でデスクトップアプリ Visual Studio 2019 Preview 版
.NET Core でデスクトップアプリ Visual Studio 2019 Preview 版.NET Core でデスクトップアプリ Visual Studio 2019 Preview 版
.NET Core でデスクトップアプリ Visual Studio 2019 Preview 版
 
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオンAzure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
 
Xamarin の救世主 Unity !
Xamarin の救世主 Unity !Xamarin の救世主 Unity !
Xamarin の救世主 Unity !
 
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送
 
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
 
20140517 knockoutjs hands-on
20140517 knockoutjs hands-on20140517 knockoutjs hands-on
20140517 knockoutjs hands-on
 
メディア・アート II 第1回: ガイダンス openFrameworks入門
メディア・アート II 第1回: ガイダンス openFrameworks入門メディア・アート II 第1回: ガイダンス openFrameworks入門
メディア・アート II 第1回: ガイダンス openFrameworks入門
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発
 
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)
 
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
 
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternApplication Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD Pattern
 
Xamarin から使う Azure
Xamarin から使う AzureXamarin から使う Azure
Xamarin から使う Azure
 
Xamarin でクラシックデスクトップアプリ
Xamarin でクラシックデスクトップアプリXamarin でクラシックデスクトップアプリ
Xamarin でクラシックデスクトップアプリ
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしようわんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
 
T119_5年間の試行錯誤で進化したMVPVMパターン
T119_5年間の試行錯誤で進化したMVPVMパターンT119_5年間の試行錯誤で進化したMVPVMパターン
T119_5年間の試行錯誤で進化したMVPVMパターン
 

More from Shinichi Hirauchi

Amazon connect について 〜各種AWSのサービスとの連携〜
Amazon connect について 〜各種AWSのサービスとの連携〜Amazon connect について 〜各種AWSのサービスとの連携〜
Amazon connect について 〜各種AWSのサービスとの連携〜Shinichi Hirauchi
 
Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法
Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法
Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法Shinichi Hirauchi
 
Developers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよDevelopers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよShinichi Hirauchi
 
20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門Shinichi Hirauchi
 
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜Shinichi Hirauchi
 
Developers.IO 2016 F-1 セッション資料
Developers.IO 2016 F-1 セッション資料Developers.IO 2016 F-1 セッション資料
Developers.IO 2016 F-1 セッション資料Shinichi Hirauchi
 
シルバーウィークにfacebookアプリを作成した
シルバーウィークにfacebookアプリを作成したシルバーウィークにfacebookアプリを作成した
シルバーウィークにfacebookアプリを作成したShinichi Hirauchi
 
Xamarin.formsで作成する翻訳機能付きtwitterクライアント
Xamarin.formsで作成する翻訳機能付きtwitterクライアント Xamarin.formsで作成する翻訳機能付きtwitterクライアント
Xamarin.formsで作成する翻訳機能付きtwitterクライアント Shinichi Hirauchi
 
簡易電話交換機の作成~廃品利用による低予算プロジェクト~
簡易電話交換機の作成~廃品利用による低予算プロジェクト~簡易電話交換機の作成~廃品利用による低予算プロジェクト~
簡易電話交換機の作成~廃品利用による低予算プロジェクト~Shinichi Hirauchi
 
BoxViewの美味しい食べ方
BoxViewの美味しい食べ方BoxViewの美味しい食べ方
BoxViewの美味しい食べ方Shinichi Hirauchi
 
C#で作成するfacebookアプリ mvp community camp
C#で作成するfacebookアプリ mvp community campC#で作成するfacebookアプリ mvp community camp
C#で作成するfacebookアプリ mvp community campShinichi Hirauchi
 
Facebookスパムデータベース~あなたのお友達に、スパムアカウントが紛れ込んでませんか
Facebookスパムデータベース~あなたのお友達に、スパムアカウントが紛れ込んでませんかFacebookスパムデータベース~あなたのお友達に、スパムアカウントが紛れ込んでませんか
Facebookスパムデータベース~あなたのお友達に、スパムアカウントが紛れ込んでませんかShinichi Hirauchi
 
簡易電話交換機の作成~廃品利用による低予算プロジェクト
簡易電話交換機の作成~廃品利用による低予算プロジェクト簡易電話交換機の作成~廃品利用による低予算プロジェクト
簡易電話交換機の作成~廃品利用による低予算プロジェクトShinichi Hirauchi
 
Black jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとして
Black jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとしてBlack jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとして
Black jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとしてShinichi Hirauchi
 
初めてのFacebookアプリの開発
初めてのFacebookアプリの開発初めてのFacebookアプリの開発
初めてのFacebookアプリの開発Shinichi Hirauchi
 
Facebookの偽アカウント
Facebookの偽アカウントFacebookの偽アカウント
Facebookの偽アカウントShinichi Hirauchi
 
テストコードの定型化
テストコードの定型化テストコードの定型化
テストコードの定型化Shinichi Hirauchi
 
HTMLを1行も書かずにwebアプリを作ってみました
HTMLを1行も書かずにwebアプリを作ってみましたHTMLを1行も書かずにwebアプリを作ってみました
HTMLを1行も書かずにwebアプリを作ってみましたShinichi Hirauchi
 

More from Shinichi Hirauchi (20)

Amazon connect について 〜各種AWSのサービスとの連携〜
Amazon connect について 〜各種AWSのサービスとの連携〜Amazon connect について 〜各種AWSのサービスとの連携〜
Amazon connect について 〜各種AWSのサービスとの連携〜
 
Alexa SDK Alexa Salon
Alexa SDK Alexa SalonAlexa SDK Alexa Salon
Alexa SDK Alexa Salon
 
Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法
Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法
Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法
 
Developers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよDevelopers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよ
 
20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門
 
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
 
Developers.IO 2016 F-1 セッション資料
Developers.IO 2016 F-1 セッション資料Developers.IO 2016 F-1 セッション資料
Developers.IO 2016 F-1 セッション資料
 
シルバーウィークにfacebookアプリを作成した
シルバーウィークにfacebookアプリを作成したシルバーウィークにfacebookアプリを作成した
シルバーウィークにfacebookアプリを作成した
 
Xamarin.formsで作成する翻訳機能付きtwitterクライアント
Xamarin.formsで作成する翻訳機能付きtwitterクライアント Xamarin.formsで作成する翻訳機能付きtwitterクライアント
Xamarin.formsで作成する翻訳機能付きtwitterクライアント
 
簡易電話交換機の作成~廃品利用による低予算プロジェクト~
簡易電話交換機の作成~廃品利用による低予算プロジェクト~簡易電話交換機の作成~廃品利用による低予算プロジェクト~
簡易電話交換機の作成~廃品利用による低予算プロジェクト~
 
BoxViewの美味しい食べ方
BoxViewの美味しい食べ方BoxViewの美味しい食べ方
BoxViewの美味しい食べ方
 
C#で作成するfacebookアプリ mvp community camp
C#で作成するfacebookアプリ mvp community campC#で作成するfacebookアプリ mvp community camp
C#で作成するfacebookアプリ mvp community camp
 
Facebookスパムデータベース~あなたのお友達に、スパムアカウントが紛れ込んでませんか
Facebookスパムデータベース~あなたのお友達に、スパムアカウントが紛れ込んでませんかFacebookスパムデータベース~あなたのお友達に、スパムアカウントが紛れ込んでませんか
Facebookスパムデータベース~あなたのお友達に、スパムアカウントが紛れ込んでませんか
 
簡易電話交換機の作成~廃品利用による低予算プロジェクト
簡易電話交換機の作成~廃品利用による低予算プロジェクト簡易電話交換機の作成~廃品利用による低予算プロジェクト
簡易電話交換機の作成~廃品利用による低予算プロジェクト
 
Black jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとして
Black jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとしてBlack jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとして
Black jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとして
 
初めてのFacebookアプリの開発
初めてのFacebookアプリの開発初めてのFacebookアプリの開発
初めてのFacebookアプリの開発
 
Facebookの偽アカウント
Facebookの偽アカウントFacebookの偽アカウント
Facebookの偽アカウント
 
テストコードの定型化
テストコードの定型化テストコードの定型化
テストコードの定型化
 
HTMLを1行も書かずにwebアプリを作ってみました
HTMLを1行も書かずにwebアプリを作ってみましたHTMLを1行も書かずにwebアプリを作ってみました
HTMLを1行も書かずにwebアプリを作ってみました
 
ReSharperでLinq変換
ReSharperでLinq変換ReSharperでLinq変換
ReSharperでLinq変換
 

Recently uploaded

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 

Recently uploaded (12)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 

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