Xamarin の特徴と開発手法概要

29
Xamarin の特徴と開発手法概要 2016/9/7 2016年9月定例会「クロスプラット フォーム開発最前線」 田淵義人@エクセルソフト Twitter: @ytabuchi facebook: ytabuchi.xlsoft

Transcript of Xamarin の特徴と開発手法概要

Xamarin の特徴と開発手法概要

2016/9/7 2016年9月定例会「クロスプラットフォーム開発最前線」

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

Twitter: @ytabuchi

facebook: ytabuchi.xlsoft

自己紹介

Xamarin コミュニティエバンジェリスト

2016年4月 Microsoft MVP Visual Studio and Development Technologies 受賞

Build Insider, マイナビニュース

.NET開発テクノロジ入門2016年版 (Xamarinの章)

Japan Xamarin User Group (ジェイザグ) 主催

Twitter: @ytabuchi

facebook: ytabuchi.xlsoft

Blog: Xamarin 日本語情報

2

ゴール

Xamarin の仕組み・開発手法を理解してもらう

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

事例

Sakenomy

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

5

NHK 紅白

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

6

アジェンダ

Xamarin 概要

Xamarin ネイティブでの開発

Xamarin.Forms での開発

まとめ

アジェンダ

Xamarin 概要

Xamarin ネイティブでの開発

Xamarin.Forms での開発

まとめ

Xamarin (ザマリン)

9

Xamarin

10

C# 6.0

11

using System.Collections.Generic;using System.IO;using System.Linq;using System.Net.Http;using Newtonsoft.Json;

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

using (var client = new HttpClient()){using (var reader = new StreamReader(await client.GetStreamAsync("xxx"))){

var json = await reader.ReadToEndAsync();var jsonModel = JsonConvert.DeserializeObject<List<Data>>(json).Where(x => x.Url.Contains("xamarin")).Select(x => x.Title).ToList();

}}

};

2つの開発手法

12

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

必要な知識

13

プラットフォーム個別

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 ネイティブ

15

iOS

C# UI

Shared C# App Logic

(PCL)

Android

C# UI

Windows

C# UI

Xamarin Nativeロジックのみ共通化

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

Layout

16

Activity + Layout

17

<LinearLayout ... ><TextView ... /><EditText ... /><Button ... /><TextView ... />

</LinearLayout>

[Activity(MainLauncher = true)]public class MainActivity : Activity{

protected override void OnCreate(Bundle bundle){base.OnCreate(bundle);SetContentView(Resource.Layout.Main);

var editText = FindViewById<EditText>(Resource.Id.digitsInput);

...}...

}

アジェンダ

Xamarin 概要

Xamarin ネイティブでの開発

Xamarin.Forms での開発

まとめ

Xamarin.Forms

最大公約数

19

Shared C# App Logic

(PCL)

Shared XAML/C# UI Code

(Xamarin.Forms)

Xamarin.Forms

Xamarin.Forms

20

アジェンダ

Xamarin 概要

Xamarin ネイティブでの開発

Xamarin.Forms での開発

まとめ

Xamarin

22

2つの開発手法

23

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

興味を持ってくれた方は参考資料・サンプル

24

デモで使用したプロジェクト

https://github.com/ytabuchi/XamarinNative/tree/master/ListViewSample

Xamarin.Android の ListView で Item を追加、削除したい(CustomAdapter)

Xamarin.Android の ListView で Item を追加、削除したい(ArrayAdapterとSimpleListItem1)

https://github.com/ytabuchi/xamarin-forms/tree/master/XF_ListViewSample

MVVM な Xamarin.Forms プロジェクトの Model を UnitTest してみる - その1

MVVM な Xamarin.Forms プロジェクトの Model を UnitTest してみる - その2

ハンズオンレポジトリ

https://github.com/ytabuchi/XamarinHOL

26

Prebuiltサンプル

https://www.xamarin.com/prebuilt

27

Acquaint Sport Xamarin CRM My Shoppe

【告知】次回 JXUG

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

28

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

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

Twitter: @ytabuchi

facebook: ytabuchi.xlsoft