universal apps (uwp)

27
古賀信哉 株式会社サムシングプレシャス

Upload: shin-ya-koga

Post on 28-Jul-2015

545 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Universal Apps (UWP)

古賀信哉

株式会社サムシングプレシャス

Page 2: Universal Apps (UWP)

UWP とは

UWP アプリケーションの作り方と配置

IoT Core との関係

※本日のスライドは、後日 SlideShare 等で公開します。

Page 3: Universal Apps (UWP)

UWP 以前:現在の状況

Embedded

Mobile

PC

Page 4: Universal Apps (UWP)

UWP で改善したいこと

マルチデバイス対応の混沌

アプリケーション開発者の、機会の断片化

Page 5: Universal Apps (UWP)

UWP

プラットフォーム

API + デバイスファミリ

アプリケーションモデル(実行と配置)

ライフサイクル:

インストール, 実行, 更新 ~アンインストール

動作状態

データモデル

Page 6: Universal Apps (UWP)

既存アプリケーションとのブリッジ

"Classic" Windows

Project Centennial

iOS

Project Islandwood

Android

Project Astoria

Page 7: Universal Apps (UWP)

開発ツール

Visual Studio 2015(※現時点では RC)

Windows 10 or 8.1

Page 8: Universal Apps (UWP)

開発ツール

Visual Studio 2015(※現時点では RC)

Windows 10 or 8.1

Page 9: Universal Apps (UWP)

開発ツール

Visual Studio 2015(※現時点では RC)

Windows 10 or 8.1

Page 10: Universal Apps (UWP)

開発ツール

Visual Studio 2015(※現時点では RC)

Windows 10 or 8.1

Page 11: Universal Apps (UWP)

開発ツール

Visual Studio 2015(※現時点では RC)

Windows 10 or 8.1

Page 12: Universal Apps (UWP)

実装言語

[C/]C++(C++11, C++/CX)

JavaScript, HTML

C#/Visual Basic, XAML

Page 13: Universal Apps (UWP)

UWP API

Win32 & COM

.NET Framework

Windows Runtime

Win8’s Store App

Live SDK

UWP

OAuth 2.0, REST, JSON

Page 14: Universal Apps (UWP)

UWP API

削られた API(from Win32 & COM APIs)

削られた API(from .NET Framewrok)

追加された API Windows.Devices.AllJoyn

Windows.Devices.Bluetooth.Advertisement

Windows.Devices.Gpio

Windows.Devices.I2c

Windows.Devices.Midi

Windows.Devices.Radios

Windows.Devices.Spi

Windows.Graphics.DirectX

Windows.Graphics.Printing3D その他色々

周辺機器やデバイス本体を制御する、比較的低レベルな API が提供されている。←Win 8.1 までのストアアプリとの違い。

Page 15: Universal Apps (UWP)

複数のデバイスファミリへの対応

デバイスファミリ判定

デバイス名や OS バージョンでは判定しない

できない

"Universal Binary" の仕組みは無い

ネイティブアプリケーションの配置

Page 16: Universal Apps (UWP)

複数のデバイスファミリへの対応

利用できない API の判定:

メタデータ API により実行時に判定

“Contracts”による、関連 API 単位での判定

個々の API(メソッドレベル)での判定

Page 17: Universal Apps (UWP)

複数画面サイズ・画面サイズ変更対応

複数のデバイスファミリ対応

同一デバイス上での画面サイズ変更

LCD 表示から HDMI モニタへ出力切り替え

ウィンドウのリサイズ

XAML の「レスポンシブ UI」対応(※追加)

GUI 回りも、単一ソースコードで対応可能!

Page 18: Universal Apps (UWP)

Classic Windows 用のソースとの共通化対応

コンパイルスイッチ #define WINAPI_FAMILY_PC_APP 2 /* Windows Store Applications */ #define WINAPI_FAMILY_PHONE_APP 3 /* Windows Phone Applications */ #define WINAPI_FAMILY_ONECORE_APP 4 /* Windows OneCore Applications */ #define WINAPI_FAMILY_ONECORE_SERVER 5 /* Windows OneCore Server Applications */ #define WINAPI_FAMILY_DESKTOP_APP 100 /* Windows Desktop Applications */ /* The value of WINAPI_FAMILY_DESKTOP_APP may change in future SDKs. */ /* Additional WINAPI_FAMILY values may be defined in future SDKs. */

