31
わんくま同盟 名古屋勉強会 #38 Xamarin で始める iOS / Android アプリ開発 2016/5/21 bluewatersoft.jp @biac 2016/5/21 1

わんくま名古屋 #38 (20160521) Xamarin入門

Embed Size (px)

Citation preview

Page 1: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

Xamarin で始める

iOS / Androidアプリ開発

2016/5/21bluewatersoft.jp @biac

2016/5/21 1

Page 2: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

スピーカー紹介

• BluewaterSoft 山本 康彦 a.k.a @biacまだ人工衛星が飛んでない時代に生まれ、HONDAでクルマの設計やってました

• Microsoft MVP for Windows Development (2014/10-2016/9)

• Windows ランタイム アプリ開発 / 記事や書籍の執筆 やってます

22016/5/21

Page 3: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

スピーカー紹介~ このセッションに関連する@ITの記事

• 徹底予習! Windows 10 のユニバーサルアプリ開発2015/4/28 http://www.atmarkit.co.jp/ait/articles/1504/28/news015.html

• Windowsフォーム開発者のためのWindows 10 UWPアプリ開発入門2015/9/29~ http://www.atmarkit.co.jp/ait/articles/1509/29/news020.html

• 連載:Visual Studio+Apache Cordovaで始めるiOS/Androidアプリ開発2016/3/15~http://www.atmarkit.co.jp/ait/subtop/features/dotnet/app/vscordova_index.html

32016/5/21

Page 4: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

LINQマジック!

新刊のCM

4

Page 5: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

C#プログラマーのための 基礎からわかるLINQマジック!

• 5月12日 発売♪

• 「LINQ? なにそれ美味しいの!?」…という人に!

• 技術評論社ISBN: 978-4-7741-8094-6352ページ、¥3,110 (消費税込み)

2016/5/21 5

Page 6: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

C#プログラマーのための 基礎からわかるLINQマジック!

• Amazonhttp://amzn.to/1Seb1Mb※ Kindle版は¥2,880

• 技評デジタルパブリッシング¥2,880 (PDF/ePubセット)https://gihyo.jp/dp/ebook/2016/978-4-7741-8176-9

• その他のオンラインショップは、技評社のサイトを参照してくださいhttps://gihyo.jp/book/2016/978-4-7741-8094-6

2016/5/21 6

Page 7: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

Java 8 で登場した Stream API

※「ラムダ式で本領を発揮する関数型インターフェースとStream APIの基礎知識」(2014/4/30)よりhttp://www.atmarkit.co.jp/ait/articles/1404/30/news017.html

2016/5/21 7

String[] values = {"あか","あお","きいろ","みどり","おれんじ"};Stream<String> stream = Arrays.stream(values);

String result = stream.filter(value -> value.contains("あ")).max((v1, v2) -> v1.compareTo(v2)).get();

Page 8: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

C#では、LINQがVisual Studio 2008から実用化

※ 前頁のJavaのコードを翻訳

2016/5/21 8

string[] values = {"あか","あお","きいろ","みどり","おれんじ"};

string result = values.Where(value => value.Contains("あ")).Max();

WriteLine(result??"(null)");//出力: あか

Page 9: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

C#、LINQ以前の書き方

※ 前頁のLINQのコードと同じ結果が得られる

2016/5/21 9

string[] values = { "あか", "あお", "きいろ", "みどり", "おれんじ" };string result = null;foreach (var value in values){

if (value.Contains("あ")){

if (string.Compare(result , value) < 0)result = value;

}}WriteLine(result ?? "(null)");//出力: あか

Page 10: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

C#プログラマーのための 基礎からわかるLINQマジック!

LINQは…

• 複雑な繰り返し処理 (ループ) が簡潔に書ける♪

• パフォーマンスはほとんど低下しない!!

この本は、その秘密を解き明かします

2016/5/21 10

Page 11: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

Xamarin入門

正確には Visual Studio のXamarin tools (Xamarin for Visual Studio)

2016/5/21 11

Page 12: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

ざまりん

Xamarin ってナニモノ?• Xamarin Inc. のクロス プラットフォーム 開発ツールAndroid / iOS / Windows

• C#で開発

• Xamarin Inc. をMicrosoftが買収 (2016/3/18)⇨ Xamarin Platformが、Visual Studioに無償で入った♪

※ Community版(無償)以上。Expressには無し

2016/5/21 12

Page 13: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

Xamarin の製品構成

※ 日本代理店はXLsoft https://www.xlsoft.com/jp/products/xamarin/

2016/5/21 13

IDE (Mac用 / Windows用) 自動テスト用クラウド

アプリ モニタリング トレーニング

これがVisual Studioに入った!

Page 14: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

2つのXamarin Platform

※ https://www.xamarin.com/studio ; https://www.xamarin.com/visual-studio

