Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Xamarin本の歩き方2017 / How to deal with xamarin books in 2017
Toshinori Sugita
December 02, 2017
Technology
1
1.4k
Xamarin本の歩き方2017 / How to deal with xamarin books in 2017
https://speakerdeck.com/toshi0607/how-to-deal-with-xamarin-books
のアップデート版です。
Toshinori Sugita
December 02, 2017
Tweet
Share
More Decks by Toshinori Sugita
See All by Toshinori Sugita
toshi0607
0
1.7k
toshi0607
0
2.6k
toshi0607
4
7.7k
toshi0607
3
3.2k
toshi0607
1
3.9k
toshi0607
8
10k
toshi0607
1
4k
toshi0607
5
15k
toshi0607
7
6.2k
Other Decks in Technology
See All in Technology
kanaugust
PRO
0
140
y0hgi
1
370
shotakashihara
1
1.3k
humank
0
210
asaju7142501
0
250
vkbaba
0
110
kentaro
1
340
ray_30cm_ns
0
280
pinboro
1
1.4k
caori_t
0
150
torisoup
0
270
110y
3
690
Featured
See All Featured
qrush
285
18k
tanoku
258
24k
marktimemedia
6
330
tanoku
86
8.5k
bkeepers
52
4.1k
sstephenson
144
12k
rocio
155
11k
revolveconf
200
9.6k
holman
288
130k
lynnandtonic
270
16k
tmm1
61
8.3k
shpigford
368
42k
Transcript
Xamarin本の歩き方2017 2017/12/9 JXUG福岡 Xamarin初心者向けハンズオン
自己紹介 • 杉田 寿憲 ◦ 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#_=_
今日のお話 • Xamarinの技術書(日本語)それぞれの特徴とカバーする領域 • カバーする技術領域を把握するための基本的なXamarin関連 知識のおさらい • Xamarinともっと仲良くなるために学ばないといけないと思った こと(読書感想文)
僕と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アプリのアニメーション 」
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)で新規ソリューション作成時、同一ソリューション内に作成はされます。
突然ですが… 「Xamarinでアプリを開発したい!」 と思うときってどういう要件のアプリを作るときでしょう?
Xamarinアプリに求められそうな要件 • iOSとAndroid両方に対応したシンプル(主観)なアプリをなるべ く少ない工数で作りたい • C#好きなのでC#でモバイルアプリ作りたい • 既存の.NETライブラリを使いつつWindowsアプリのMac版を作 りたい •
普段ネイティブアプリ作ってて覗きに来た • Tizenのアプリも作れんの!?ヤバくね!?
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
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
C#・Visual Studio
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
UIコードの共有方法 Shared C# App Logic Xamarin.Forms Shared XAML/C# UI •
Deviceクラス ◦ プラットフォーム毎にプロパティを 切り替えたい • Effect ◦ ネイティブのコントロールを操作 したい • Custom Renderer ◦ 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 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
PCL ライブラリの使い方、作り方 Shared Project https://www.slideshare.net/Xamarin/developing-and-designing-native-mobile-apps-in-xamarin-studio
ライブラリの使い方、作り方 https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/
ライブラリの使い方、作り方 Visual Studio 2017 15.4 Portable Class Library(PCL) Visual Studio
2017 15.5 .NET Standard
ライブラリの使い方、作り方 • ネイティブライブラリのバイン ディング ◦ ネイティブのAndroidやiOSのライブラリを使 いたい ◦ Sharpen(for Android)
◦ Objective Sharpie(for iOS) • Embeddinator-4000 ◦ 逆にC#で作ったライブラリをネイティブの AndroidやiOSから呼び出したい!?!? • DependencyService ◦ 共通ライブラリからプラットフォー ム毎の実装を呼びたい • Plugins for 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 Xamarinアプリ開発に必要そうな知識
設計 https://qiita.com/amay077/items/5e7cedb069a5a6ae0ae7
いっぱい
公式ページやネットの記事はもちろん調べるけど、 「Xamarin本どんな感じでしょう?」 ※ある程度体系化された知識やサンプルに期待
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プログラミング入門
いっぱい
Xamarin本の歩き方 • 著者 • 発売日 • 価格 • Xamarin Native
or Xamarin.Forms • ひとことで表すと... • 構成 • カバー範囲(触れているかどうかくらいの基準) • 素敵なところ、特徴的なところ
補足 • 半年以上前に読んだ本もあります。 • 読書時点の自分の知識量と本を読んで感じることには差が出 てしまう可能性があることをご了承ください。 • 各本で紹介する「カバー範囲」、認識違いがある場合ご指摘を お願いします。
①かずきのXamarin.Forms入門 • 大田一希さん • 2016/12/29 • 1,250円 ◦ Slide Share版あり
• Xamarin.Forms • 日本のXamarin.Forms解説 本の元祖!
構成 かずきのXamarin.Forms入門 • はじめに ◦ ターゲットプラットフォーム ◦ Xamarin.Formsとは • Hello World
• XAML ◦ XAMLとC#コードの対比 ◦ XAMLの応用 • Xamarin.Formsのコントロール ◦ Bindable Object ◦ レイアウトコントロール ◦ 一般的なコントロール ◦ ページ • スタイル • ジェスチャー • アニメーション ◦ コントロールの移動や拡大、縮小、回転 ◦ シンプルなアニメーション ◦ イージング • ビヘイビア • トリガー・アクション • メッセージセンター • プラットフォーム固有機能 ◦ Deviceクラス ◦ DependencyService ◦ Effect ◦ CustomRenderer ◦ Plugin ◦ ネイティブのビュー • 永続化 ◦ ApplicationクラスのProperties ◦ ローカルファイル ◦ SQLite • Prism • まとめ
カバー範囲 かずきの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
特徴 かずきのXamarin.Forms入門 • コントロール・レイアウト1つ1つの説明が丁寧で全てAndroid、 iOS、Windowsの画面比較付き • 他の全部読んで戻って来ても「網羅している感」が強く、自分も アプリを作ってみよう!という気持ちになる • XAMLへの説明も丁寧で、コントロールに入る前に基本的な部 分が一通り説明されていてコントロールの説明が頭に入ってき
やすい • データの永続化について複数説明している著書は意外と少な い中、3種類(Properties、ローカルファイル、SQLite)比較されて いる
②Xamarinではじめるスマホアプリ開発 • 大西武さん • 2017/3/23 • 2,484円 • 工学社 •
Xamarin.Forms • (コードと比べた)XAMLのありが たみがとても伝わってくる本
構成 Xamarinではじめるスマホアプリ開発 • Xamarinとは ◦ Xamarinとは ◦ プログラミング言語「C#」 ◦ 開発環境のインストール •
シンプルな「CSharpDemo」アプリの開発 • 「UIゲーム」アプリの開発 • 「Hello」アプリの開発 ◦ MasterDetailPageクラス ◦ 「DependencyService」と「interface」 • 「ZipCode」アプリの開発 ◦ データ・バインディング ◦ ToolbarItemsクラス • 「CameraDifference」アプリの開発 ◦ Xaml ◦ Custom Renderer
カバー範囲 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
特徴 Xamarinではじめるスマホアプリ開発 • 1章1つサンプルアプリを作りながら進めていくスタイル • 最終章の一部を除きUIをXAMLでなくコードしていて、「XAMLは オブジェクトのインスタンスを組み立てるための言語※ 」という意 味を痛感できる • 各章でC#の基本的な文法を説明している
• コードの意味を1行1行全部(!)説明している ※https://www.slideshare.net/okazuki0130/xaml-71503072
③Xamarinエキスパート養成読本 • 鈴木堅太郎さん、高橋広樹 さん、佐々木浩司さん • 2017/3/25 • 2,354円 • Software
Design plus • Kindle版あり • Xamarin.Forms • 他の言語からC#にやってく る人に!
構成 Xamarinエキスパート養成読本 • Xamarinの概要 • XamarinのためのC#入門 ◦ はじめてのC# ◦ クラスを理解しよう
◦ 例外の対処方法を理解しよう • Xamarinによるクロスプラットフォーム開 発 ◦ クロスプラットフォーム開発の基礎を知る ◦ XAMLを開発したアプリ開発 ◦ Web APIを使用したアプリ開発 • 先人が教えるクロスプラットフォー ム開発の肝 ◦ ページ系コントロールを使いこなせ! ◦ レイアウト系コントロールを使いこなせ • 一歩先行くクロスプラットフォーム開 発のポイント ◦ PCLによるコードの共通化 ◦ PCLを作成しよう ◦ PCLを利用しよう
カバー範囲 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
特徴 Xamarinエキスパート養成読本 • 1 / 3程度を割いてC#の基本的な文法をSwift、Javaと比較しな がら丁寧に説明している • レイアウト系コントロール、部品系コントロールを画像を交えて 網羅的に説明している •
DependencyServiceを利用したPCLライブラリの作成・利用手順 を丁寧に説明している • 「エキスパート」の定義は読む人それぞれの心の中にある
④プログラミングXamarin 上 • Charles Petzold さん(著)、 榎本温さん、藤原 雄介さ ん、猪股健太郎さん(監訳) •
2017/6/1 • 6,480円 ◦ 英語版(無料)あり • 日経BP • Kindle版あり • Xamarin.Forms • 覚悟が要る重み(論理/物 理)
構成 プログラミングXamarin • Xamarin.Formsの位置付け • アプリケーションの構造 • テキストをさらに調べる • スタックのスクロール
• サイズの操作 • ボタンクリック • XAMLとコード • コードとXAMLの調和 • プラットフォーム固有のAPIの呼び出し • XAMLマークアップ拡張 • バインダブルインフラストラクチャ • スタイル • ビットマップ • 絶対位置を使用するレイアウト • インタラクティブなインターフェース • データバインディング • グリッドをマスターする • MVVM • コレクションビュー
カバー範囲 プログラミング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
特徴 プログラミング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/
⑤基礎から学ぶXamarinプログラミング • 西村誠さん • 2017/7/27 • 3,510円 • シーアンドアール研究所 •
Xamarin Native、 Xamarin.Forms • 史上最高の好感度
構成 基礎から学ぶ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の上位エディションで利用 できる機能とプレビュー版の機能につ いて ◦ エラーが出る場合の対処法
カバー範囲 基礎から学ぶ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
特徴 基礎から学ぶXamarinプログラミング • 前半Xamarin.AndroidとXamarin.iOSで同一機能を開発し、比較 している • コンポーネントの子要素に持てる数をXamarin.Formsのソース コードを追いながら説明するなど「なぜ」がコードに基づいてい て好感度が高い • Xamarin.Formsでプラットフォーム毎のプロパティ出し分けに始
まりDependencyService、Custom Rendererとネイティブのコント ロールをいじる話への持っていきかたが綺麗で頭に入ってきや すい • よくあるエラーまでまとめてあって優しい
⑥Essential Xamarin • 榎本温さん、平野翼さん、中 村充志さん、奥山 裕紳さ ん、末広尚義さん、中澤慧さ ん • 2017/9/1
• 2,624円 • インプレスR&D • Xamarin.Native、 Xamarin.Forms • Kindle版あり • 「本質」であり「基礎」であり、 圧倒的必読感
構成 Essential Xamarin • Xamarin.Androidで始めるクロスプラット フォームモバイルアプリ開発 • できるXamarin.Mac • Prism
for Xamarin.Forms入門の次の門 • 画面遷移カスタマイズから取り組む Xamarin.iOS • Xamarin Bluetooth Low Energyイン ストール編 • 開発者のためのXamarin関連リポジ トリ集 • Xamarin.Android SDK解説(rev. 2017.3) • Monoでモノのインターネットを目指 す
カバー範囲 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
特徴 Essential Xamarin • 技術書典2※ が起源 • 6人の著者が各自様々な領域で個性を爆発させていくスタイル • これがネイティブ(≠Xamarin.Native)に見識がある人々から見
たXamarinなのかという興奮と絶望 • 唯一のXamarin.Mac入門本(1章分) • オープンソースのXamarinプロジェクトを俯瞰(≠理解) http://atsushieno.hatenablog.com/entry/2017/01/02/015102
⑦Xamarinネイティブによるモバイルアプリ開発 • 青柳臣一さん • 2017/9/15 • 3,758円 • 翔泳社 •
Xamarin.Native • 圧倒的Xamarin Native比 率!!
構成 Xamarinネイティブによるモバイルアプリ開発 • Xamarinについて学ぼう • Visual StudioでAndroidキッチンタイマー を作ろう ◦ Javaとの違いを知る
• Visual StudioでiOSキッチンタイマーを作 ろう ◦ Objective-C/Swiftとの違いを知る ◦ NSIntegerとCSFloatを知る • 同一プロジェクトでAndroid/iOSアプリを 作ろう • MVVMCrossについて学ぼう ◦ MVVMとは ◦ MVVMCross • MVVMCrossでアプリを作ろう(準備編) • MVVMCrossでアプリを作ろう(デー タバインディング編) ◦ データバインディングをもっと知る ◦ コレクションのデータバインディングを 学ぶ • MVVMCrossを使いこなそう ◦ 画面遷移を使いこなす ◦ DIとIoCコンテナー ◦ ビューモデルからビューへのインタラク ション ◦ 色を扱う ◦ ファイルを読み書きする ◦ ブラウザーを開く ◦ メッセージを表示する ◦ その他のプラグイン
カバー範囲 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
特徴 Xamarinネイティブによるモバイルアプリ開発 • Xamarin.AndroidとXamarin.iOSで同一機能を開発し、比較してい る • キッチンタイマー、音が鳴ると地味に嬉しい • Xamarin Nativeについて触れている割合がページ数という観点
でもっとも高い本 ◦ 次の本も多いけど厳密に数えてはないです... • PCL/.NET StandardとShared Projectの違い、使い分けが詳細 でわかりやすいです • Xamarin.FormsでなくXamarin.AndroidとXamarin.iOSでMVVMを 実現する一手段としてMVVMCrossを使用
⑧Xamarinプログラミング入門 • 増田智明さん • 2017/10/5 • 3,456円 • 日経BP社 •
Xamarin Native、 Xamarin.Forms • カバー範囲No.1!!!
http://itpro.nikkeibp.co.jp/NSW/?rt=nocnt
構成 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アプリを作る
カバー範囲 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
特徴 Xamarinプログラミング入門 • テーマ(ファイルアクセス、Azure接続、プロジェクト構成、開発環 境、画面など)毎にXamarin.Android、Xamarin.iOS、 Xamarin.Formsを比較するスタイル • バックエンドへの言及、共有ライブラリのテストなど、より実戦投 入していく気持ちを高めてくれる •
「そもそもモバイルに求められるものとは?」から始まり、自分 の開発環境以前にユーザがモバイルを触る環境、得て欲しい 体験を考えないと...と再認識させられる • .NET Frameworkとmonoの関係を説明する中で.NET Standard にも言及
カバー範囲のまとめ ◎: 詳しいすごい!(主観) ◯: 勉強になる!(主観) △: 触れている - : スコープ外(語気弱め)
Xamarin本読書感想文 • 2017年、たくさんのXamarin本が発売されたが、みんな違ってみ んないい!(本心) • Xamarin本のテーマはXamarin.Formsの使いこなしからよりネイ ティブを意識したXamarin NativeとXamarin.Formsの使い分けへ と変化していった •
自身でXamarin.Macを使って開発する際も、Xamarin.Formsを 使っているわけではないので一層ネイティブの作法、流儀※ 知ら ずして開発を進めていくのは厳しいし、それに触れられている 書籍の存在意義はとても大きく感じる ※Appleのガイドライン、アプリの配布方法、ライフサイクル等の意味で使っています ※Appleのガイドライン、アプリの配布方法、ライフサイクル等の意味で使っています
一層ありがたく感じる資料 『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
自ら本を書く ※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)
Xamarin Advent Calendar 2017 ※https://qiita.com/advent-calendar/2017/xamarin-student
ご清聴ありがとうございました! Xamarin本の歩き方2017