xamarin 入門 for .neters @jxugc #20

39
Xamarin 入入 for .NETers JXUGC #20 2016/11/26 BluewaterSoft biac

Upload: yasuhiko-yamamoto

Post on 16-Apr-2017

2.001 views

Category:

Technology


10 download

TRANSCRIPT

Page 1: Xamarin 入門 for .NETers @jxugc #20

Xamarin 入門 for .NETersJXUGC #202016/11/26

BluewaterSoft biac

Page 2: Xamarin 入門 for .NETers @jxugc #20

tamarin 

Black-chinned emperor tamarinhttps://en.wikipedia.org/wiki/File:Black-chinned_emperor_tamarin_(S._i._imperator).jpg

2016/11/26 JXUGC #20 2

Page 3: Xamarin 入門 for .NETers @jxugc #20

tamarin 

Moustached Tamarin https://en.wikipedia.org/wiki/File:Saguinus_mystax_at_the_Bronx_Zoo_01.jpgPied Tamarin https://en.wikipedia.org/wiki/File:Saguinus_bicolor_Parque_do_Mndu.jpg

Black-handed-tamarin https://en.wikipedia.org/wiki/File:Saguinus_niger.JPGBrown-mantled Tamarin https://en.wikipedia.org/wiki/File:Brown-mantled_Tamarin.jpg

Golden-handed Tamarin https://en.wikipedia.org/wiki/File:Saguinus_midas_flk24863753.jpgGolden-mantled Tamarin https://en.wikipedia.org/wiki/File:Saguinus_tripartitus_-_Golden-mantled_Tamarin.jpg

2016/11/26 JXUGC #20 3

Page 4: Xamarin 入門 for .NETers @jxugc #20

Mono (Spanish) - monkey or ape

Simian - monkeys, cladistically including the apes ( 真猿類 )

Bonobo - pygmy chimpanzee

Tamarin - some of New World monkey2016/11/26 JXUGC #20 4

Page 5: Xamarin 入門 for .NETers @jxugc #20

Mono - .NET Framework 互換Ximian - GNOME 用アプリ開発企業Bonobo - GNOME 用「 OLE 」Xamarin - ? ? ?

共通点は?すべて Miguel de Icaza による命名ミゲル・デ・イカザ 2016/11/26 JXUGC #20 5

Page 6: Xamarin 入門 for .NETers @jxugc #20

Xamarin Monky 

@nishanil: Xamarin monkeys waiting 4 u! #bldwin #xamarin party!https://twitter.com/nishanil/status/349702691439656964

2016/11/26 JXUGC #20 6

Page 7: Xamarin 入門 for .NETers @jxugc #20

Xamarin の歴史を訪問♪Xamarin Monkey の歴史を振り返るhttp://atsushieno.hatenablog.com/entry/2014/12/25/011949

Xamarin 社の歴史https://blogs.msdn.microsoft.com/chomado/xamarin/xamarin-history-as-a-company/

2016/11/26 JXUGC #20 7

Page 8: Xamarin 入門 for .NETers @jxugc #20

JXUGJapan Xamarin User Group http://jxug.org/about.html

2016/11/26 JXUGC #20 8

JXUG は 2014/2/18 に発足した Xamarin を愛する方のコミュニティです。

Page 9: Xamarin 入門 for .NETers @jxugc #20

Xamarin logo と Xamagon

https://www.xamarin.com/branding※ いろいろ書いてあるけど、ようは宣伝になるなら使っていいよ♪ ( たぶん )

2016/11/26 JXUGC #20 9

Page 10: Xamarin 入門 for .NETers @jxugc #20

スピーカー紹介 BluewaterSoft 山本 康彦 a.k.a @biacまだ人工衛星が飛んでない時代に生まれ、 HONDA でクルマの設計やってました Microsoft MVP for Windows Development (2014/10-2017/9)

UWP アプリ開発 / 記事や書籍の執筆 やってます

2016/11/26 JXUGC #20 10

Page 11: Xamarin 入門 for .NETers @jxugc #20

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

Page 13: Xamarin 入門 for .NETers @jxugc #20

Xamarin って何? 「 Xamarin 」にはいくつかの意味がある2016/11/26 JXUGC #20 13

Page 14: Xamarin 入門 for .NETers @jxugc #20

Xamarin とは、会社名であり、サービス名であり、製品名であり、タマリン猿に由来する2016/11/26 JXUGC #20 14

Page 15: Xamarin 入門 for .NETers @jxugc #20

Xamarin 社の製品とサービス https://www.xamarin.com/ より。ここからの話はXamarin Platformについてです

2016/11/26 JXUGC #20 15

Page 16: Xamarin 入門 for .NETers @jxugc #20

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

Page 17: Xamarin 入門 for .NETers @jxugc #20

Xamarin PlatformIDE は Visual StudioVisual Studio 2015

2013 でも OK ( 制限アリ )2017RCも、もちろん OK

Visual Studio for Mac (preview)

旧名 : Xamarin Studio

2016/11/26 JXUGC #20 17

Page 20: Xamarin 入門 for .NETers @jxugc #20

Xamarin Platformその秘密❸ : ざっくり言うと ソースコード

バイナリ

利用 API

2016/11/26 JXUGC #20 20

C#

ネイティブ .NET (IL).NET (IL)

orネイティブ

Page 21: Xamarin 入門 for .NETers @jxugc #20

Xamarin の準備 インストールは大騒ぎ

2016/11/26 JXUGC #20 21

