Upload
yasuhiko-yamamoto
View
920
Download
2
Embed Size (px)
Citation preview
わんくま同盟 名古屋勉強会 #38
Xamarin で始める
iOS / Androidアプリ開発
2016/5/21bluewatersoft.jp @biac
2016/5/21 1
わんくま同盟 名古屋勉強会 #38
スピーカー紹介
• BluewaterSoft 山本 康彦 a.k.a @biacまだ人工衛星が飛んでない時代に生まれ、HONDAでクルマの設計やってました
• Microsoft MVP for Windows Development (2014/10-2016/9)
• Windows ランタイム アプリ開発 / 記事や書籍の執筆 やってます
22016/5/21
わんくま同盟 名古屋勉強会 #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
わんくま同盟 名古屋勉強会 #38
LINQマジック!
新刊のCM
4
わんくま同盟 名古屋勉強会 #38
C#プログラマーのための 基礎からわかるLINQマジック!
• 5月12日 発売♪
• 「LINQ? なにそれ美味しいの!?」…という人に!
• 技術評論社ISBN: 978-4-7741-8094-6352ページ、¥3,110 (消費税込み)
2016/5/21 5
わんくま同盟 名古屋勉強会 #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
わんくま同盟 名古屋勉強会 #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();
わんくま同盟 名古屋勉強会 #38
C#では、LINQがVisual Studio 2008から実用化
※ 前頁のJavaのコードを翻訳
2016/5/21 8
string[] values = {"あか","あお","きいろ","みどり","おれんじ"};
string result = values.Where(value => value.Contains("あ")).Max();
WriteLine(result??"(null)");//出力: あか
わんくま同盟 名古屋勉強会 #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)");//出力: あか
わんくま同盟 名古屋勉強会 #38
C#プログラマーのための 基礎からわかるLINQマジック!
LINQは…
• 複雑な繰り返し処理 (ループ) が簡潔に書ける♪
• パフォーマンスはほとんど低下しない!!
この本は、その秘密を解き明かします
2016/5/21 10
わんくま同盟 名古屋勉強会 #38
Xamarin入門
正確には Visual Studio のXamarin tools (Xamarin for Visual Studio)
2016/5/21 11
わんくま同盟 名古屋勉強会 #38
ざまりん
Xamarin ってナニモノ?• Xamarin Inc. のクロス プラットフォーム 開発ツールAndroid / iOS / Windows
• C#で開発
• Xamarin Inc. をMicrosoftが買収 (2016/3/18)⇨ Xamarin Platformが、Visual Studioに無償で入った♪
※ Community版(無償)以上。Expressには無し
2016/5/21 12
わんくま同盟 名古屋勉強会 #38
Xamarin の製品構成
※ 日本代理店はXLsoft https://www.xlsoft.com/jp/products/xamarin/
2016/5/21 13
IDE (Mac用 / Windows用) 自動テスト用クラウド
アプリ モニタリング トレーニング
これがVisual Studioに入った!
わんくま同盟 名古屋勉強会 #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
これから紹介するのはこちら♪
わんくま同盟 名古屋勉強会 #38
クロス開発戦略
プロジェクトを計画するときの知識
2016/5/21 15
わんくま同盟 名古屋勉強会 #38
2通りの UI作成法
• Xamarin ネイティブ
▸プラットフォームごとに記述
▸ネイティブAPI 使い放題
• Xamarin Forms
▸共通の単一コードで記述
▸ネイティブUIに変換される
▸それなりの制限アリ
2016/5/21 16
これから紹介するのはこちら♪
わんくま同盟 名古屋勉強会 #38
2通りの コード共通化手法 (1/3)
• PCL
▸独立したバイナリ
▸実行時に参照
• Shared Project
▸ビルド時にマージ
2016/5/21 17
これから紹介するのはこちら♪
わんくま同盟 名古屋勉強会 #38
2通りの コード共通化手法 (2/3)
• PCL (Portable Class Library)
2016/5/21 18
Android用プロジェクト
バイナリ
iOS用プロジェクト
Windows用プロジェクト
PCLプロジェクト
バイナリ
バイナリ
バイナリ
実行時に参照
わんくま同盟 名古屋勉強会 #38
2通りの コード共通化手法 (3/3)
• Shared Project
2016/5/21 19
Android用プロジェクト
iOS用プロジェクト
Windows用プロジェクト
Sharedプロジェクト
バイナリ
バイナリ
バイナリ
ビルド時にマージ
わんくま同盟 名古屋勉強会 #38
Xamarinインストール
Visual Studio 2015インストール時にオプション選択
2016/5/21 20
わんくま同盟 名古屋勉強会 #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
わんくま同盟 名古屋勉強会 #38
インストール
• VS2015 新規インストール時、または、コントロールパネルの「プログラムのアンインストールと変更」
• 機能選択画面で、「クロスプラットフォーム モバイル開発」の下の「C#/.NET (Xamarin)」にチェック
• 全部入りだと45GBくらい (@@;
2016/5/21 22
わんくま同盟 名古屋勉強会 #38
Hello, world!!
最初のダンジョン
2016/5/21 23
わんくま同盟 名古屋勉強会 #38
このルートの落とし穴
▸× ユーザー名に日本語▸× プロジェクト名、または、そこまでのパスに日本語
• あとは大丈夫だったけど、一番楽な攻略ルートなので f(^^;
※ 実際には相当に手ごわいダンジョンです。攻略方法は、XLsoft 田淵さん @ytabuchi のブログに⇩http://ytabuchi.hatenablog.com/entry/2016/04/05/142525
2016/5/21 24
わんくま同盟 名古屋勉強会 #38
Xamarin.Forms + Shared プロジェクト• プロジェクトの新規作成ダイアロ
グで [Blank App (Xamarin.Forms Shared)] を選択
•
※右上の検索ボックスで「xamarin」とやると早い
2016/5/21 25
わんくま同盟 名古屋勉強会 #38
"Hello, Xamarin.Forms!"
2016/5/21 26
共有プロジェクトのApp.cs にコード追加
わんくま同盟 名古屋勉強会 #38
Android エミュレータで実行👏
2016/5/21 27
[Any CPU]
Androidのプロジェクトを選択
Androidのエミュレータを選択
わんくま同盟 名古屋勉強会 #38
Win10上で実行👏
2016/5/21 28
[x86] or [x64]
UWPのプロジェクトを選択
ローカルコンピュータを選択
【注意】Win10 UWPは、Any CPUではビルドできません。.NET NativeでCPUごとのバイナリになるためです。
わんくま同盟 名古屋勉強会 #38
まとめ
今回はここまで!
2016/5/21 29
わんくま同盟 名古屋勉強会 #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
わんくま同盟 名古屋勉強会 #38
Xamarin
入門
2016/05/21BluewaterSoft @biac
2016/5/21 31