Slide 1

Slide 1 text

Xamarin本の歩き方2017 2017/12/9 JXUG福岡 Xamarin初心者向けハンズオン

Slide 2

Slide 2 text

自己紹介 ● 杉田 寿憲 ○ Toshinori Sugita, @toshi0607 ● 10月にMicrosoft MVPに ○ Visual Studio & Development Technologies ● Software Engineer@freee ● Rubyが多いですが、Microsoft技術関連開発も!! ○ サーバサイド: Ruby on Rails、Go ○ クライアントサイド: JavaScript、C#(WPF、Xamarin.Mac) ● We’re hiring ○ 日本を変えたいWindowsアプリエンジニア募集!! ■ https://www.wantedly.com/projects/66243#_=_

Slide 3

Slide 3 text

今日のお話 ● Xamarinの技術書(日本語)それぞれの特徴とカバーする領域 ● カバーする技術領域を把握するための基本的なXamarin関連 知識のおさらい ● Xamarinともっと仲良くなるために学ばないといけないと思った こと(読書感想文)

Slide 4

Slide 4 text

僕とXamarin ● 2016年11月 ○ Xamarin Dev Days Tokyoに参加! ○ Japan Xamarin User Group(JXUG)の存在を知る ○ 初めてXamarin(.Forms)に触る ● 2017年3月 ○ 日用品管理アプリをXamarin.Formsで開発し始める ○ 「Xamarin.Formsで家の日用品管理アプリを作り始めたお話」 ● 2017年7月 ○ 業務でXamarin.Macを使いMacアプリを開発開始 ● 2017年8月 ○ JXUGで初めてLTする ○ 「LottieXamarinで始めるXamarinアプリのアニメーション 」

Slide 5

Slide 5 text

Xamarinとは…? Shared C# App Logic Shared C# App Logic Xamarin Native Xamarin.Forms Mac/iOS C# UI/Logic Android C# UI/Logic UWP C# UI/Logic Shared XAML/C# UI ※ ※Visual Studio(Windows)で新規ソリューション作成時、同一ソリューション内に作成はされます。

Slide 6

Slide 6 text

突然ですが… 「Xamarinでアプリを開発したい!」 と思うときってどういう要件のアプリを作るときでしょう?

Slide 7

Slide 7 text

Xamarinアプリに求められそうな要件 ● iOSとAndroid両方に対応したシンプル(主観)なアプリをなるべ く少ない工数で作りたい ● C#好きなのでC#でモバイルアプリ作りたい ● 既存の.NETライブラリを使いつつWindowsアプリのMac版を作 りたい ● 普段ネイティブアプリ作ってて覗きに来た ● Tizenのアプリも作れんの!?ヤバくね!?

Slide 8

Slide 8 text

Xamarinアプリ開発に必要そうな知識 ● C#・Visual Studio ○ コードを書く、Visual Studio、エミュレータ、デバッグ ● UIコードの共有方法 ○ XAML、Deviceクラス、Effect、Custom Renderer ● ライブラリの使い方、作り方 ○ PCL、.NET Standard、Shared Project、DependencyService、Xamarin Plugin、 ネイティブライブラリのバインディング ● 設計 ○ ネイティブ?Xamarin Native?Xamarin.Forms? ○ ViewとModelの依存度を下げたい ○ テストしたい ○ バックエンドどうする? ● ネイティブ(≠Xamarin Native)のルール、表現 ● 「Xamarin」の「基礎」、動作原理、Mono※ ※http://www.buildinsider.net/mobile/insidexamarin/02

Slide 9

Slide 9 text

Xamarinアプリ開発に必要そうな知識 ● C#・Visual Studio ○ コードを書く、Visual Studio、エミュレータ、デバッグ ● UIコードの共有方法 ○ XAML、Deviceクラス、Effect、Custom Renderer ● ライブラリの使い方、作り方 ○ PCL、.NET Standard、Shared Project、DependencyService、Xamarin Plugin、 ネイティブライブラリのバインディング ● 設計 ○ ネイティブ?Xamarin Native?Xamarin.Forms? ○ ViewとModelの依存度を下げたい ○ テストしたい ○ バックエンドどうする? ● ネイティブ(≠Xamarin Native)のルール、表現 ● 「Xamarin」の「基礎」、動作原理、Mono

