universal apps (uwp)

Post on 28-Jul-2015

546 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

古賀信哉

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

UWP とは

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

IoT Core との関係

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

UWP 以前:現在の状況

Embedded

Mobile

PC

UWP で改善したいこと

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

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

UWP

プラットフォーム

API + デバイスファミリ

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

ライフサイクル:

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

動作状態

データモデル

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

"Classic" Windows

Project Centennial

iOS

Project Islandwood

Android

Project Astoria

開発ツール

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

Windows 10 or 8.1

開発ツール

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

Windows 10 or 8.1

開発ツール

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

Windows 10 or 8.1

開発ツール

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

Windows 10 or 8.1

開発ツール

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

Windows 10 or 8.1

実装言語

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

JavaScript, HTML

C#/Visual Basic, XAML

UWP API

Win32 & COM

.NET Framework

Windows Runtime

Win8’s Store App

Live SDK

UWP

OAuth 2.0, REST, JSON

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 までのストアアプリとの違い。

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

デバイスファミリ判定

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

できない

"Universal Binary" の仕組みは無い

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

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

利用できない API の判定:

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

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

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

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

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

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

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

ウィンドウのリサイズ

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

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

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

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."

新しいWindows Store

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

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

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

ポータル(Storefont)は複数

Device, Microsoft.com, Cortana

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

共通の DevCenter

カタログは共通

Win32 & COM APIs(of UWP)

フルサポート(?)

既存コードの修正が必要

DeviceIoControl(), etc.

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

Windows.Devices.AllJoyn も対応

UWP Windows Runtime API

Windows Embedded Comact

移行ツールを提供

Windows 10 IoT Core Insider Preview Porting Tool

Project Centennial(?)

WEC 2013

~2023/10(サポート)

~2028/05(to EOL)

IoTAPIPortingTool に改名

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

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

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 に相当するもの(?)

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

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

top related