Universal Apps (UWP)
-
Upload
shin-ya-koga -
Category
Software
-
view
548 -
download
0
Transcript of Universal Apps (UWP)
![Page 1: Universal Apps (UWP)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/1.jpg)
古賀信哉
株式会社サムシングプレシャス
![Page 2: Universal Apps (UWP)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/2.jpg)
UWP とは
UWP アプリケーションの作り方と配置
IoT Core との関係
※本日のスライドは、後日 SlideShare 等で公開します。
![Page 3: Universal Apps (UWP)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/3.jpg)
UWP 以前:現在の状況
Embedded
Mobile
PC
![Page 4: Universal Apps (UWP)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/4.jpg)
UWP で改善したいこと
マルチデバイス対応の混沌
アプリケーション開発者の、機会の断片化
![Page 5: Universal Apps (UWP)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/5.jpg)
UWP
プラットフォーム
API + デバイスファミリ
アプリケーションモデル(実行と配置)
ライフサイクル:
インストール, 実行, 更新 ~アンインストール
動作状態
データモデル
![Page 6: Universal Apps (UWP)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/6.jpg)
既存アプリケーションとのブリッジ
"Classic" Windows
Project Centennial
iOS
Project Islandwood
Android
Project Astoria
![Page 7: Universal Apps (UWP)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/7.jpg)
開発ツール
Visual Studio 2015(※現時点では RC)
Windows 10 or 8.1
![Page 8: Universal Apps (UWP)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/8.jpg)
開発ツール
Visual Studio 2015(※現時点では RC)
Windows 10 or 8.1
![Page 9: Universal Apps (UWP)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/9.jpg)
開発ツール
Visual Studio 2015(※現時点では RC)
Windows 10 or 8.1
![Page 10: Universal Apps (UWP)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/10.jpg)
開発ツール
Visual Studio 2015(※現時点では RC)
Windows 10 or 8.1
![Page 11: Universal Apps (UWP)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/11.jpg)
開発ツール
Visual Studio 2015(※現時点では RC)
Windows 10 or 8.1
![Page 12: Universal Apps (UWP)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/12.jpg)
実装言語
[C/]C++(C++11, C++/CX)
JavaScript, HTML
C#/Visual Basic, XAML
![Page 13: Universal Apps (UWP)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/13.jpg)
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)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/14.jpg)
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)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/15.jpg)
複数のデバイスファミリへの対応
デバイスファミリ判定
デバイス名や OS バージョンでは判定しない
できない
"Universal Binary" の仕組みは無い
ネイティブアプリケーションの配置
![Page 16: Universal Apps (UWP)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/16.jpg)
複数のデバイスファミリへの対応
利用できない API の判定:
メタデータ API により実行時に判定
“Contracts”による、関連 API 単位での判定
個々の API(メソッドレベル)での判定
![Page 17: Universal Apps (UWP)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/17.jpg)
複数画面サイズ・画面サイズ変更対応
複数のデバイスファミリ対応
同一デバイス上での画面サイズ変更
LCD 表示から HDMI モニタへ出力切り替え
ウィンドウのリサイズ
XAML の「レスポンシブ UI」対応(※追加)
GUI 回りも、単一ソースコードで対応可能!
![Page 18: Universal Apps (UWP)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/18.jpg)
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)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/19.jpg)
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)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/20.jpg)
新しい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)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/21.jpg)
Win32 & COM APIs(of UWP)
フルサポート(?)
既存コードの修正が必要
DeviceIoControl(), etc.
GPIO, I2C, SPI の API はフルサポート
Windows.Devices.AllJoyn も対応
UWP Windows Runtime API
![Page 22: Universal Apps (UWP)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/22.jpg)
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)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/23.jpg)
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)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/24.jpg)
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)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/25.jpg)
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)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/26.jpg)
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)](https://reader036.fdocuments.net/reader036/viewer/2022082211/55b6e45bbb61eb63268b4947/html5/thumbnails/27.jpg)
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