Page 22: Xamarin 入門 for .NETers @jxugc #20

Visual Studio 2015 (not "for MAC")インストール準備 HDD:

C ドライブ空き 50GB 、 SSD が望ましい RAM:

4GB 、ただし Hyper-V エミュでテストするなら最低 8GB

Windows:UWP やるなら Windows 10Hyper-V エミュでテストするなら 64bit 版の Pro. 以上

Mac:iOS やるならネットワークで繋がった実機が必要

2016/11/26 JXUGC #20 22

Page 23: Xamarin 入門 for .NETers @jxugc #20

Visual Studio 2015 (not "for MAC")インストール [カスタム]インストールまたは、インストール後の変更で、この[ C#/.NET (Xamarin) ]にチェックを入れる。

2016/11/26 JXUGC #20 23

Page 24: Xamarin 入門 for .NETers @jxugc #20

Visual Studio 2015 (not "for MAC")Xamarin アップデート [ツール]-[オプション]からアップデートをチェックする

2016/11/26 JXUGC #20 24

最新版は、偉い人の反応を待ってから入れよう❢

Page 25: Xamarin 入門 for .NETers @jxugc #20

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

Page 26: Xamarin 入門 for .NETers @jxugc #20

Visual Studio 2015 (not "for MAC")Android SDK アップデート [ツール]-[ Android ]-[ Android SDK Manager ]で出てくる。ターゲットにするバージョンの SDK が必要

2016/11/26 JXUGC #20 26

Page 27: Xamarin 入門 for .NETers @jxugc #20

Visual Studio 2015 (not "for MAC")インストール 【 HELP! 】 インストールに失敗したら、まず @ytabuchi ブログを♪http://ytabuchi.hatenablog.com/entry/2016/04/05/142525

2016/11/26 JXUGC #20 27

Page 28: Xamarin 入門 for .NETers @jxugc #20

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

Page 29: Xamarin 入門 for .NETers @jxugc #20

Xamarin.Forms とネイティブ UI UI の作り方は 2 通りある

2016/11/26 JXUGC #20 29

Page 30: Xamarin 入門 for .NETers @jxugc #20

Xamarin.Forms と ネイティブ UIUI を作る 2 つの方法 今回は省略❢

こちら をご覧ください ⇓ f(^^; @ IT特集: Visual Studio と Xamarin で始めるiOS / Android / UWP アプリ開発第2回:Xamarin.FormsとネイティブUIhttp://www.atmarkit.co.jp/ait/articles/1611/02/news025.html

2016/11/26 JXUGC #20 30

Page 31: Xamarin 入門 for .NETers @jxugc #20

Xamarin で共通化 クロスプラットフォーム開発の醍醐味 ( そして難関 ) は、いかにしてコードを共通化するか ?2016/11/26 JXUGC #20 31

Page 32: Xamarin 入門 for .NETers @jxugc #20

クロスプラットフォーム開発❓コードを共通化しないなら、「クロス」プラットフォーム開発じゃない❢「パラレル」プラットフォーム開発だ w

2016/11/26 JXUGC #20 32

Page 33: Xamarin 入門 for .NETers @jxugc #20

コードを共通化する 共通するコードをひとつのプロジェクトに収め、各プラットフォームごとのプロジェクトから利用

2016/11/26 JXUGC #20 33

Page 34: Xamarin 入門 for .NETers @jxugc #20

コードを共通化する 2 通りの方法PCL ( 移植可能クラスライブラリ )

・ 共通コードを独立したバイナリ( DLL )としてビルドする(バイナリレベルのコード共有) ・ 他のアプリ開発にも転用しやすい(ロジックのみの PCL を作った場合) ・ プラットフォームに依存する APIは利用できない

Shared Project ( 共有プロジェクト ) ・ 共通コードをビルドするときに各プロジェクトに取り込む(ソースコードレベルのコード共有) ・ 他のアプリ開発に転用するにはソースコードのコピー&ペーストになる ・ プラットフォームに依存する APIも利用できる

2016/11/26 JXUGC #20 34

どちらかをプロジェクト作成時に選択あとから追加も可能

Page 35: Xamarin 入門 for .NETers @jxugc #20

共通コード内でプラットフォーム依存コード 共通コードの中でプラットフォームに依存するコードが必要になることって… あるよね‼

2016/11/26 JXUGC #20 35

Page 36: Xamarin 入門 for .NETers @jxugc #20

共通コード内でプラットフォーム依存コード 豊富に取り揃えてございます (^^)/ ・ #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

Page 37: Xamarin 入門 for .NETers @jxugc #20

共通コード内でプラットフォーム依存コード ・ #if ディレクティブ・ OnPlatform・ DependecyService・ Custom Renderer 以上の 4 つは、次の記事で解説しています。 @ IT特集: Visual Studio と Xamarin で始める iOS / Android / UWP アプリ開発第 3 回: Xamarin でコードを共通化しよう( 近日公開予定 )

2016/11/26 JXUGC #20 37

Page 38: Xamarin 入門 for .NETers @jxugc #20

Xamarin やると、• 情報収集力・忍耐力・筋力がつきます w• Xamarin ( というか UWP) 安泰 (一蓮托生 )• みんな (Android/iOS/Windows) で幸せになろうよ ❢ (CV: 後藤喜一 )

2016/11/26 JXUGC #20 38

Page 39: Xamarin 入門 for .NETers @jxugc #20

ご清聴ありがとうございました2016/11/26 JXUGC #20 39