2016/5/21 14

Xamarin Studio (Mac用) Xamarin for Visual Studio

これから紹介するのはこちら♪

Page 15: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

クロス開発戦略

プロジェクトを計画するときの知識

2016/5/21 15

Page 16: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

2通りの UI作成法

• Xamarin ネイティブ

▸プラットフォームごとに記述

▸ネイティブAPI 使い放題

• Xamarin Forms

▸共通の単一コードで記述

▸ネイティブUIに変換される

▸それなりの制限アリ

2016/5/21 16

これから紹介するのはこちら♪

Page 17: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

2通りの コード共通化手法 (1/3)

• PCL

▸独立したバイナリ

▸実行時に参照

• Shared Project

▸ビルド時にマージ

2016/5/21 17

これから紹介するのはこちら♪

Page 18: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

2通りの コード共通化手法 (2/3)

• PCL (Portable Class Library)

2016/5/21 18

Android用プロジェクト

バイナリ

iOS用プロジェクト

Windows用プロジェクト

PCLプロジェクト

バイナリ

バイナリ

バイナリ

実行時に参照

Page 19: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

2通りの コード共通化手法 (3/3)

• Shared Project

2016/5/21 19

Android用プロジェクト

iOS用プロジェクト

Windows用プロジェクト

Sharedプロジェクト

バイナリ

バイナリ

バイナリ

ビルド時にマージ

Page 20: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

Xamarinインストール

Visual Studio 2015インストール時にオプション選択

2016/5/21 20

Page 21: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

開発に必要な環境

• WindowsUWPをやるならWin10必須、そうでなければWin8.1でもOK (…らしい)エミュレータを使うには、64bit版のPro以上メモリ8GB以上 & SSD必須 (⇦個人の感想ですw)

• ビルド用MaciOS向けにビルドするには必須MacinCloudを利用する手もアリ http://nuits.hatenadiary.jp/entry/2016/04/02/124859

• テスト用の実機 (なくても何とかなる)Android / Kindle Fire、iPhone / iPad / Apple watch、Windows Phone 8.x / Windows 10 phone / HoloLens / Xbox one / Raspberry Pi、etc.

2016/5/21 21

Page 22: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

インストール

• VS2015 新規インストール時、または、コントロールパネルの「プログラムのアンインストールと変更」

• 機能選択画面で、「クロスプラットフォーム モバイル開発」の下の「C#/.NET (Xamarin)」にチェック

• 全部入りだと45GBくらい (@@;

2016/5/21 22

Page 23: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

Hello, world!!

最初のダンジョン

2016/5/21 23

Page 24: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

このルートの落とし穴

▸× ユーザー名に日本語▸× プロジェクト名、または、そこまでのパスに日本語

• あとは大丈夫だったけど、一番楽な攻略ルートなので f(^^;

※ 実際には相当に手ごわいダンジョンです。攻略方法は、XLsoft 田淵さん @ytabuchi のブログに⇩http://ytabuchi.hatenablog.com/entry/2016/04/05/142525

2016/5/21 24

Page 25: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

Xamarin.Forms + Shared プロジェクト• プロジェクトの新規作成ダイアロ

グで [Blank App (Xamarin.Forms Shared)] を選択

※右上の検索ボックスで「xamarin」とやると早い

2016/5/21 25

Page 26: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

"Hello, Xamarin.Forms!"

2016/5/21 26

共有プロジェクトのApp.cs にコード追加

Page 27: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

Android エミュレータで実行👏

2016/5/21 27

[Any CPU]

Androidのプロジェクトを選択

Androidのエミュレータを選択

Page 28: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

Win10上で実行👏

2016/5/21 28

[x86] or [x64]

UWPのプロジェクトを選択

ローカルコンピュータを選択

【注意】Win10 UWPは、Any CPUではビルドできません。.NET NativeでCPUごとのバイナリになるためです。

Page 29: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

まとめ

今回はここまで!

2016/5/21 29

Page 30: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

Xamarin で "Hello, world!" やってみた♪

• C# でクロス プラットフォーム開発ができるよ!

• VS 2015 Community なら、開発環境は無償♪(ハードスペックの要求がそれなりに…)

• “Hello, world!”までの道のりは長いと覚悟してね♡日本で一番詳しい人は、(たぶん)XLsoft https://www.xlsoft.com/jp/products/xamarin/ の田淵さん @ytabuchi / http://ytabuchi.hatenablog.com/「Xamarin逆引きTips」を連載中http://www.buildinsider.net/mobile/xamarintips

302016/5/21

Page 31: わんくま名古屋 #38 (20160521) Xamarin入門

わんくま同盟 名古屋勉強会 #38

Xamarin

入門

2016/05/21BluewaterSoft @biac

2016/5/21 31