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

  • View
    185

  • Download
    6

  • Category

    Mobile

Preview:

Citation preview

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

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

営業(セールスエンジニア) 兼新規事業開発室室長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

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

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

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

海外製品の輸入・販売

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

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

Resourcesdrawable(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: @ytabuchifacebook: ytabuchi.xlsoft

28

Recommended