Slide 10

Slide 10 text

C#・Visual Studio

Slide 11

Slide 11 text

Xamarinアプリ開発に必要そうな知識 ● C#・Visual Studio ○ コードを書く、Visual Studio、エミュレータ、デバッグ ● UIコードの共有方法 ○ XAML、Deviceクラス、Effect、Custom Renderer ● ライブラリの使い方、作り方 ○ PCL、.NET Standard、Shared Project、DependencyService、Xamarin Plugin、 ネイティブライブラリのバインディング ● 設計 ○ ネイティブ?Xamarin Native?Xamarin.Forms? ○ ViewとModelの依存度を下げたい ○ テストしたい ○ バックエンドどうする? ● ネイティブ(≠Xamarin Native)のルール、表現 ● 「Xamarin」の「基礎」、動作原理、Mono

Slide 12

Slide 12 text

UIコードの共有方法 Shared C# App Logic Xamarin.Forms Shared XAML/C# UI ● Deviceクラス ○ プラットフォーム毎にプロパティを 切り替えたい ● Effect ○ ネイティブのコントロールを操作 したい ● Custom Renderer ○ Xamarin.Formsのコントロールを 拡張してプラットフォーム毎に作 り分けたい

Slide 13

Slide 13 text

● C#・Visual Studio ○ コードを書く、Visual Studio、エミュレータ、デバッグ ● UIコードの共有方法 ○ XAML、Deviceクラス、Effect、Custom Renderer ● ライブラリの使い方、作り方 ○ PCL、.NET Standard、Shared Project、DependencyService、Xamarin Plugin、 ネイティブライブラリのバインディング ● 設計 ○ ネイティブ?Xamarin Native?Xamarin.Forms? ○ ViewとModelの依存度を下げたい ○ テストしたい ○ バックエンドどうする? ● ネイティブ(≠Xamarin Native)のルール、表現 ● 「Xamarin」の動作原理、Mono Xamarinアプリ開発に必要そうな知識

Slide 14

Slide 14 text

ライブラリの使い方、作り方 Shared C# App Logic Shared C# App Logic Xamarin Native Xamarin.Forms Mac/iOS C# UI/Logic Android C# UI/Logic UWP C# UI/Logic Shared XAML/C# UI

Slide 15

Slide 15 text

PCL ライブラリの使い方、作り方 Shared Project https://www.slideshare.net/Xamarin/developing-and-designing-native-mobile-apps-in-xamarin-studio

Slide 16

Slide 16 text

ライブラリの使い方、作り方 https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/

Slide 17

Slide 17 text

ライブラリの使い方、作り方 Visual Studio 2017 15.4 Portable Class Library(PCL) Visual Studio 2017 15.5 .NET Standard

Slide 18

Slide 18 text

ライブラリの使い方、作り方 ● ネイティブライブラリのバイン ディング ○ ネイティブのAndroidやiOSのライブラリを使 いたい ○ Sharpen(for Android) ○ Objective Sharpie(for iOS) ● Embeddinator-4000 ○ 逆にC#で作ったライブラリをネイティブの AndroidやiOSから呼び出したい!?!? ● DependencyService ○ 共通ライブラリからプラットフォー ム毎の実装を呼びたい ● Plugins for Xamarin ○ プラットフォーム固有機能を共通 のインターフェースで呼ぶライブ ラリ、誰か既に作ってくれてるや んな?

Slide 19

Slide 19 text

● C#・Visual Studio ○ コードを書く、Visual Studio、エミュレータ、デバッグ ● UIコードの共有方法 ○ XAML、Deviceクラス、Effect、Custom Renderer ● ライブラリの使い方、作り方 ○ PCL、.NET Standard、Shared Project、DependencyService、Xamarin Plugin、 ネイティブライブラリのバインディング ● 設計 ○ ネイティブ?Xamarin Native?Xamarin.Forms? ○ ViewとModelの依存度を下げたい ○ テストしたい ○ バックエンドどうする? ● ネイティブ(≠Xamarin Native)のルール、表現 ● 「Xamarin」の動作原理、Mono Xamarinアプリ開発に必要そうな知識

