Xamarin 概要 2017/01/15

49
Xamarin概要 2017/1/15 OthloEvent #9 [学生限定Xamarinハンズオン] OthloTech x Microsoft Student Partners x JXUG学生支部 田淵義人@エクセルソフト Twitter: @ytabuchi facebook: ytabuchi.xlsoft 080-7015-3586

Transcript of Xamarin 概要 2017/01/15

Page 1: Xamarin 概要 2017/01/15

Xamarin概要

2017/1/15OthloEvent #9 [学生限定Xamarinハンズオン]OthloTech x Microsoft Student Partners x JXUG学生支部

田淵義人@エクセルソフト

Twitter: @ytabuchi

facebook: ytabuchi.xlsoft

080-7015-3586

Page 2: Xamarin 概要 2017/01/15

参加してくださっている皆さまぜひXamarinの楽しい部分を持ち帰ってください(^^)

スタッフの皆さま会場手配、懇親会手配、事前準備もろもろありがとうございます。

2

多謝

Page 3: Xamarin 概要 2017/01/15

営業(セールスエンジニア) 兼 新規事業開発室 室長Xamarin コミュニティエバンジェリスト2016年4月 Microsoft MVP Visual Studio and Development Technologies 受賞

連載・執筆Build Insider Xamarin Tipsマイナビニュース.NET開発テクノロジ入門2016年版

コミュニティJapan Xamarin User Group 主宰Twitter: @ytabuchifacebook: ytabuchi.xlsoftBlog: Xamarin 日本語情報

3

田淵義人@エクセルソフト

Page 4: Xamarin 概要 2017/01/15

アジェンダ

Xamarin とはXamarin ネイティブXamarin.Forms事例Xamarinをこれから始める方・学生さんへまとめ

4

Page 5: Xamarin 概要 2017/01/15

Xamarin とは

銀の弾丸ではない

Page 6: Xamarin 概要 2017/01/15

Miguel, Nat

Mono, Ximian

Novell, Attachmate

Xamarin, Microsoft

6

Xamarin (ザマリン・企業)

Page 7: Xamarin 概要 2017/01/15

C# / .NET / Visual Studio

フル “ネイティブ” アプリ

API 100% 移植

コード共通化

7

Xamarin

Page 8: Xamarin 概要 2017/01/15

C#

8

using System.Collections.Generic;using System.IO;using System.Linq;using System.Net.Http;using System.Xml.Serialization;

button.Click += async (sender, e) =>{

using (var client = new HttpClient()){

using (var reader = new StreamReader(await client.GetStreamAsync("xxx"))){var deserializer = new XmlSerializer(typeof(Rss));var latest = deserializer.Deserialize(reader) as Rss;var feed = latest.Channel.Items

.Where(x => x.Link.Contains("xamarin"))

.Select(x => x.Title).ToList();}

}};

Page 9: Xamarin 概要 2017/01/15

2つの開発手法

9

Shared C# App Logic

(PCL)

Shared XAML/C# UI Code

(Xamarin.Forms)

iOS

C# UI

Shared C# App Logic

(PCL)

Android

C# UI

Windows

C# UI

Xamarin.FormsXamarin Nativeロジックのみ共通化

UIはネイティブで個別に作りこむ

Page 10: Xamarin 概要 2017/01/15

必要な知識

10

プラットフォーム個別

Xamarin Native

iOS API Objective-C, Swift Xcode

Android API Java Android Studio

Windows API Visual StudioC#

API 言語 統合開発環境

iOS API Objective-C, Swift Xcode

Android API Java Android Studio

Windows API Visual StudioC#

Xamarin.Forms

iOS API

Android API

Windows API

Objective-C, Swift Xcode

Java Android Studio

Visual StudioC#Xamarin.Forms

UI toolkit

Page 11: Xamarin 概要 2017/01/15

アジェンダ

Xamarin とはXamarin ネイティブXamarin.Forms事例Xamarinをこれから始める方・学生さんへまとめ

12

Page 12: Xamarin 概要 2017/01/15

Xamarin ネイティブ

40

Page 13: Xamarin 概要 2017/01/15

Xamarin ネイティブ

41

Page 14: Xamarin 概要 2017/01/15

UIは個別

ネイティブAPIは個別

