xamarin 基礎講座 2016年7月版

Post on 16-Apr-2017

1.892 Views

Category:

Mobile

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Xamarin基礎講座Xamarinハンズオン

Japan Xamarin User Group田淵義人080-7015-3586Twitter: @ytabuchifacebook: xlsoft.ytabuchiBlog: Xamarin日本語情報

田淵義人@エクセルソフトXamarin コミュニティエバンジェリスト

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

連載・執筆Build Insider, マイナビニュース

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

コミュニティTwitter: @ytabuchi

facebook: ytabuchi.xlsoft

Blog: Xamarin 日本語情報

2

自己紹介

第1部 30分+90分Xamarin 概要

Android, iOS 概要

Xamarin ネイティブ

第2部 30分+90分Xamarin.Forms

まとめ

LT大会&キャッチアップ 30分

3

本日のスケジュール

http://github.com/ytabuchi/XamarinHOL

4

資料

アジェンダ

Xamarin 概要Android, iOS 概要Xamarin ネイティブXamarin.Formsまとめ

5

Miguel, Nat

Mono, Ximian

Novell, Attachmate

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

Visual Studio Community の利用条件:https://www.microsoft.com/ja-jp/dev/products/community.aspx

11

必要なライセンス

http://nuits.hatenadiary.jp/entry/2016/05/06/174037

アジェンダ

Xamarin 概要Android, iOS 概要Xamarin ネイティブXamarin.Formsまとめ

12

Xamarin.Android

13

構成

14

ソースファイル

(C#)

UI 定義

(axml)

メタデータ

(Resources)

Activity

15

Activity 1

UI

Code

Activity 2

UI

Code

Activity 3

UI

Code

Data, files,

images など

アプリ

Layout

16

Layout

17

Activity + Layout

18

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

</LinearLayout>

[Activity]public class PiActivity : Activity{......

}

Resource Id

19

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

protected override void OnCreate(Bundle bundle){

base.OnCreate(bundle);SetContentView(Resource.Layout.Main);

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

}...

}

Intent

20

Intent

21

public class MainActivity : Activity{...void OnClick(object sender, EventArgs e){

var intent = new Intent(this, typeof(Activity2));

base.StartActivity(intent);}

}

Intent

22

Navigation

23

Xamarin.iOS

24

構成

25

ソースファイル

(C#)

UI 定義

(Storyboard + XiB)

メタデータ

(property lists)

Frame

26

Bounds

27

View (コードで)

28

29

Storyboard

Constraints (制約)

30

Multi Screen

31

Segue

32

Segue

33

アジェンダ

Xamarin 概要Android, iOS 概要Xamarin ネイティブXamarin.Formsまとめ

34

Xamarin ネイティブ

35

UIは個別

ネイティブAPIは個別

PCL vs Sharedネットワーク

Json, XML

永続化

async/await

36

Xamarin ネイティブ

iOS

C# UI

Shared C# App Logic

(PCL)

Android

C# UI

Windows

C# UI

Xamarin Nativeロジックのみ共通化

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

アジェンダ

Xamarin 概要Android, iOS 概要Xamarin ネイティブXamarin.Formsまとめ

37

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

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

XAML / MVVM

拡張可能

38

Xamarin.Forms

Shared C# App Logic

(PCL)

Shared XAML/C# UI Code

(Xamarin.Forms)

Xamarin.Forms

Pages

39

New!

Layouts

40

New!New!

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

41

Xamarin.Forms

ワンソース

ネイティブのUI/UX

42

XAML

43

XAMLの機能

44

XAMLの機能

Resource

Style

Trigger

Behavior

Value Converter

Data Template

Data Binding

45

Model View ViewModel

Data Binding

MessagingCenter

46

MVVM

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

Custom Renderer

Effects

47

ネイティブAPI

Dependency Service

Plugin

48

アジェンダ

Xamarin 概要Android, iOS 概要Xamarin ネイティブ, Xamarin.Forms開発手法まとめ

49

C# / .NET / Visual Studio

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

API 100% 移植

コード共通化

50

Xamarin

2つの開発手法

51

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

#Xamarinはいいぞ

52

公式ドキュメント

ペゾルド本(PDFが無料配布中)

日本語の情報

Japan Xamarin User Group

Build Insider

Qiita

田淵のブログ

各種ブログへのリンク53

リソース

ありがとうございました

Japan Xamarin User Group田淵義人080-7015-3586Twitter: @ytabuchifacebook: xlsoft.ytabuchiBlog: Xamarin日本語情報

top related