Slide 20

Slide 20 text

設計 https://qiita.com/amay077/items/5e7cedb069a5a6ae0ae7

Slide 21

Slide 21 text

いっぱい

Slide 22

Slide 22 text

公式ページやネットの記事はもちろん調べるけど、 「Xamarin本どんな感じでしょう?」 ※ある程度体系化された知識やサンプルに期待

Slide 23

Slide 23 text

2017年 (+ 2016年末) に世に出た本は8冊 発売日 タイトル 2016/12/29 かずきのXamarin.Forms入門 2017/3/23 Xamarinではじめるスマホアプリ開発 2017/3/25 Xamarinエキスパート養成読本 2017/6/1 プログラミングXamarin 上 2017/7/27 基礎から学ぶXamarinプログラミング 2017/9/1 Essential Xamarin 2017/9/15 Xamarinネイティブによるモバイルアプリ開発 2017/10/5 Xamarinプログラミング入門

Slide 24

Slide 24 text

いっぱい

Slide 25

Slide 25 text

Xamarin本の歩き方 ● 著者 ● 発売日 ● 価格 ● Xamarin Native or Xamarin.Forms ● ひとことで表すと... ● 構成 ● カバー範囲(触れているかどうかくらいの基準) ● 素敵なところ、特徴的なところ

Slide 26

Slide 26 text

補足 ● 半年以上前に読んだ本もあります。 ● 読書時点の自分の知識量と本を読んで感じることには差が出 てしまう可能性があることをご了承ください。 ● 各本で紹介する「カバー範囲」、認識違いがある場合ご指摘を お願いします。

Slide 27

Slide 27 text

①かずきのXamarin.Forms入門 ● 大田一希さん ● 2016/12/29 ● 1,250円 ○ Slide Share版あり ● Xamarin.Forms ● 日本のXamarin.Forms解説 本の元祖!

Slide 28

Slide 28 text

構成        かずきのXamarin.Forms入門 ● はじめに ○ ターゲットプラットフォーム ○ Xamarin.Formsとは ● Hello World ● XAML ○ XAMLとC#コードの対比 ○ XAMLの応用 ● Xamarin.Formsのコントロール ○ Bindable Object ○ レイアウトコントロール ○ 一般的なコントロール ○ ページ ● スタイル ● ジェスチャー ● アニメーション ○ コントロールの移動や拡大、縮小、回転 ○ シンプルなアニメーション ○ イージング ● ビヘイビア ● トリガー・アクション ● メッセージセンター ● プラットフォーム固有機能 ○ Deviceクラス ○ DependencyService ○ Effect ○ CustomRenderer ○ Plugin ○ ネイティブのビュー ● 永続化 ○ ApplicationクラスのProperties ○ ローカルファイル ○ SQLite ● Prism ● まとめ

Slide 29

Slide 29 text

カバー範囲     かずきのXamarin.Forms入門 ● C#・Visual Studio ○ コードを書く、Visual Studio、エミュレータ、デバッグ ● UIコードの共有方法 ○ XAML、Deviceクラス、Effect、Custom Renderer ● 共有ライブラリの使い方、作り方 ○ PCL、.NET Standard、Shared Project、DependencyService、Xamarin Plugin、 ネイティブライブラリのバインディング ● 設計 ○ ネイティブ?Xamarin Native?Xamarin.Forms? ○ ViewとModelの依存度を下げたい ○ テストしたい ○ バックエンドどうする? ● ネイティブ(≠Xamarin Native)のルール、表現 ● 「Xamarin」の「基礎」、動作原理、Mono

Slide 30

Slide 30 text

特徴        かずきのXamarin.Forms入門 ● コントロール・レイアウト1つ1つの説明が丁寧で全てAndroid、 iOS、Windowsの画面比較付き ● 他の全部読んで戻って来ても「網羅している感」が強く、自分も アプリを作ってみよう!という気持ちになる ● XAMLへの説明も丁寧で、コントロールに入る前に基本的な部 分が一通り説明されていてコントロールの説明が頭に入ってき やすい ● データの永続化について複数説明している著書は意外と少な い中、3種類(Properties、ローカルファイル、SQLite)比較されて いる