PCL or Sharedネットワーク

Json, XML

永続化

async/await

42

Xamarin ネイティブ

iOS

C# UI

Shared C# App Logic

(PCL)

Android

C# UI

Windows

C# UI

Xamarin Nativeロジックのみ共通化

UIはネイティブで個別に作りこむ

Page 15: Xamarin 概要 2017/01/15

PCL or Shared

#if __ANDROID__

#if __IOS__

43

Windows

AndroidiOS

Page 16: Xamarin 概要 2017/01/15

アジェンダ

Xamarin とはXamarin ネイティブXamarin.Forms事例Xamarinをこれから始める方・学生さんへまとめ

44

Page 17: Xamarin 概要 2017/01/15

抽象化UIライブラリ最大公約数

ワンソース・ネイティブUI/UX

XAML / MVVM

拡張可能

45

Xamarin.Forms

Shared C# App Logic

(PCL)

Shared XAML/C# UI Code

(Xamarin.Forms)

Xamarin.Forms

Page 18: Xamarin 概要 2017/01/15

Pages

46

Page 19: Xamarin 概要 2017/01/15

Layouts

47

Page 20: Xamarin 概要 2017/01/15

Controls

ActivityIndicator BoxView Button DatePicker Editor

Entry Image Label ListView Map

OpenGLView Picker ProgressBar SearchBar Slider

Stepper TableView TimePicker WebView

EntryCell ImageCell SwitchCell TextCell ViewCell

48

Page 21: Xamarin 概要 2017/01/15

Xamarin.Forms

ワンソース

ネイティブのUI/UX

49

Page 22: Xamarin 概要 2017/01/15

XAML

50

Page 23: Xamarin 概要 2017/01/15

XAMLの機能

51

機能 Xamarin.Forms でのサポート

XAML 2009 仕様 a

シェイプ (四角、楕円、パス など) BoxView

Resource, Style, Trigger a

Data binding a

Data template a

Control template Custom Renderer

Render Transform a

アニメーション コードのみ

カスタム XAML behavior a

カスタムマークアップ拡張 a

Value converter a

Page 24: Xamarin 概要 2017/01/15

XAMLの機能

Resource

Style

Trigger

Behavior

Value Converter

Data Template

Data Binding

52

Page 25: Xamarin 概要 2017/01/15

Model View ViewModel

Data Binding

MessagingCenter

53

MVVM

Page 26: Xamarin 概要 2017/01/15

ネイティブコントロール (UI)

Custom Renderer

Effects

54

Page 27: Xamarin 概要 2017/01/15

ネイティブAPI

Dependency Service

Plugin

55

Page 28: Xamarin 概要 2017/01/15

アジェンダ

Xamarin とはXamarin ネイティブXamarin.Forms事例Xamarinをこれから始める方・学生さんへまとめ

56

Page 29: Xamarin 概要 2017/01/15

フェンリル株式会社 様

http://biz.fenrir-inc.com/application_development/casestudy_app/nhk_kouhaku.html

NHK 紅白

57

Page 30: Xamarin 概要 2017/01/15

株式会社エムティーアイ 様

http://www.xlsoft.com/jp/products/xamarin/apps_sakenomy.html

Xamarin.Forms 活用事例

Sakenomy

58

Page 31: Xamarin 概要 2017/01/15

@muak_x さん

http://kamusoft.hatenablog.jp/entry/2016/11/08/220810

59

色しらべ

Page 32: Xamarin 概要 2017/01/15

@yamamo さん

https://docs.com/yamamoto-takahiro/9893/jxugc-17-xamarin

60

AzureVM Power Switch

Page 33: Xamarin 概要 2017/01/15

@kikutaro_ さん

http://kikutaro777.hatenablog.com/entry/2016/08/07/230423

61

坂道46セレクション

Page 34: Xamarin 概要 2017/01/15

https://www.xamarin.com/prebuilt

Prebuilt サンプル

62

Acquaint Sport Xamarin CRM My Shoppe

Page 35: Xamarin 概要 2017/01/15

資料一覧https://jxug.connpass.com/event/39470/

ビデオ録画https://www.youtube.com/playlist?list=PLxAao1dxjr71PXLAJwn0qdmDwz-K0bGpW