Include/10.0.10041.0/shared/winapifamily.h

/* * PARTITIONS for feature packages. Each package might be active for one or more editions */ #define WINAPI_PARTITION_PKG_WINTRUST (WINAPI_FAMILY == WINAPI_FAMILY_ONECORE_SERVER) #define WINAPI_PARTITION_PKG_WEBSERVICES (WINAPI_FAMILY == WINAPI_FAMILY_ONECORE_SERVER) #define WINAPI_PARTITION_PKG_EVENTLOGSERVICE (WINAPI_FAMILY == WINAPI_FAMILY_ONECORE_SERVER) #define WINAPI_PARTITION_PKG_VHD (WINAPI_FAMILY == WINAPI_FAMILY_ONECORE_SERVER)

Include/10.0.10041.0/shared/winpackagefamily.h

Page 19: Universal Apps (UWP)

Windows Store を使って行われる予定

Submit a Universal Windows app to the Store

"The Store is not currently open for the submission

of Windows 10 Insider Preview apps."

Page 20: Universal Apps (UWP)

新しいWindows Store

全エディションを一つの Store に

Desktop, Mobile, Xbox, IoT, HoloLens, Surface Hub

iOS (Islandwood), Android (Astoria), Centennial(?)

ポータル(Storefont)は複数

Device, Microsoft.com, Cortana

登録とアプリケーションの発行:

共通の DevCenter

カタログは共通

Page 21: Universal Apps (UWP)

Win32 & COM APIs(of UWP)

フルサポート(?)

既存コードの修正が必要

DeviceIoControl(), etc.

GPIO, I2C, SPI の API はフルサポート

Windows.Devices.AllJoyn も対応

UWP Windows Runtime API

Page 22: Universal Apps (UWP)

Windows Embedded Comact

移行ツールを提供

Windows 10 IoT Core Insider Preview Porting Tool

Project Centennial(?)

WEC 2013

~2023/10(サポート)

~2028/05(to EOL)

IoTAPIPortingTool に改名

Page 23: Universal Apps (UWP)

BUILD 2015 のセッション資料まとめ

http://blogs.windows.com/buildingapps/2015/0

5/07/build-2015-session-recap

API ガイド

Develop Universal Windows apps https://dev.windows.com/en-US/develop

Guide to Universal Windows Platform (UWP) apps

https://msdn.microsoft.com/en-

us/library/windows/apps/dn894631.aspx

Page 24: Universal Apps (UWP)

API リファレンス

https://msdn.microsoft.com/library/windows/ap

ps/bg124285.aspx

.NET for Windows Store apps APIs https://msdn.microsoft.com/ja-

JP/library/windows/apps/br230302.aspx

.NET Framework and Windows Runtime

namespaces https://msdn.microsoft.com/ja-

JP/library/windows/apps/br230302.aspx#namespaces

Page 25: Universal Apps (UWP)

API リファレンス

Win32 and COM for Windows Runtime apps https://msdn.microsoft.com/en-

us/library/windows/apps/br205757.aspx

Alphabetical list of Win32 and COM API https://msdn.microsoft.com/en-

us/library/windows/apps/dn424765.aspx

Platform namespace https://msdn.microsoft.com/en-

us/library/windows/apps/hh710417.aspx

C++/CX における、.NET Framework

基本 API に相当するもの(?)

Page 26: Universal Apps (UWP)

Windows IoT Core

Docs and Samples http://ms-iot.github.io/content/win10/StartCoding.htm

Windows 10 IoT Core Insider Preview Porting Tool

http://ms-

iot.github.io/content/win10/tools/IoTAPIPortingTool.htm

Universal APIs not functional in Windows 10

IoT Core at this time http://ms-iot.github.io/content/win10/UnavailableApis.htm

Page 27: Universal Apps (UWP)

Windows IoT Core

Windows 10 IoT Core Insider Preview

Overview and Getting Started http://cmsresources.windowsphone.com/devcenter/common/re

sources/content/Windows_10_IoT_Core_Insider_Preview_O

verview.pdf

Windows 10 IoT Core Samples (GitHub) https://github.com/ms-iot/samples

Windows.Devices.AllJoyn namespace https://msdn.microsoft.com/en-

us/library/windows/apps/windows.devices.alljoyn.aspx