狠狠撸

狠狠撸Share a Scribd company logo
Xamarin 概要
~Windows Embedded の業務用端末
から Android へのシームレスな移行~
2017/7/13(木)
アイニックス ソリューション セミナー2017 東京
エクセルソフト株式会社
ソフトウェア事業部
新規事業開発室室長
田淵義人
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
田淵義人@エクセルソフト
開発者向けソフトウェア、ライブラリの販売/サポート
ソフトウェア、ドキュメントのローカライズ
海外製品の輸入?販売
開発者に特化した取り扱い製品群
75,000名のメールニュース
45名収容可能なセミナールーム
3
エクセルソフトについて
沿革
4
XLsoft International 創立
1987 1991
エクセルソフト株式会社 設立
RoboHelp
XLsoft Corporation 社名変更
三田オフィス移転
Xamarin
1993 2001 2010 201320021997 1998 2003 2006 2007 2017
VTune/PKZIP
WinDriver
C++/Fortran Compiler
ActivePDF
Pegasus/BCL/Infragistics
SpreadsheetGear/Test Complete
Aspose
Docker/CData
Xamarin のイメージを掴む
Xamarin に興味を持っていただく
5
ゴール
Windows CE から Android へ
Windows CE
7
プロダクト名
ライフサイクルの
開始日
メインストリーム サ
ポートの終了日
延長サポートの終
了日
Microsoft Windows CE 5.0 2004/08/31 2009/10/13 2014/10/14
Windows Embedded CE 6.0 2006/11/30 2013/04/09 2018/04/10
Windows Embedded Compact 2013 2013/08/11 2018/10/09 2023/10/10
Windows Embedded Compact 7 2011/03/15 2016/04/12 2021/04/13
https://support.microsoft.com/ja-jp/lifecycle/search/1143
Windows CE/Android
.NET Compact Framework 3.5
型推論/ラムダ式/LINQ
Windows Forms/XAML
.NET Framework 4.7/Mono 5.0
/.NET Core 1.0
async/await/null条件演算子/パター
ン マッチング/タプル型
XAML/axml
https://msdn.microsoft.com/ja-jp/library/bb822049(v=vs.110).aspx
http://ufcpp.net/study/csharp/cheatsheet/listfxlangversion/
9
10
Xamarin とは
C#/.NET/Visual Studio
フル “ネイティブ” アプリ
API 100% 移植
コード共通化
12
Xamarin
C#
13
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();
}
};
2つの開発手法
14
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.Android
AndroidManifest.xml
Asset
Resources
drawable(mipmap)
layout
values
Resource.Designer.cs
MainActivity.cs
16
プロジェクト構成
Activity
17
Activity 1
UI
Code
Activity 2
UI
Code
Activity 3
UI
Code
Data, files,
images など
アプリ
Intent
18
Activity 1 Activity 2 Activity 3 Data, files,
images など
アプリ
Xamarin.Forms
ワンソース
ネイティブの
UI/UX
XAML
MVVM
20
Xamarin.Forms
必要な知識
21
プラットフォーム
個別
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
デモ
http://bit.ly/Ainix20170713
Xamarin でも Socket 通信ができる
TcpServer/TcpClient/Socket Plugin
CData API Server を使ってすぐに API を用意できる
SQL Server/API Server/Postman
Xamarin から API を叩くことができる
Xamarin.Forms/HttpClient
クラウド
Azure/Web Apps
デモおさらい
まとめ
C#/.NET/Visual Studio
フル “ネイティブ” アプリ
API 100% 移植
コード共通化
25
Xamarin
2つの開発手法
26
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はネイティブで個別に作りこむ
Windows CE での資産を生かして/殺して
C# の言語スキルをそのまま Android 開発へ
Xamarin
ありがとうございます
エクセルソフト株式会社
ソフトウェア事業部
新規事業開発室室長
田淵義人
Twitter: @ytabuchi
facebook: ytabuchi.xlsoft
28

More Related Content

Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~