SlideShare a Scribd company logo
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

Xamarin 入門 for .NETers @jxugc #20