xamarin の概要と活用事例

28
Xamarinの概要と活用事例 2017/3/29(水) Xamarin 最前線 with iOS Consortium Japan Xamarin User Group 田淵義人@エクセルソフト Twitter: @ytabuchi facebook: ytabuchi.xlsoft

Upload: yoshito-tabuchi

Post on 11-Apr-2017

572 views

Category:

Mobile


0 download

TRANSCRIPT

Xamarinの概要と活用事例

2017/3/29(水)Xamarin 最前線 with iOS Consortium

Japan Xamarin User Group

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

Twitter: @ytabuchi

facebook: ytabuchi.xlsoft

営業(セールスエンジニア) 兼新規事業開発室室長

Xamarin コミュニティエバンジェリストMicrosoft MVP Visual Studio and Development Technologies

Xamarin MVP

連載・執筆Build Insider Xamarin Tips

.NET開発テクノロジ入門2016年版

コミュニティJapan Xamarin User Group 主宰

Twitter: @ytabuchi

facebook: ytabuchi.xlsoft

Blog: Xamarin 日本語情報

2

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

Xamarin.iOS とは何かを理解してもらう

Xamarin 面白そうだなと感じてもらう

3

ゴール

Xamarinとは

C# / .NET / Visual Studio

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

API 100% 移植

コード共通化

Xamarin

5

2つの開発手法

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

6

iOS の API を C# から呼び出せる薄いラッパー

同じ要素を利用可能Storyboard

ViewController

Info.plist/Entitlements.plist

Assets

Monoランタイムと C# のコードを AOTコンパイル

7

Xamarin.iOS

https://speakerdeck.com/amay077/xamarin-dot-android-teshi-merukurosuhuratutohuomumohairuahurikai-fa-number-droidkaigi-number-droidkaigi1

8

Storyboard/ViewControllernamespace XamarinNative.iOS

public partial class ViewController : UIViewController{

public ViewController(IntPtr handle): base(handle) {}

public override void ViewDidLoad(){

base.ViewDidLoad();

GetButton.TouchUpInside += (sender, e) =>{

GetButton.SetTitle("Tapped!", UIControlState.Normal);

};}

}

9

Info.plist

NuGet

10

Xamarin ネイティブのコード

11

Xamarin.Forms

ワンソース

ネイティブのUI/UX

XAML

MVVM

12

Model View ViewModel

Data Binding

13

MVVM

Open Sourcehttps://github.com/ProjectBlueMonkey/BlueMonkey

MVVM Pattern

Prism for Xamarin.FormsGuidance

Patterns & Practices

Testable & Maintainable

14

Project Blue Monkey

http://www.nuits.jp/entry/bluemonkey-architecture-overview

https://www.slideshare.net/AtsushiNakamura4/blue-monkey-architecture-overview

Xamarin.Forms のコード

15

必要な知識

プラットフォーム個別

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

16

C#

17

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

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

};

どんなアプリが作れるの?

フェンリル株式会社様

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

NHK 紅白

19

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

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

Xamarin.Forms 活用事例

Sakenomy

20

@muak_x さん

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

21

色しらべ

@yamamo さん

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

22

AzureVM Power Switch

@kikutaro_ さん

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

23

坂道46セレクション

24

エイチ・エス証券スマ株

https://speakerdeck.com/amay077/xamarin-dot-android-teshi-merukurosuhuratutohuomumohairuahurikai-fa-number-droidkaigi-number-droidkaigi1

まとめ

2つの開発手法

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

26

iOS の知識があるとより活用できる

共通化で品質向上

モダンな開発環境で変更に強い良いアプリを

Xamarin

ありがとうございますJXUG にも遊びに来てください

Japan Xamarin User Group

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

Twitter: @ytabuchi

facebook: ytabuchi.xlsoft

28