Slide 31

Slide 31 text

②Xamarinではじめるスマホアプリ開発 ● 大西武さん ● 2017/3/23 ● 2,484円 ● 工学社 ● Xamarin.Forms ● (コードと比べた)XAMLのありが たみがとても伝わってくる本

Slide 32

Slide 32 text

構成        Xamarinではじめるスマホアプリ開発 ● Xamarinとは ○ Xamarinとは ○ プログラミング言語「C#」 ○ 開発環境のインストール ● シンプルな「CSharpDemo」アプリの開発 ● 「UIゲーム」アプリの開発 ● 「Hello」アプリの開発 ○ MasterDetailPageクラス ○ 「DependencyService」と「interface」 ● 「ZipCode」アプリの開発 ○ データ・バインディング ○ ToolbarItemsクラス ● 「CameraDifference」アプリの開発 ○ Xaml ○ Custom Renderer

Slide 33

Slide 33 text

カバー範囲     Xamarinではじめるスマホアプリ開発 ● C#・Visual Studio ○ コードを書く、Visual Studio、エミュレータ、デバッグ ● UIコードの共有方法 ○ XAML、Deviceクラス、Effect、Custom Renderer ● 共有ライブラリの使い方、作り方 ○ PCL、.NET Standard、Shared Project、DependencyService、Xamarin Plugin、 ネイティブライブラリのバインディング ● 設計 ○ ネイティブ?Xamarin Native?Xamarin.Forms? ○ ViewとModelの依存度を下げたい ○ テストしたい ○ バックエンドどうする? ● ネイティブ(≠Xamarin Native)のルール、表現 ● 「Xamarin」の「基礎」、動作原理、Mono

Slide 34

Slide 34 text

特徴        Xamarinではじめるスマホアプリ開発 ● 1章1つサンプルアプリを作りながら進めていくスタイル ● 最終章の一部を除きUIをXAMLでなくコードしていて、「XAMLは オブジェクトのインスタンスを組み立てるための言語※ 」という意 味を痛感できる ● 各章でC#の基本的な文法を説明している ● コードの意味を1行1行全部(!)説明している ※https://www.slideshare.net/okazuki0130/xaml-71503072

Slide 35

Slide 35 text

③Xamarinエキスパート養成読本 ● 鈴木堅太郎さん、高橋広樹 さん、佐々木浩司さん ● 2017/3/25 ● 2,354円 ● Software Design plus ● Kindle版あり ● Xamarin.Forms ● 他の言語からC#にやってく る人に!

Slide 36

Slide 36 text

構成          Xamarinエキスパート養成読本 ● Xamarinの概要 ● XamarinのためのC#入門 ○ はじめてのC# ○ クラスを理解しよう ○ 例外の対処方法を理解しよう ● Xamarinによるクロスプラットフォーム開 発 ○ クロスプラットフォーム開発の基礎を知る ○ XAMLを開発したアプリ開発 ○ Web APIを使用したアプリ開発 ● 先人が教えるクロスプラットフォー ム開発の肝 ○ ページ系コントロールを使いこなせ! ○ レイアウト系コントロールを使いこなせ ● 一歩先行くクロスプラットフォーム開 発のポイント ○ PCLによるコードの共通化 ○ PCLを作成しよう ○ PCLを利用しよう

Slide 37

Slide 37 text

カバー範囲       Xamarinエキスパート養成読本 ● C#・Visual Studio ○ コードを書く、Visual Studio、エミュレータ、デバッグ ● UIコードの共有方法 ○ XAML、Deviceクラス、Effect、Custom Renderer ● 共有ライブラリの使い方、作り方 ○ PCL、.NET Standard、Shared Project、DependencyService、Xamarin Plugin、 ネイティブライブラリのバインディング ● 設計 ○ ネイティブ?Xamarin Native?Xamarin.Forms? ○ ViewとModelの依存度を下げたい ○ テストしたい ○ バックエンドどうする? ● ネイティブ(≠Xamarin Native)のルール、表現 ● 「Xamarin」の「基礎」、動作原理、Mono

