28
Xamarin 概要 ~Windows Embedded の業務用端末 から Android へのシームレスな移行~ 2017/7/13(木) アイニックス ソリューション セミナー2017 東京 エクセルソフト株式会社 ソフトウェア事業部 新規事業開発室室長 田淵義人 Twitter: @ytabuchi facebook: ytabuchi.xlsoft

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

Embed Size (px)

Citation preview

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

Xamarin 概要~Windows Embeddedの業務用端末から Androidへのシームレスな移行~2017/7/13(木)アイニックスソリューションセミナー2017 東京

エクセルソフト株式会社ソフトウェア事業部新規事業開発室室長田淵義人Twitter: @ytabuchifacebook: ytabuchi.xlsoft

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

営業(セールスエンジニア) 兼新規事業開発室室長Xamarin コミュニティエバンジェリストMicrosoft MVP Visual Studio and Development TechnologiesXamarin MVP

連載・執筆Build Insider Xamarin Tips.NET開発テクノロジ入門2016年版

コミュニティJapan Xamarin User Group 主宰Twitter: @ytabuchifacebook: ytabuchi.xlsoftBlog: Xamarin 日本語情報

2

田淵義人@エクセルソフト

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

開発者向けソフトウェア、ライブラリの販売/サポート

ソフトウェア、ドキュメントのローカライズ

海外製品の輸入・販売

開発者に特化した取り扱い製品群

75,000名のメールニュース

45名収容可能なセミナールーム

3

エクセルソフトについて

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

沿革

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

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

Xamarin のイメージを掴む

Xamarin に興味を持っていただく

5

ゴール

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

Windows CE から Android へ

Page 7: Xamarin 概要~Windows Embedded の業務用端末から 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

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

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/

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

9

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

10

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

Xamarin とは

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

C#/.NET/Visual Studio

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

API 100% 移植

コード共通化

12

Xamarin

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

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();}

};

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

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

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

Xamarin.Android

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

AndroidManifest.xml

Asset

Resourcesdrawable(mipmap)

layout

values

Resource.Designer.cs

MainActivity.cs

16

プロジェクト構成

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

Activity

17

Activity 1

UI

Code

Activity 2

UI

Code

Activity 3

UI

Code

Data, files,

images など

アプリ

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

Intent

18

Activity 1 Activity 2 Activity 3 Data, files,

images など

アプリ

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

Xamarin.Forms

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

ワンソース

ネイティブのUI/UX

XAML

MVVM

20

Xamarin.Forms

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

必要な知識

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

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

デモ

http://bit.ly/Ainix20170713

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

Xamarin でも Socket 通信ができるTcpServer/TcpClient/Socket Plugin

CData API Server を使ってすぐに API を用意できるSQL Server/API Server/Postman

Xamarin から API を叩くことができるXamarin.Forms/HttpClient

クラウドAzure/Web Apps

デモおさらい

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

まとめ

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

C#/.NET/Visual Studio

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

API 100% 移植

コード共通化

25

Xamarin

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

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

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

Windows CE での資産を生かして/殺して

C# の言語スキルをそのまま Android 開発へ

Xamarin

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

ありがとうございます

エクセルソフト株式会社ソフトウェア事業部新規事業開発室室長田淵義人Twitter: @ytabuchifacebook: ytabuchi.xlsoft

28