Upload
yoshito-tabuchi
View
1.881
Download
3
Embed Size (px)
Citation preview
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
本日のスケジュール
アジェンダ
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日本語情報