Slide 38

Slide 38 text

特徴           Xamarinエキスパート養成読本 ● 1 / 3程度を割いてC#の基本的な文法をSwift、Javaと比較しな がら丁寧に説明している ● レイアウト系コントロール、部品系コントロールを画像を交えて 網羅的に説明している ● DependencyServiceを利用したPCLライブラリの作成・利用手順 を丁寧に説明している ● 「エキスパート」の定義は読む人それぞれの心の中にある

Slide 39

Slide 39 text

④プログラミングXamarin 上 ● Charles Petzold さん(著)、 榎本温さん、藤原 雄介さ ん、猪股健太郎さん(監訳) ● 2017/6/1 ● 6,480円 ○ 英語版(無料)あり ● 日経BP ● Kindle版あり ● Xamarin.Forms ● 覚悟が要る重み(論理/物 理)

Slide 40

Slide 40 text

構成 プログラミングXamarin ● Xamarin.Formsの位置付け ● アプリケーションの構造 ● テキストをさらに調べる ● スタックのスクロール ● サイズの操作 ● ボタンクリック ● XAMLとコード ● コードとXAMLの調和 ● プラットフォーム固有のAPIの呼び出し ● XAMLマークアップ拡張 ● バインダブルインフラストラクチャ ● スタイル ● ビットマップ ● 絶対位置を使用するレイアウト ● インタラクティブなインターフェース ● データバインディング ● グリッドをマスターする ● MVVM ● コレクションビュー

Slide 41

Slide 41 text

カバー範囲 プログラミングXamarin ● C#・Visual Studio ○ コードを書く、Visual Studio、エミュレータ、デバッグ ● UIコードの共有方法 ○ XAML、Deviceクラス、Effect、Custom Renderer ● 共有ライブラリの使い方、作り方 ○ PCL、.NET Standard、Shared Project、DependencyService、Xamarin Plugin、 ネイティブライブラリのバインディング ● 設計 ○ ネイティブ?Xamarin Native?Xamarin.Forms? ○ ViewとModelの依存度を下げたい ○ テストしたい ○ バックエンドどうする? ● ネイティブ(≠Xamarin Native)のルール、表現 ● 「Xamarin」の「基礎」、動作原理、Mono

Slide 42

Slide 42 text

特徴 プログラミングXamarin ● ペゾルド本 ※1 ● 圧倒的な数かつ追って飽きないサンプルコードの宝庫 ● コントロールの紹介にとどまらず、使いこなし、動作原理まで(少な くとも自分を置き去りにしながら) 踏み込んでいく ● 榎本温さん(Xamarinの中の人)主催の邦訳読書会が18回にわ たって開催された ● 下巻も来年出るかもしれない ※1 https://ja.wikipedia.org/wiki/%E3%83%81%E3%83%A3%E3%83%BC%E3%83%AB%E3%82%BA%E3%83%BB%E3%83%9A%E3%82%BE%E3%83%AB%E3%83%89 ※2 https://xamarinformsbookreading.connpass.com/

Slide 43

Slide 43 text

⑤基礎から学ぶXamarinプログラミング ● 西村誠さん ● 2017/7/27 ● 3,510円 ● シーアンドアール研究所 ● Xamarin Native、 Xamarin.Forms ● 史上最高の好感度

Slide 44

Slide 44 text

構成         基礎から学ぶXamarinプログラミング ● Xamarinの概要 ○ Xamarinの概要 ○ 開発環境の構築 ○ Visual Studioの基礎 ○ C#の基礎 ● Xamarin.iOSの基礎 ○ Xcodeから実機でデバッグする ● Xamarin.Androidの基礎 ● Xamarin.Formsの基礎 ○ カスタマイズを行う ● XAML ○ XAMLの基礎 ○ データバインディング ○ Xamarin.Formsのコントロール ● iOSとAndroidで使い分ける ○ 画面を作り分ける ○ コードを作り分ける ● MVVMで作る ○ MVVMの概要と導入 ○ Prismの実装その1 ○ Prismの実装その2 ● 便利な機能とエラーへの対処法 ○ Visual Studioの上位エディションで利用 できる機能とプレビュー版の機能につ いて ○ エラーが出る場合の対処法

