xamarin の概要と活用事例
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
田淵義人@エクセルソフト
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);
};}
}
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 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
ありがとうございますJXUG にも遊びに来てください
Japan Xamarin User Group
田淵義人@エクセルソフト
Twitter: @ytabuchi
facebook: ytabuchi.xlsoft
28