Xamarin 概要 2017/01/15

Post on 22-Mar-2017

165 views 3 download

Transcript of 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

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

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

2

多謝

営業(セールスエンジニア) 兼 新規事業開発室 室長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

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

アジェンダ

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

4

Xamarin とは

銀の弾丸ではない

Miguel, Nat

Mono, Ximian

Novell, Attachmate

Xamarin, Microsoft

6

Xamarin (ザマリン・企業)

C# / .NET / Visual Studio

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

API 100% 移植

コード共通化

7

Xamarin

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();}

}};

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はネイティブで個別に作りこむ

必要な知識

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

アジェンダ

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

12

Xamarin ネイティブ

40

Xamarin ネイティブ

41

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はネイティブで個別に作りこむ

PCL or Shared

#if __ANDROID__

#if __IOS__

43

Windows

AndroidiOS

アジェンダ

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

44

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

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

XAML / MVVM

拡張可能

45

Xamarin.Forms

Shared C# App Logic

(PCL)

Shared XAML/C# UI Code

(Xamarin.Forms)

Xamarin.Forms

Pages

46

Layouts

47

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

Xamarin.Forms

ワンソース

ネイティブのUI/UX

49

XAML

50

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

XAMLの機能

Resource

Style

Trigger

Behavior

Value Converter

Data Template

Data Binding

52

Model View ViewModel

Data Binding

MessagingCenter

53

MVVM

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

Custom Renderer

Effects

54

ネイティブAPI

Dependency Service

Plugin

55

アジェンダ

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

56

フェンリル株式会社 様

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

NHK 紅白

57

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

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

Xamarin.Forms 活用事例

Sakenomy

58

@muak_x さん

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

59

色しらべ

@yamamo さん

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

60

AzureVM Power Switch

@kikutaro_ さん

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

61

坂道46セレクション

https://www.xamarin.com/prebuilt

Prebuilt サンプル

62

Acquaint Sport Xamarin CRM My Shoppe

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

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

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

63

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

アジェンダ

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

64

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

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

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

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

65

Microsoft Imagine (旧DreamSpark)

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

チャレンジは怖くない

66

学生の特権

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

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

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

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

丁寧に環境構築

67

Xamarin逆引きTips - Build Insider

Xamarinに関する投稿 - Qiita

Xamarin Advent Calendar 2016 ← HOT

Insider.NET > .NET TIPS - @IT

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

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

68

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

Xamarin ハンズオン (初級)

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

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

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

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

69

手を動かす

Teratail

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

70

聞く

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

Recipes - Xamarin (逆引き辞典)

Xamarin Blog

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

Xamarin Forums

Stackoverflow

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

71

英語ドキュメント

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

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

72

iOS/Android ネイティブの情報

日本語版を作成中

原文は以下で公開中

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

73

Creating Mobile Apps with Xamarin.Forms Book

アジェンダ

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

74

#Xamarinはいいぞ

環境構築を超えれば

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

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

Xamarinは怖くない

77

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

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

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

Twitter: @ytabuchi

facebook: ytabuchi.xlsoft

080-7015-3586

78