Slide 45

Slide 45 text

カバー範囲 基礎から学ぶXamarinプログラミング ● C#・Visual Studio ○ コードを書く、Visual Studio、エミュレータ、デバッグ ● UIコードの共有方法 ○ XAML、Deviceクラス、Effect、Custom Renderer ● 共有ライブラリの使い方、作り方 ○ PCL、.NET Standard、Shared Project、DependencyService、Xamarin Plugin、 ネイティブライブラリのバインディング ● 設計 ○ ネイティブ?Xamarin Native?Xamarin.Forms? ○ ViewとModelの依存度を下げたい ○ テストしたい ○ バックエンドどうする? ● ネイティブ(≠Xamarin Native)のルール、表現 ● 「Xamarin」の「基礎」、動作原理、Mono

Slide 46

Slide 46 text

特徴         基礎から学ぶXamarinプログラミング ● 前半Xamarin.AndroidとXamarin.iOSで同一機能を開発し、比較 している ● コンポーネントの子要素に持てる数をXamarin.Formsのソース コードを追いながら説明するなど「なぜ」がコードに基づいてい て好感度が高い ● Xamarin.Formsでプラットフォーム毎のプロパティ出し分けに始 まりDependencyService、Custom Rendererとネイティブのコント ロールをいじる話への持っていきかたが綺麗で頭に入ってきや すい ● よくあるエラーまでまとめてあって優しい

Slide 47

Slide 47 text

⑥Essential Xamarin ● 榎本温さん、平野翼さん、中 村充志さん、奥山 裕紳さ ん、末広尚義さん、中澤慧さ ん ● 2017/9/1 ● 2,624円 ● インプレスR&D ● Xamarin.Native、 Xamarin.Forms ● Kindle版あり ● 「本質」であり「基礎」であり、 圧倒的必読感

Slide 48

Slide 48 text

構成 Essential Xamarin ● Xamarin.Androidで始めるクロスプラット フォームモバイルアプリ開発 ● できるXamarin.Mac ● Prism for Xamarin.Forms入門の次の門 ● 画面遷移カスタマイズから取り組む Xamarin.iOS ● Xamarin Bluetooth Low Energyイン ストール編 ● 開発者のためのXamarin関連リポジ トリ集 ● Xamarin.Android SDK解説(rev. 2017.3) ● Monoでモノのインターネットを目指 す

Slide 49

Slide 49 text

カバー範囲 Essential Xamarin ● C#・Visual Studio ○ コードを書く、Visual Studio、エミュレータ、デバッグ ● UIコードの共有方法 ○ XAML、Deviceクラス、Effect、Custom Renderer ● 共有ライブラリの使い方、作り方 ○ PCL、.NET Standard、Shared Project、DependencyService、Xamarin Plugin、 ネイティブライブラリのバインディング ● 設計 ○ ネイティブ?Xamarin Native?Xamarin.Forms? ○ ViewとModelの依存度を下げたい ○ テストしたい ○ バックエンドどうする? ● ネイティブ(≠Xamarin Native)のルール、表現 ● 「Xamarin」の「基礎」、動作原理、Mono

Slide 50

Slide 50 text

特徴 Essential Xamarin ● 技術書典2※ が起源 ● 6人の著者が各自様々な領域で個性を爆発させていくスタイル ● これがネイティブ(≠Xamarin.Native)に見識がある人々から見 たXamarinなのかという興奮と絶望 ● 唯一のXamarin.Mac入門本(1章分) ● オープンソースのXamarinプロジェクトを俯瞰(≠理解) http://atsushieno.hatenablog.com/entry/2017/01/02/015102

Slide 51

Slide 51 text

⑦Xamarinネイティブによるモバイルアプリ開発 ● 青柳臣一さん ● 2017/9/15 ● 3,758円 ● 翔泳社 ● Xamarin.Native ● 圧倒的Xamarin Native比 率!!

