universal apps (uwp)
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