Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

C000f292a92b894afabbb352e8709667?s=128

Toshinori Sugita

December 02, 2017
Tweet

Transcript

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

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

  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アプリのアニメーション 」
  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)で新規ソリューション作成時、同一ソリューション内に作成はされます。
  6. 突然ですが… 「Xamarinでアプリを開発したい!」 と思うときってどういう要件のアプリを作るときでしょう?

  7. Xamarinアプリに求められそうな要件 • iOSとAndroid両方に対応したシンプル(主観)なアプリをなるべ く少ない工数で作りたい • C#好きなのでC#でモバイルアプリ作りたい • 既存の.NETライブラリを使いつつWindowsアプリのMac版を作 りたい •

    普段ネイティブアプリ作ってて覗きに来た • Tizenのアプリも作れんの!?ヤバくね!?
  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
  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
  10. C#・Visual Studio

  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
  12. UIコードの共有方法 Shared C# App Logic Xamarin.Forms Shared XAML/C# UI •

    Deviceクラス ◦ プラットフォーム毎にプロパティを 切り替えたい • Effect ◦ ネイティブのコントロールを操作 したい • Custom Renderer ◦ Xamarin.Formsのコントロールを 拡張してプラットフォーム毎に作 り分けたい
  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アプリ開発に必要そうな知識
  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
  15. PCL ライブラリの使い方、作り方 Shared Project https://www.slideshare.net/Xamarin/developing-and-designing-native-mobile-apps-in-xamarin-studio

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

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

    2017 15.5 .NET Standard
  18. ライブラリの使い方、作り方 • ネイティブライブラリのバイン ディング ◦ ネイティブのAndroidやiOSのライブラリを使 いたい ◦ Sharpen(for Android)

    ◦ Objective Sharpie(for iOS) • Embeddinator-4000 ◦ 逆にC#で作ったライブラリをネイティブの AndroidやiOSから呼び出したい!?!? • DependencyService ◦ 共通ライブラリからプラットフォー ム毎の実装を呼びたい • Plugins for Xamarin ◦ プラットフォーム固有機能を共通 のインターフェースで呼ぶライブ ラリ、誰か既に作ってくれてるや んな?
  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アプリ開発に必要そうな知識
  20. 設計 https://qiita.com/amay077/items/5e7cedb069a5a6ae0ae7

  21. いっぱい

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

  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プログラミング入門
  24. いっぱい

  25. Xamarin本の歩き方 • 著者 • 発売日 • 価格 • Xamarin Native

    or Xamarin.Forms • ひとことで表すと... • 構成 • カバー範囲(触れているかどうかくらいの基準) • 素敵なところ、特徴的なところ
  26. 補足 • 半年以上前に読んだ本もあります。 • 読書時点の自分の知識量と本を読んで感じることには差が出 てしまう可能性があることをご了承ください。 • 各本で紹介する「カバー範囲」、認識違いがある場合ご指摘を お願いします。

  27. ①かずきのXamarin.Forms入門 • 大田一希さん • 2016/12/29 • 1,250円 ◦ Slide Share版あり

    • Xamarin.Forms • 日本のXamarin.Forms解説 本の元祖!
  28. 構成        かずきのXamarin.Forms入門 • はじめに ◦ ターゲットプラットフォーム ◦ Xamarin.Formsとは • Hello World

    • XAML ◦ XAMLとC#コードの対比 ◦ XAMLの応用 • Xamarin.Formsのコントロール ◦ Bindable Object ◦ レイアウトコントロール ◦ 一般的なコントロール ◦ ページ • スタイル • ジェスチャー • アニメーション ◦ コントロールの移動や拡大、縮小、回転 ◦ シンプルなアニメーション ◦ イージング • ビヘイビア • トリガー・アクション • メッセージセンター • プラットフォーム固有機能 ◦ Deviceクラス ◦ DependencyService ◦ Effect ◦ CustomRenderer ◦ Plugin ◦ ネイティブのビュー • 永続化 ◦ ApplicationクラスのProperties ◦ ローカルファイル ◦ SQLite • Prism • まとめ
  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
  30. 特徴        かずきのXamarin.Forms入門 • コントロール・レイアウト1つ1つの説明が丁寧で全てAndroid、 iOS、Windowsの画面比較付き • 他の全部読んで戻って来ても「網羅している感」が強く、自分も アプリを作ってみよう!という気持ちになる • XAMLへの説明も丁寧で、コントロールに入る前に基本的な部 分が一通り説明されていてコントロールの説明が頭に入ってき

    やすい • データの永続化について複数説明している著書は意外と少な い中、3種類(Properties、ローカルファイル、SQLite)比較されて いる
  31. ②Xamarinではじめるスマホアプリ開発 • 大西武さん • 2017/3/23 • 2,484円 • 工学社 •

    Xamarin.Forms • (コードと比べた)XAMLのありが たみがとても伝わってくる本
  32. 構成        Xamarinではじめるスマホアプリ開発 • Xamarinとは ◦ Xamarinとは ◦ プログラミング言語「C#」 ◦ 開発環境のインストール •

    シンプルな「CSharpDemo」アプリの開発 • 「UIゲーム」アプリの開発 • 「Hello」アプリの開発 ◦ MasterDetailPageクラス ◦ 「DependencyService」と「interface」 • 「ZipCode」アプリの開発 ◦ データ・バインディング ◦ ToolbarItemsクラス • 「CameraDifference」アプリの開発 ◦ Xaml ◦ Custom Renderer
  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
  34. 特徴        Xamarinではじめるスマホアプリ開発 • 1章1つサンプルアプリを作りながら進めていくスタイル • 最終章の一部を除きUIをXAMLでなくコードしていて、「XAMLは オブジェクトのインスタンスを組み立てるための言語※ 」という意 味を痛感できる • 各章でC#の基本的な文法を説明している

    • コードの意味を1行1行全部(!)説明している ※https://www.slideshare.net/okazuki0130/xaml-71503072
  35. ③Xamarinエキスパート養成読本 • 鈴木堅太郎さん、高橋広樹 さん、佐々木浩司さん • 2017/3/25 • 2,354円 • Software

    Design plus • Kindle版あり • Xamarin.Forms • 他の言語からC#にやってく る人に!
  36. 構成          Xamarinエキスパート養成読本 • Xamarinの概要 • XamarinのためのC#入門 ◦ はじめてのC# ◦ クラスを理解しよう

    ◦ 例外の対処方法を理解しよう • Xamarinによるクロスプラットフォーム開 発 ◦ クロスプラットフォーム開発の基礎を知る ◦ XAMLを開発したアプリ開発 ◦ Web APIを使用したアプリ開発 • 先人が教えるクロスプラットフォー ム開発の肝 ◦ ページ系コントロールを使いこなせ! ◦ レイアウト系コントロールを使いこなせ • 一歩先行くクロスプラットフォーム開 発のポイント ◦ PCLによるコードの共通化 ◦ PCLを作成しよう ◦ PCLを利用しよう
  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
  38. 特徴           Xamarinエキスパート養成読本 • 1 / 3程度を割いてC#の基本的な文法をSwift、Javaと比較しな がら丁寧に説明している • レイアウト系コントロール、部品系コントロールを画像を交えて 網羅的に説明している •

    DependencyServiceを利用したPCLライブラリの作成・利用手順 を丁寧に説明している • 「エキスパート」の定義は読む人それぞれの心の中にある
  39. ④プログラミングXamarin 上 • Charles Petzold さん(著)、 榎本温さん、藤原 雄介さ ん、猪股健太郎さん(監訳) •

    2017/6/1 • 6,480円 ◦ 英語版(無料)あり • 日経BP • Kindle版あり • Xamarin.Forms • 覚悟が要る重み(論理/物 理)
  40. 構成 プログラミングXamarin • Xamarin.Formsの位置付け • アプリケーションの構造 • テキストをさらに調べる • スタックのスクロール

    • サイズの操作 • ボタンクリック • XAMLとコード • コードとXAMLの調和 • プラットフォーム固有のAPIの呼び出し • XAMLマークアップ拡張 • バインダブルインフラストラクチャ • スタイル • ビットマップ • 絶対位置を使用するレイアウト • インタラクティブなインターフェース • データバインディング • グリッドをマスターする • MVVM • コレクションビュー
  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
  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/
  43. ⑤基礎から学ぶXamarinプログラミング • 西村誠さん • 2017/7/27 • 3,510円 • シーアンドアール研究所 •

    Xamarin Native、 Xamarin.Forms • 史上最高の好感度
  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の上位エディションで利用 できる機能とプレビュー版の機能につ いて ◦ エラーが出る場合の対処法
  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
  46. 特徴         基礎から学ぶXamarinプログラミング • 前半Xamarin.AndroidとXamarin.iOSで同一機能を開発し、比較 している • コンポーネントの子要素に持てる数をXamarin.Formsのソース コードを追いながら説明するなど「なぜ」がコードに基づいてい て好感度が高い • Xamarin.Formsでプラットフォーム毎のプロパティ出し分けに始

    まりDependencyService、Custom Rendererとネイティブのコント ロールをいじる話への持っていきかたが綺麗で頭に入ってきや すい • よくあるエラーまでまとめてあって優しい
  47. ⑥Essential Xamarin • 榎本温さん、平野翼さん、中 村充志さん、奥山 裕紳さ ん、末広尚義さん、中澤慧さ ん • 2017/9/1

    • 2,624円 • インプレスR&D • Xamarin.Native、 Xamarin.Forms • Kindle版あり • 「本質」であり「基礎」であり、 圧倒的必読感
  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でモノのインターネットを目指 す
  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
  50. 特徴 Essential Xamarin • 技術書典2※ が起源 • 6人の著者が各自様々な領域で個性を爆発させていくスタイル • これがネイティブ(≠Xamarin.Native)に見識がある人々から見

    たXamarinなのかという興奮と絶望 • 唯一のXamarin.Mac入門本(1章分) • オープンソースのXamarinプロジェクトを俯瞰(≠理解) http://atsushieno.hatenablog.com/entry/2017/01/02/015102
  51. ⑦Xamarinネイティブによるモバイルアプリ開発 • 青柳臣一さん • 2017/9/15 • 3,758円 • 翔泳社 •

    Xamarin.Native • 圧倒的Xamarin Native比 率!!
  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コンテナー ◦ ビューモデルからビューへのインタラク ション ◦ 色を扱う ◦ ファイルを読み書きする ◦ ブラウザーを開く ◦ メッセージを表示する ◦ その他のプラグイン
  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
  54. 特徴 Xamarinネイティブによるモバイルアプリ開発 • Xamarin.AndroidとXamarin.iOSで同一機能を開発し、比較してい る • キッチンタイマー、音が鳴ると地味に嬉しい • Xamarin Nativeについて触れている割合がページ数という観点

    でもっとも高い本 ◦ 次の本も多いけど厳密に数えてはないです... • PCL/.NET StandardとShared Projectの違い、使い分けが詳細 でわかりやすいです • Xamarin.FormsでなくXamarin.AndroidとXamarin.iOSでMVVMを 実現する一手段としてMVVMCrossを使用
  55. ⑧Xamarinプログラミング入門 • 増田智明さん • 2017/10/5 • 3,456円 • 日経BP社 •

    Xamarin Native、 Xamarin.Forms • カバー範囲No.1!!!
  56. http://itpro.nikkeibp.co.jp/NSW/?rt=nocnt

  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アプリを作る
  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
  59. 特徴 Xamarinプログラミング入門 • テーマ(ファイルアクセス、Azure接続、プロジェクト構成、開発環 境、画面など)毎にXamarin.Android、Xamarin.iOS、 Xamarin.Formsを比較するスタイル • バックエンドへの言及、共有ライブラリのテストなど、より実戦投 入していく気持ちを高めてくれる •

    「そもそもモバイルに求められるものとは?」から始まり、自分 の開発環境以前にユーザがモバイルを触る環境、得て欲しい 体験を考えないと...と再認識させられる • .NET Frameworkとmonoの関係を説明する中で.NET Standard にも言及
  60. カバー範囲のまとめ ◎: 詳しいすごい!(主観) ◯: 勉強になる!(主観) △: 触れている - : スコープ外(語気弱め)

  61. Xamarin本読書感想文 • 2017年、たくさんのXamarin本が発売されたが、みんな違ってみ んないい!(本心) • Xamarin本のテーマはXamarin.Formsの使いこなしからよりネイ ティブを意識したXamarin NativeとXamarin.Formsの使い分けへ と変化していった •

    自身でXamarin.Macを使って開発する際も、Xamarin.Formsを 使っているわけではないので一層ネイティブの作法、流儀※ 知ら ずして開発を進めていくのは厳しいし、それに触れられている 書籍の存在意義はとても大きく感じる ※Appleのガイドライン、アプリの配布方法、ライフサイクル等の意味で使っています ※Appleのガイドライン、アプリの配布方法、ライフサイクル等の意味で使っています
  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

  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)
  64. Xamarin Advent Calendar 2017 ※https://qiita.com/advent-calendar/2017/xamarin-student

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