Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Xamarin本の歩き方2017 / How to deal with xamarin boo...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Toshinori Sugita
December 02, 2017
Technology
3.6k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
More Decks by Toshinori Sugita
See All by Toshinori Sugita
GKEを中心としたマルチプロダクト・マルチリージョン対応アプリケーションプラットフォームの継続的改善 / continuous improvement of GKE based application platform
toshi0607
1
180
組織を巻き込む大規模プラットフォーム移行戦略 〜50+サービスのマルチリージョン・マルチプロダクト化で学んだステークホルダー協働の実践〜 / Platform migration strategy engaging all stakeholders
toshi0607
2
7.4k
文系学部卒ソフトウェアエンジニアが Georgia Techコンピューターサイエンス修士課程で直面したもの / What a Liberal Arts Graduate Software Engineer Faced in Georgia Tech's Computer Science Master's Program
toshi0607
4
2k
50以上のマイクロサービスを支えるアプリケーションプラットフォームの設計・構築の後悔と進化 #CNDW2024 / regrets and evolution of application platform
toshi0607
5
9.5k
OPA and cloud resources
toshi0607
1
14k
KompalWeather: Serverless Sauna Service with Cloud Run
toshi0607
1
13k
Knativeで作るDIY FaaS / serverless days fukuoka 2019 knative workshop
toshi0607
1
5.4k
Knativeで作るDIY FaaS / serverless days tokyo 2019 knative workshop
toshi0607
5
11k
Knativeへの誘い / Go Go Knative!
toshi0607
4
5.9k
Other Decks in Technology
See All in Technology
いまさら聞けない「仕様駆動開発入門」 〜AI活用時代の開発プロセスを考える〜
findy_eventslides
2
160
サイバーエージェントにおけるAI推進戦略と変革への取り組み
shotatsuge
0
240
AIネイティブな開発のサプライチェーンリスク対策 〜激動の開発現場でリスクに立ち向かう〜【ZennFes】
cscengineer
PRO
2
140
インシデントレスポンス演習 I / Incident Response Exercise I
ks91
PRO
0
100
Lightning近況報告
kozy4324
0
210
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
170
AIはどのように 組織のアジリティを変えるのか?
junki
4
1.1k
GitHub Copilot app最速の発信の裏側
tomokusaba
1
200
AWS Security Agent といっしょに脅威モデリングをやってみよう
amarelo_n24
1
190
【Cyber-sec+】経営層を"動かす"ための考え方
hssh2_bin
0
200
SONiCのLinuxベースを活かしたZabbix監視
sonic
0
240
あなたの知らないPDFのアクセシビリティ
lycorptech_jp
PRO
0
220
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
200
Deep Space Network (abreviated)
tonyrice
0
210
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Paper Plane
katiecoart
PRO
1
51k
KATA
mclloyd
PRO
35
15k
AI: The stuff that nobody shows you
jnunemaker
PRO
8
720
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