Slide 52

Slide 52 text

構成 Xamarinネイティブによるモバイルアプリ開発 ● Xamarinについて学ぼう ● Visual StudioでAndroidキッチンタイマー を作ろう ○ Javaとの違いを知る ● Visual StudioでiOSキッチンタイマーを作 ろう ○ Objective-C/Swiftとの違いを知る ○ NSIntegerとCSFloatを知る ● 同一プロジェクトでAndroid/iOSアプリを 作ろう ● MVVMCrossについて学ぼう ○ MVVMとは ○ MVVMCross ● MVVMCrossでアプリを作ろう(準備編) ● MVVMCrossでアプリを作ろう(デー タバインディング編) ○ データバインディングをもっと知る ○ コレクションのデータバインディングを 学ぶ ● MVVMCrossを使いこなそう ○ 画面遷移を使いこなす ○ DIとIoCコンテナー ○ ビューモデルからビューへのインタラク ション ○ 色を扱う ○ ファイルを読み書きする ○ ブラウザーを開く ○ メッセージを表示する ○ その他のプラグイン

Slide 53

Slide 53 text

カバー範囲 Xamarinネイティブによるモバイルアプリ開発 ● C#・Visual Studio ○ コードを書く、Visual Studio、エミュレータ、デバッグ ● UIコードの共有方法 ○ XAML、Deviceクラス、Effect、Custom Renderer ● 共有ライブラリの使い方、作り方 ○ PCL、.NET Standard、Shared Project、DependencyService、Xamarin Plugin、 ネイティブライブラリのバインディング ● 設計 ○ ネイティブ?Xamarin Native?Xamarin.Forms? ○ ViewとModelの依存度を下げたい ○ テストしたい ○ バックエンドどうする? ● ネイティブ(≠Xamarin Native)のルール、表現 ● 「Xamarin」の「基礎」、動作原理、Mono

Slide 54

Slide 54 text

特徴 Xamarinネイティブによるモバイルアプリ開発 ● Xamarin.AndroidとXamarin.iOSで同一機能を開発し、比較してい る ● キッチンタイマー、音が鳴ると地味に嬉しい ● Xamarin Nativeについて触れている割合がページ数という観点 でもっとも高い本 ○ 次の本も多いけど厳密に数えてはないです... ● PCL/.NET StandardとShared Projectの違い、使い分けが詳細 でわかりやすいです ● Xamarin.FormsでなくXamarin.AndroidとXamarin.iOSでMVVMを 実現する一手段としてMVVMCrossを使用

Slide 55

Slide 55 text

⑧Xamarinプログラミング入門 ● 増田智明さん ● 2017/10/5 ● 3,456円 ● 日経BP社 ● Xamarin Native、 Xamarin.Forms ● カバー範囲No.1!!!

Slide 56

Slide 56 text

http://itpro.nikkeibp.co.jp/NSW/?rt=nocnt

Slide 57

Slide 57 text

構成 Xamarinプログラミング入門 ● クロスプラットフォーム開発をC#で ○ なぜC#なのか ○ .NET FrameworkとMonoの関係 ○ モバイルアプリの特徴 ● Xamarinとは ○ Xamarinでクロスプラットフォーム開発 ○ Xamarin.iOS ○ Xamarin.Android ○ Xamarin.Forms ● 開発環境を整える ● サンプルアプリの概要 ● 画面を作成する ● 共通ロジックを作成する ○ プラットフォーム間でコードを共有する ○ Todoロジックを作成する ○ Todoロジックのテストをする ● 個別ロジックを作成する ○ プラットフォーム固有のコードを記述する ○ iOSのビューに接続する ○ Androidのビューに接続する ○ Xamarin.FormsのPCLプロジェクト ○ Xamarin.Formsの個別設定 ● ローカルファイルにアクセスする ○ ローカルファイルを利用する ○ iOSのファイルアクセス ○ Androidのファイルアクセス ○ Xamarin.Formsのファイルアクセス ● App Serviceを使う ○ Azure App Serviceを利用する ○ Mobile Appを作成する ○ iOSからモバイルサービスを使う ○ Androidからモバイルサービスを使う ○ Xamarin.Formsからモバイルサービスを使う ● まとめ ○ アプリを拡張するために ○ アプリを公開するために ● 付録 ○ Android Thingsの利用 ○ Xamarin.FormsでUWPアプリを作る

