$30 off During Our Annual Pro Sale. View Details »

Xamarin本の歩き方2017 / How to deal with xamarin books in 2017

Xamarin本の歩き方2017 / How to deal with xamarin books in 2017

Toshinori Sugita

December 02, 2017
Tweet

More Decks by Toshinori Sugita

Other Decks in Technology

Transcript

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

    View Slide

  2. 自己紹介
    ● 杉田 寿憲
    ○ 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#_=_

    View Slide

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

    View Slide

  4. 僕と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アプリのアニメーション 」

    View Slide

  5. 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)で新規ソリューション作成時、同一ソリューション内に作成はされます。

    View Slide

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

    View Slide

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

    View Slide

  8. 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

    View Slide

  9. 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

    View Slide

  10. C#・Visual Studio

    View Slide

  11. 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

    View Slide

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

    View Slide

  13. ● 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アプリ開発に必要そうな知識

    View Slide

  14. ライブラリの使い方、作り方
    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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  19. ● 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アプリ開発に必要そうな知識

    View Slide

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

    View Slide

  21. いっぱい

    View Slide

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

    View Slide

  23. 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プログラミング入門

    View Slide

  24. いっぱい

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  29. カバー範囲     かずきの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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  33. カバー範囲     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

    View Slide

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

    View Slide

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

    View Slide

  36. 構成          Xamarinエキスパート養成読本
    ● Xamarinの概要
    ● XamarinのためのC#入門
    ○ はじめてのC#
    ○ クラスを理解しよう
    ○ 例外の対処方法を理解しよう
    ● Xamarinによるクロスプラットフォーム開

    ○ クロスプラットフォーム開発の基礎を知る
    ○ XAMLを開発したアプリ開発
    ○ Web APIを使用したアプリ開発
    ● 先人が教えるクロスプラットフォー
    ム開発の肝
    ○ ページ系コントロールを使いこなせ!
    ○ レイアウト系コントロールを使いこなせ
    ● 一歩先行くクロスプラットフォーム開
    発のポイント
    ○ PCLによるコードの共通化
    ○ PCLを作成しよう
    ○ PCLを利用しよう

    View Slide

  37. カバー範囲       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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  41. カバー範囲 プログラミング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

    View Slide

  42. 特徴 プログラミング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/

    View Slide

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

    View Slide

  44. 構成         基礎から学ぶ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の上位エディションで利用
    できる機能とプレビュー版の機能につ
    いて
    ○ エラーが出る場合の対処法

    View Slide

  45. カバー範囲 基礎から学ぶ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

    View Slide

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

    View Slide

  47. ⑥Essential Xamarin
    ● 榎本温さん、平野翼さん、中
    村充志さん、奥山 裕紳さ
    ん、末広尚義さん、中澤慧さ

    ● 2017/9/1
    ● 2,624円
    ● インプレスR&D
    ● Xamarin.Native、
    Xamarin.Forms
    ● Kindle版あり
    ● 「本質」であり「基礎」であり、
    圧倒的必読感

    View Slide

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

    View Slide

  49. カバー範囲 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  53. カバー範囲 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

    View Slide

  54. 特徴 Xamarinネイティブによるモバイルアプリ開発
    ● Xamarin.AndroidとXamarin.iOSで同一機能を開発し、比較してい

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

    View Slide

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

    View Slide

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

    View Slide

  57. 構成 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アプリを作る

    View Slide

  58. カバー範囲 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  62. 一層ありがたく感じる資料
    『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

    View Slide

  63. 自ら本を書く
    ※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)

    View Slide

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

    View Slide

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

    View Slide