SlideShare a Scribd company logo
1 of 39
Xamarin入門 for .NETers
JXUGC #20
2016/11/26
BluewaterSoft biac
tamarin
Black-chinned emperor tamarin
https://en.wikipedia.org/wiki/File:Black-chinned_emperor_tamarin_(S._i._imperator).jpg
2016/11/26 JXUGC #20 2
tamarin
2016/11/26 JXUGC #20 3
Mono (Spanish) - monkey or ape
Simian - monkeys, cladistically including the
apes (真猿類)
Bonobo - pygmy chimpanzee
Tamarin - some of New World monkey
2016/11/26 JXUGC #20 4
Mono - .NET Framework 互換
Ximian - GNOME用アプリ開発企業
Bonobo - GNOME用「OLE」
Xamarin - ? ? ?
共通点は?すべて Miguel de Icaza による命名
ミゲル・デ・イカザ
2016/11/26 JXUGC #20 5
Xamarin Monky
@nishanil: Xamarin monkeys waiting 4 u! #bldwin #xamarin party!
https://twitter.com/nishanil/status/349702691439656964
2016/11/26 JXUGC #20 6
Xamarinの歴史を訪問♪
Xamarin Monkeyの歴史を振り返る
http://atsushieno.hatenablog.com/en
try/2014/12/25/011949
Xamarin社の歴史
https://blogs.msdn.microsoft.com/chomado
/xamarin/xamarin-history-as-a-company/
2016/11/26 JXUGC #20 7
JXUG
Japan Xamarin User Group
http://jxug.org/about.html
2016/11/26 JXUGC #20 8
JXUG は 2014/2/18 に
発足した Xamarin を愛
する方のコミュニティ
です。
Xamarin logo と Xamagon
https://www.xamarin.com/branding
※いろいろ書いてあるけど、ようは宣伝になるなら使っていいよ♪(たぶん)
2016/11/26 JXUGC #20 9
スピーカー紹介
BluewaterSoft 山本 康彦 a.k.a @biac
まだ人工衛星が飛んでない時代に生まれ、HONDAでクルマの設計やってました
Microsoft MVP for Windows Development (2014/10-2017/9)
UWPアプリ開発 / 記事や書籍の執筆 やってます
2016/11/26 JXUGC #20 10
CM
〔速攻入門〕 C#プログラミング
http://bluewatersoft.cocolog-nifty.com/blog/SokkoCSharp.html
〔速攻入門〕 C#プログラミング すぐに現場で使える知識
~ Java か C++ の経験があれば、 いっそう有利な最短ルート
中 博俊 (著), 猪股 健太郎 (著), 岩永 信之 (著), 山本 康彦 (著)
技術評論社 (2012/3/9)
Android / iPhone 開発をやってきた人に
最適な C# 解説書です
2016/11/26 JXUGC #20 11
CM
C#での開発に役立つ書籍
C#によるマルチコアのための非
同期/並列処理プログラミング
(2013/7)
C#プログラマーのための 基礎か
らわかる LINQマジック!
(2016/5)
2016/11/26 JXUGC #20 12
Xamarin って何? 「Xamarin」には
いくつかの意味がある
2016/11/26 JXUGC #20 13
Xamarinとは、
会社名であり、
サービス名であり、
製品名であり、
タマリン猿に由来する
2016/11/26 JXUGC #20 14
Xamarin社の製品とサービス
https://www.xamarin.com/ より。
ここからの話は
Xamarin Platform
についてです
2016/11/26 JXUGC #20 15
Xamarin Platform
クロスプラットフォーム開発環境
Android
iPhone, iPad, Mac
UWP (Universal Windows Platform)
Windows 10, Windows 10 Mobile,
Hololens, Xbox, Surface Hub
Windows Phone 8.1, Windows 8.1
2016/11/26 JXUGC #20 16
Xamarin Platform
IDE は Visual Studio
Visual Studio 2015
2013でもOK (制限アリ)
2017RCも、もちろんOK
Visual Studio for Mac (preview)
旧名: Xamarin Studio
2016/11/26 JXUGC #20 17
Xamarin Platform
その秘密❶: Compilation
Understanding the Xamarin Mobile Platform より。
2016/11/26 JXUGC #20 18
Xamarin Platform
その秘密❷: Platform SDK Access
Understanding the Xamarin Mobile Platform より。
2016/11/26 JXUGC #20 19
Xamarin Platform
その秘密❸: ざっくり言うと
ソースコード
バイナリ
利用API
2016/11/26 JXUGC #20 20
C#
ネイティブ .NET (IL)
.NET (IL) or
ネイティブ
Xamarin の準備 インストールは大騒ぎ
2016/11/26 JXUGC #20 21
Visual Studio 2015 (not "for MAC")
インストール準備
HDD:
Cドライブ空き50GB、SSDが望ましい
RAM:
4GB、ただしHyper-Vエミュでテストするなら最低8GB
Windows:
UWPやるならWindows 10
Hyper-Vエミュでテストするなら64bit版のPro.以上
Mac:
iOSやるならネットワークで繋がった実機が必要
2016/11/26 JXUGC #20 22
Visual Studio 2015 (not "for MAC")
インストール
[カスタム]インストール
または、インストール後の変更で、
この[C#/.NET (Xamarin)]に
チェックを入れる。
2016/11/26 JXUGC #20 23
Visual Studio 2015 (not "for MAC")
Xamarin アップデート
[ツール]-
[オプション]から
アップデートを
チェックする
2016/11/26 JXUGC #20 24
最新版は、偉い人の反応を
待ってから入れよう❢
Visual Studio 2015 (not "for MAC")
インストール 【まとめ】
ここまでの手順は、@ayatokuraのブログに♪
https://blogs.msdn.microsoft.com/ayatokura/2016/09/07/vs_xamarin_setup/
2016/11/26 JXUGC #20 25
Visual Studio 2015 (not "for MAC")
Android SDK アップデート
[ツール]-[Android]-
[Android SDK Manager]で出てくる。
ターゲットにするバージョンのSDKが
必要
2016/11/26 JXUGC #20 26
Visual Studio 2015 (not "for MAC")
インストール 【HELP!】
インストールに失敗したら、まず @ytabuchi ブログを♪
http://ytabuchi.hatenablog.com/entry/2016/04/05/142525
2016/11/26 JXUGC #20 27
Visual Studio 2015 (not "for MAC")
「Hello, Xamarin!!」
今回は省略❢
こちら⇓をご覧ください f(^^;
@IT
特集:Visual StudioとXamarinで始める
iOS/Android/UWPアプリ開発
第1回:Xamarinでアプリを作ろう
http://www.atmarkit.co.jp/ait/articles/1609/23/news019.html
2016/11/26 JXUGC #20 28
Xamarin.Formsと
ネイティブUI
UIの作り方は2通りある
2016/11/26 JXUGC #20 29
Xamarin.Forms と ネイティブUI
UIを作る2つの方法
今回は省略❢
こちら⇓をご覧ください f(^^;
@IT
特集:Visual StudioとXamarinで始める
iOS/Android/UWPアプリ開発
第2回:Xamarin.FormsとネイティブUI
http://www.atmarkit.co.jp/ait/articles/1611/02/news025.html
2016/11/26 JXUGC #20 30
Xamarin で共通化
クロスプラットフォーム開発
の醍醐味 (そして難関) は、
いかにしてコードを共通化す
るか?
2016/11/26 JXUGC #20 31
クロスプラットフォーム開発❓
コードを共通化しないなら、「クロス」プラット
フォーム開発じゃない❢
「パラレル」プラットフォーム開発だw
2016/11/26 JXUGC #20 32
コードを共通化する
共通するコードを
ひとつのプロジェクトに収め、
各プラットフォームごとの
プロジェクトから利用
2016/11/26 JXUGC #20 33
コードを共通化する2通りの方法
PCL (移植可能クラスライブラリ)
・ 共通コードを独立したバイナリ
(DLL)としてビルドする(バイナ
リレベルのコード共有)
・ 他のアプリ開発にも転用しやすい
(ロジックのみのPCLを作った場
合)
・ プラットフォームに依存するAPI
は利用できない
Shared Project (共有プロジェクト)
・ 共通コードをビルドするときに各
プロジェクトに取り込む(ソース
コードレベルのコード共有)
・ 他のアプリ開発に転用するには
ソースコードのコピー&ペーストに
なる
・ プラットフォームに依存するAPI
も利用できる
2016/11/26 JXUGC #20 34
どちらかをプロジェクト作成時に選択
あとから追加も可能
共通コード内で
プラットフォーム依存コード
共通コードの中で
プラットフォームに依存する
コードが必要になることって…
あるよね‼
2016/11/26 JXUGC #20 35
共通コード内で
プラットフォーム依存コード
豊富に取り揃えてございます (^^)/
・#if ディレクティブで分岐: Shared Projectのみ
・OnPlatform: プラットフォームに応じて処理を分岐させる。XAMLでも利用可
・DependecyService: PCL用。DIコンテナのようなもの
・Custom Renderer: Xamarin.Forms用。独自のUIコントロールを作成する
・Plugins for Xamarin: PCLにもプラットフォームごとのプロジェクトにも同
名のDLLを作成し、パッケージにはプラットフォームごとのDLLを含めることで、
PCLの仕組みを「騙す」方法
・Effects: Xamarin.Forms用。既存のUIコントロールに後付けする形でカスタマ
イズする。Custom Rendererより手軽(Xamarin.Forms 2.1以降)
2016/11/26 JXUGC #20 36
共通コード内で
プラットフォーム依存コード
・#if ディレクティブ
・OnPlatform
・DependecyService
・Custom Renderer
以上の4つは、次の記事で解説しています。
@IT
特集:Visual StudioとXamarinで始めるiOS/Android/UWPアプリ開発
第3回:Xamarinでコードを共通化しよう
(近日公開予定)
2016/11/26 JXUGC #20 37
Xamarinやると、
• 情報収集力・忍耐力・筋力がつきますw
• Xamarin (というかUWP) 安泰 (一蓮托生)
• みんな(Android/iOS/Windows)で
幸せになろうよ❢ (CV:後藤喜一)
2016/11/26 JXUGC #20 38
ご清聴ありがとうございました
2016/11/26 JXUGC #20 39

More Related Content

Viewers also liked

BIAC 6 Final Presentation
BIAC 6  Final PresentationBIAC 6  Final Presentation
BIAC 6 Final Presentation
Tarun Gupta
 

Viewers also liked (18)

Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメXamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
 
続Xamarinはじめました
続Xamarinはじめました続Xamarinはじめました
続Xamarinはじめました
 
Jxugc#22 lt古川
Jxugc#22 lt古川Jxugc#22 lt古川
Jxugc#22 lt古川
 
Xamarinは辛いよ
Xamarinは辛いよXamarinは辛いよ
Xamarinは辛いよ
 
Xamarin.Forms概要
Xamarin.Forms概要Xamarin.Forms概要
Xamarin.Forms概要
 
Xamarin.Formsで鉄道模型を制御してみた
Xamarin.Formsで鉄道模型を制御してみたXamarin.Formsで鉄道模型を制御してみた
Xamarin.Formsで鉄道模型を制御してみた
 
BIAC 6 Final Presentation
BIAC 6  Final PresentationBIAC 6  Final Presentation
BIAC 6 Final Presentation
 
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 EastiOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
 
Enterpriseから見たXamarinの可能性
Enterpriseから見たXamarinの可能性Enterpriseから見たXamarinの可能性
Enterpriseから見たXamarinの可能性
 
Visual Studio + xamarin で始めるモバイル アプリ開発
Visual Studio + xamarin で始めるモバイル アプリ開発Visual Studio + xamarin で始めるモバイル アプリ開発
Visual Studio + xamarin で始めるモバイル アプリ開発
 
ゆるふわ Xamarin Tips
ゆるふわ Xamarin Tipsゆるふわ Xamarin Tips
ゆるふわ Xamarin Tips
 
カメラアプリ開発入門3
カメラアプリ開発入門3カメラアプリ開発入門3
カメラアプリ開発入門3
 
JXUGC 13 東京 はじめに
JXUGC 13 東京 はじめにJXUGC 13 東京 はじめに
JXUGC 13 東京 はじめに
 
かけ算で使いこなす Xamarin
かけ算で使いこなす Xamarinかけ算で使いこなす Xamarin
かけ算で使いこなす Xamarin
 
Xamarin開発環境の選択
Xamarin開発環境の選択Xamarin開発環境の選択
Xamarin開発環境の選択
 
Xamarinはじめました
XamarinはじめましたXamarinはじめました
Xamarinはじめました
 
.NET Compiler Platform
.NET Compiler Platform.NET Compiler Platform
.NET Compiler Platform
 
Xamarinで作る 「オリジナルタイル地図」アプリ
Xamarinで作る「オリジナルタイル地図」アプリXamarinで作る「オリジナルタイル地図」アプリ
Xamarinで作る 「オリジナルタイル地図」アプリ
 

More from Yasuhiko Yamamoto

Windowsストアアプリでウイルスを作るには!? cod2013名古屋
Windowsストアアプリでウイルスを作るには!? cod2013名古屋Windowsストアアプリでウイルスを作るには!? cod2013名古屋
Windowsストアアプリでウイルスを作るには!? cod2013名古屋
Yasuhiko Yamamoto
 

More from Yasuhiko Yamamoto (20)

UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法
 
無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリ無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリ
 
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
 
わんくま名古屋 #37 (20151114) TDD道場 #25
わんくま名古屋 #37 (20151114) TDD道場 #25わんくま名古屋 #37 (20151114) TDD道場 #25
わんくま名古屋 #37 (20151114) TDD道場 #25
 
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
 
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」
第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」
 
わんくま名古屋#34(20150214) TDD道場#22
わんくま名古屋#34(20150214) TDD道場#22わんくま名古屋#34(20150214) TDD道場#22
わんくま名古屋#34(20150214) TDD道場#22
 
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
 
わんくま名古屋#33(20141115) モノ作り半生
わんくま名古屋#33(20141115) モノ作り半生わんくま名古屋#33(20141115) モノ作り半生
わんくま名古屋#33(20141115) モノ作り半生
 
わんくま名古屋#33(20141115) TDD道場#21
わんくま名古屋#33(20141115) TDD道場#21わんくま名古屋#33(20141115) TDD道場#21
わんくま名古屋#33(20141115) TDD道場#21
 
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
 
わんくま名古屋 #32 (20140823) TDD道場 #20
わんくま名古屋 #32 (20140823) TDD道場 #20わんくま名古屋 #32 (20140823) TDD道場 #20
わんくま名古屋 #32 (20140823) TDD道場 #20
 
わんくま名古屋#31(20140524) TDD道場 #19
わんくま名古屋#31(20140524) TDD道場 #19わんくま名古屋#31(20140524) TDD道場 #19
わんくま名古屋#31(20140524) TDD道場 #19
 
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧めわんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
 
Windows ストア アプリでスレッド間排他処理
Windows ストア アプリでスレッド間排他処理Windows ストア アプリでスレッド間排他処理
Windows ストア アプリでスレッド間排他処理
 
Windows 8.1 Update 1 の噂をまとめてみた
Windows 8.1 Update 1 の噂をまとめてみたWindows 8.1 Update 1 の噂をまとめてみた
Windows 8.1 Update 1 の噂をまとめてみた
 
タダで始めるテストファースト入門 ~ C# Express + NUnit
タダで始めるテストファースト入門 ~ C# Express + NUnitタダで始めるテストファースト入門 ~ C# Express + NUnit
タダで始めるテストファースト入門 ~ C# Express + NUnit
 
わんくま名古屋 #29 (2013/11/23) TDD道場 #17
わんくま名古屋 #29 (2013/11/23) TDD道場 #17わんくま名古屋 #29 (2013/11/23) TDD道場 #17
わんくま名古屋 #29 (2013/11/23) TDD道場 #17
 
Windows 8.1 ストア アプリ first look for 8.0 developers! [ss]
Windows 8.1 ストア アプリ first look for 8.0 developers! [ss]Windows 8.1 ストア アプリ first look for 8.0 developers! [ss]
Windows 8.1 ストア アプリ first look for 8.0 developers! [ss]
 
Windowsストアアプリでウイルスを作るには!? cod2013名古屋
Windowsストアアプリでウイルスを作るには!? cod2013名古屋Windowsストアアプリでウイルスを作るには!? cod2013名古屋
Windowsストアアプリでウイルスを作るには!? cod2013名古屋
 

Recently uploaded

Recently uploaded (11)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

Xamarin 入門 for .NETers @jxugc #20