Slide 58

Slide 58 text

カバー範囲 Xamarinプログラミング入門 ● C#・Visual Studio ○ コードを書く、Visual Studio、エミュレータ、デバッグ ● UIコードの共有方法 ○ XAML、Deviceクラス、Effect、Custom Renderer ● 共有ライブラリの使い方、作り方 ○ PCL、.NET Standard、Shared Project、DependencyService Xamarin Plugin、 ネイティブライブラリのバインディング ● 設計 ○ ネイティブ?Xamarin Native?Xamarin.Forms? ○ ViewとModelの依存度を下げたい ○ テストしたい ○ バックエンドどうする? ● ネイティブ(≠Xamarin Native)のルール、表現 ● 「Xamarin」の「基礎」、動作原理、Mono

Slide 59

Slide 59 text

特徴 Xamarinプログラミング入門 ● テーマ(ファイルアクセス、Azure接続、プロジェクト構成、開発環 境、画面など)毎にXamarin.Android、Xamarin.iOS、 Xamarin.Formsを比較するスタイル ● バックエンドへの言及、共有ライブラリのテストなど、より実戦投 入していく気持ちを高めてくれる ● 「そもそもモバイルに求められるものとは?」から始まり、自分 の開発環境以前にユーザがモバイルを触る環境、得て欲しい 体験を考えないと...と再認識させられる ● .NET Frameworkとmonoの関係を説明する中で.NET Standard にも言及

Slide 60

Slide 60 text

カバー範囲のまとめ ◎: 詳しいすごい!(主観) ◯: 勉強になる!(主観) △: 触れている - : スコープ外(語気弱め)

Slide 61

Slide 61 text

Xamarin本読書感想文 ● 2017年、たくさんのXamarin本が発売されたが、みんな違ってみ んないい!(本心) ● Xamarin本のテーマはXamarin.Formsの使いこなしからよりネイ ティブを意識したXamarin NativeとXamarin.Formsの使い分けへ と変化していった ● 自身でXamarin.Macを使って開発する際も、Xamarin.Formsを 使っているわけではないので一層ネイティブの作法、流儀※ 知ら ずして開発を進めていくのは厳しいし、それに触れられている 書籍の存在意義はとても大きく感じる ※Appleのガイドライン、アプリの配布方法、ライフサイクル等の意味で使っています ※Appleのガイドライン、アプリの配布方法、ライフサイクル等の意味で使っています

Slide 62

Slide 62 text

一層ありがたく感じる資料 『Xamarin.Forms使うべき?』 https://speakerdeck.com/yukaabuno/xamarin-dot-forms-shi-ubeki 『「クロスプラットフォーム × XAML」というパワーワードを真剣に考える』 https://www.slideshare.net/ssuser3c35a5/xaml-80887248?ref=http://hatena.c1.grapecity.com/entry/2017/10/11/echo2017

Slide 63

Slide 63 text

自ら本を書く ※https://atsushieno.github.io/xamaritans/tbf3.html ● Xamaritansのメンバーとして技術書典3で同 人誌を出展・販売しました。 ● BOOTHでオンライン販売中! ○ https://booth.pm/ja/search/xamarin ● Embeddinator-4000 の設計と実装 (@atsushieno) ● Xamarin.Mac アプリケーションの配布方法 (@toshi0607) ● Plugins for Xamarin & Unit Test (@nuits_jp) ● MonkeyFest2017 参加レポート (@ailen0ada) ● 世界を広げる Microsoft Cognitive Services (@Fumiya_Kume) ● IL2Cプロジェクト (@kekyo2)

Slide 64

Slide 64 text

Xamarin Advent Calendar 2017 ※https://qiita.com/advent-calendar/2017/xamarin-student

Slide 65

Slide 65 text

ご清聴ありがとうございました! Xamarin本の歩き方2017