Xamarin の特徴と開発手法概要 2016/9/7 2016年9月定例会「クロスプラット フォーム開発最前線」 田淵義人@エクセルソフト Twitter: @ytabuchi facebook: ytabuchi.xlsoft
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
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
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 ネイティブ
15
iOS
C# UI
Shared C# App Logic
(PCL)
Android
C# UI
Windows
C# UI
Xamarin Nativeロジックのみ共通化
UIはネイティブで個別に作りこむ
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.Forms
最大公約数
19
Shared C# App Logic
(PCL)
Shared XAML/C# UI Code
(Xamarin.Forms)
Xamarin.Forms
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はネイティブで個別に作りこむ
デモで使用したプロジェクト
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
Prebuiltサンプル
https://www.xamarin.com/prebuilt
27
Acquaint Sport Xamarin CRM My Shoppe
ご清聴ありがとうございます
田淵義人@エクセルソフト
Twitter: @ytabuchi
facebook: ytabuchi.xlsoft