申請お待ちしております。http://bit.ly/MyXamarinApp

63

JXUGC #17 お前の Xamarin アプリを見せてみろ!

Page 36: Xamarin 概要 2017/01/15

アジェンダ

Xamarin とはXamarin ネイティブXamarin.Forms事例Xamarinをこれから始める方・学生さんへまとめ

64

Page 37: Xamarin 概要 2017/01/15

Microsoft Imagine とはhttps://www.microsoft.com/ja-jp/education/imagine.aspx

学生や教員のみなさまの ICT 技術の学習や教育、研究をサポートする年間制のメンバーシッププログラムです

マイクロソフトの開発ツールやサーバー製品をいつでもダウンロードできます

ダウンロードした製品は永続的に利用できます

65

Microsoft Imagine (旧DreamSpark)

Page 38: Xamarin 概要 2017/01/15

いくつかの言語を覚えようXamarin ならば、Swift/Java (Kotlin でも可) も覚えておいて損はない

チャレンジは怖くない

66

学生の特権

Page 39: Xamarin 概要 2017/01/15

Android SDK をちゃんとインストールWindows で Xamarin 開発をしたい方はインストールする前に読んでほしい -Xamarin 日本語情報

Xamarin for Visual Studio スタートアップ トラブルQA集 - nuits.jp blog

Xamarin バッドノウハウの解説 - Xamarin 日本語情報

Hyper-V の Visual Studio Emulator は使わない*個人的な見解です

丁寧に環境構築

67

Page 40: Xamarin 概要 2017/01/15

Xamarin逆引きTips - Build Insider

Xamarinに関する投稿 - Qiita

Xamarin Advent Calendar 2016 ← HOT

Insider.NET > .NET TIPS - @IT

JXUG : 関連ページ、ブログ一覧

Xamarin 日本語ドキュメントの紹介 : XLsoft エクセルソフト

68

日本語ドキュメントを読む

Page 41: Xamarin 概要 2017/01/15

Xamarin ハンズオン (初級)

Xamarin Dev Days Tokyo ハンズオン (中級)

Xamarin.Forms CustomRenderer ハンズオン (中級)

JXUG で主催しているハンズオンやもくもく会に参加http://jxug.connpass.com

エラーとワーニングは別物ですビルドエラーにならなければ、とにかく進めてみる

69

手を動かす

Page 42: Xamarin 概要 2017/01/15

Teratail

Twitter (#Xamarin #JXUG タグで呟く)

70

聞く

Page 43: Xamarin 概要 2017/01/15

読む・見る・聞く・調べるGuides - Xamarin (ドキュメント)

Recipes - Xamarin (逆引き辞典)

Xamarin Blog

Xamarin channel - Youtube (セッション動画)

Xamarin Forums

Stackoverflow

PreBuilt アプリBuild Apps Quickly using Prebuilt App Templates - Xamarin

71

英語ドキュメント

Page 44: Xamarin 概要 2017/01/15

Xamarin.iOS, Xamarin.Android は iOS API /Android API の薄いラッパーである

ネイティブの情報を探して Xamarin で使う

72

iOS/Android ネイティブの情報

Page 45: Xamarin 概要 2017/01/15

日本語版を作成中

原文は以下で公開中

https://developer.xamarin.com/guides/xamarin-forms/creating-mobile-apps-xamarin-forms/

73

Creating Mobile Apps with Xamarin.Forms Book

Page 46: Xamarin 概要 2017/01/15

アジェンダ

Xamarin 概要Xamarin ネイティブXamarin.Forms事例Xamarinをこれから始める方・学生さんへまとめ

74

Page 47: Xamarin 概要 2017/01/15

#Xamarinはいいぞ

Page 48: Xamarin 概要 2017/01/15

環境構築を超えれば

C# だけで iOS/Android アプリを開発できる

ネイティブ API はゆっくり覚えれば良い

Xamarinは怖くない

77

Page 49: Xamarin 概要 2017/01/15

ご清聴ありがとうございます

http://jxug.orghttp://jxug.connpass.com次回は1/28(土)です。是非遊びにきてください(^^)

田淵義人@エクセルソフト

Twitter: @ytabuchi

facebook: ytabuchi.xlsoft

080-7015-3586

78