2017年5月20日土曜日

Build2017 Session視聴メモ その2

Build 2017, 見たセッションの内容をメモしておこうという記事です。
そうしないと忘れちゃうので。

Build2017 Session視聴メモ その1
http://ddlgjp.blogspot.jp/2017/05/build-2017-session.html


P4086 Beyond App Containers: Gaining privileged access to hardware inside your Windows app using custom capabilities
P4102 UWP Apps file access improvements
B8012 Tip, tricks, and secrets: Building a great UWP app for PC
B8100 What's new and coming for Windows UI: XAML and composition
P4173 Tips and tricks for creating performant UI in UWP


P4086 Beyond App Containers: Gaining privileged access to hardware inside your Windows app using custom capabilities

https://channel9.msdn.com/Events/Build/2017/P4086
http://video.ch9.ms/sessions/c1f9c808-82bc-480a-a930-b340097f6cc1/build/2017/P4086.pptx

Creators Update ではUWP で Device Apps が作りやすくなりました!という話

Hardware App を例にして考える


デバイス屋さんが自分のハードウェアとセットで売るアプリの話 HWの設定、初期化、ドライバ、色々…
大抵はWin32で作るもの
問題

Win32であるがゆえに…



  • Desktopでしか使えない(Win32だからね)
  • アプリ更新の仕組みが無い(自前でやるの結構大変)


じゃあUWPなら、というと、これはこれでApp Container の制限があり作りづらいところがあった このあたりをCUで変えたよ!という話

ここでUWP App のおさらい


UWP Appとは何でしたっけ?
Windows10 では複数のDeviceFamily …PC、Mobile、Hololens、等があるけども、それらの最小公倍数、どのファミリも共通に持つApplicationの基盤が「Universal Windows Platform」、UWP
この上で動くのがUWP App だからUWP Appの最大の特徴「Windows 10なら基本どこでも動く」が成立する

UWP 他の特徴…
Isolatedで、システムに影響を与えづらいApp ContainerのSandbox

今迄のDevice App…Windows 8時代のWSDA、Windows Store Device Appsを考える


幾つか問題があった

  • Desktopでしか動かない(UWP前だから当たり前だが)
  • 作るの面倒(たしかMSとお話して権限貰う必要があった)
  • デバイスのメタデータをMSの鯖にUploadする必要があった HardwareIDと紐づくから
  • NTサービスを触れなかった(ドライバは触れた 一応UWP・StoreAppにもIoctl触るAPIはあるので)



(感想 これ、Win8出たころにプリンタ屋さんとかのベンダー向けに色々説明あったんですけど 覚えてる? あんまり流行らなかった印象あります)

このように使いづらい部分があったので、Win10 CUで変えました!

Custom Capability のご紹介



  • uap4!!!
  • 今迄のSpecial・Restricted Capability の扱いと似ている
  • AppxManifestの中で宣言してサービス・ドライバ・ハードウェアへのアクセスを許す


実際どうやってるのん?



  • UWP AppからNTサービスへはRPC で繋げる (なので多分サービス側にもRPCの口を開ける必要アリ)(もちろん普通のUWPはRPCでNTサービスに繋げるとか無理で、このCustom Capability をManifestで宣言しているアプリのみが使える)
  • ドライバへはWindows.Devices.Custom を使う


(感想 極めて個人的な思い出になるんですが…15年くらい前にPC用のユーティリティソフトを作っていたころ、まさにこの構造を採用していました NTサービスに管理者権限の必要な機能を全部集めて、UserModeのWin32 ApplicationからRPCでそれらを呼ぶという あーあの構造やっぱ正しかったわ、と今になって安心しました)

具体的には…ドライバ


  • .INFでCapabilityのIDコミのプロパティエントリを作る ,又は
  • ドライバにプロパティアクセスの口を開ける


具体的には…NTサービス


  • RPCの口を開ける

誰でも使えるの?…NO!承認されたAppのみ



DevCenter経由でSCCDを請求

承認を得たAppはSCCDをPackageに含める
OSはSCCDをチェックしてOKなら動かす

Hardware access for Universal Windows Platform apps


P4102 UWP Apps file access improvements

https://channel9.msdn.com/Events/Build/2017/P4102

(感想 これPre-recorded な短いセッションなんだけど、UWP App のFileAccessに関するSandbox知ってた人にとっては結構びっくりする話だと思います)

(右の眼鏡の人の声がヨーダみたい)

Next version of windows ではUWP App でもDesktop AppみたいにFileAccessが出来るようになるんだぜ という話

FindFirstFile, CreateFile2, PathIO...


Demo おお使えてるわ まじか

Enumerationするには…



  • FindFirstFile and FindNextFile .. ディレクトリのファイルを全舐めするとき、CreateFile2やPathIOを使ってファイルにアクセスするとき、DesktopAppのCodeをUWPに持ってくるとき にお勧め
  • StorageItem .. プロパティアクセス、サムネイルアクセス、共有コントラクト にお勧め


(感想 プロパティとサムネイルはWindows.Storage はかなり良く出来ているのでNative APIを使う理由は無い んが、それ以外…いわゆるFileAccess は上側のNative使った方がそりゃ早いよねという)

CreateFile2 / PathIO Demo

CreateFile2は…アプリのローカルストレージ(LocalFolder, tempFolderなど例のフォルダ)だけでなく、アクセス可能な全てのフォルダに対して使用可能(!!

FALやMRUなどでアクセス履歴管理するあたりは今迄と同じ

(感想 これは結構びっくりで 今迄は、アプリローカルストレージ以外は基本Broker Process 経由のAccessになるのでこういうNative APIは使えなかったんですが 今度から使えるよ!という話)
(感想 とは言いつつ…全く初めての話でも無くて 前にStackoverflowでMSの人がある程度AUでも出来るよ?と言っていて驚いたことがありました https://stackoverflow.com/questions/42799235/  )

Demo ファイルアクセスの書き方だいぶスッキリしそう


B8012 Tip, tricks, and secrets: Building a great UWP app for PC

https://channel9.msdn.com/Events/Build/2017/B8012

Building great UWP app for PC

次にPCにAppを作るならUWP Appでしょう!というUWPをがんがん推すSession


  • MultiWindow
  • Enterprise Controls
  • D&D
  • Modern Deployment like as differential update,etc 


ひとくさりWin32 AppをDisるSpeaker

Deployment、Uninstall、Privileges, etc

UWPで今出来ない事…色々言われてきましたよね、ええ ここ面白いので全部書いておこう

「UWPはモバイルのためのもの」「UWPはデータのブラウズにはいいけど作るものではないよね」「MSだってUWP使ってないのになぜ俺が!?」「UWPは.NET に比べると普通サイズアプリのパフォーマンスが充分じゃないよ」「UWPでは現実世界のLOB Appでやりたいことが出来ないんだ」「UWP AppはWebAppに比べるとインストールと更新が難しいよね」「UWPを始めるのは難しいな・・」「LOB Appで必要なデータビューの部品が足りてないよ」「UWPで出来るのはおもちゃ…ゲーム、デモ、トイアプリくらいだね!」「UWPはタッチ操作には便利だけど僕の顧客が必要なのはキーボード・マウス操作なんだ」

(感想 良く集めた)

まず最初「MSだってUWP使ってないのになぜ俺が!?」


→ Win10 同梱のAppは大体UWP Appです Paint3D, OneNote, Adobe Xd, ..

今日はUWPで出来る事色々を紹介しよう



  • Jumplists
  • Multiple Windows Instances
  • Overlay views
  • Long running operations

Demo


毎度おなじみNorthwind DBを使ったデモ


  • ToolTip付きのHotkey ... このあたりはCUから入ってる
  • MultiWindow and Drag'n Drop, PinP .. PinPを動画でなく、入力用の常駐フォーム用に使ってる この使い方は面白い
  • Windows Form Appから UWP App へのDrag'nDrop (88888)
  • MS Wallet の呼び出し


このDemoのおねえちゃん(マダム)のアプリはMultiWindowの使い方上手だね

DataGridはTerelikの奴かな

使い方デモ


Hotkey

  • MultiWindow CoreApplication から直でWindow作ってるね これ前からあったっけか?
  • ApplicationViewSwitcher これも偉いあっさり使ってる F10で頑張ってやってた頃に比べるとえらいスッキリしている
  • Drag'nDrop
  • "SqlBridge" ... このデモで使ってるSqlClient AppService経由?これどうやってんだろう?よくわからない


「UWPを始めるのは難しい」

→ Windows Template Studio のご紹介 デモ


  • VSからTemplate Selectorでベースを選ぶとコード生成
  • VSのTaskListにこれからやることリストがもう入ってる
  • TerelikのDataGrid使えばそれっぽいAppがすぐできますよねーーーー


今迄の説明であったのは全部Creators Updateで出来るんですよ!

「UWPはまだ完全じゃない」


これからも改善していきます

「UWPはおもちゃだぜ」


UWP App コマンドラインサポートだってできる パラメータにファイルとオプションを渡すデモ


  • UWP App、インスタンス二つ実行してる!!えーーーーー びっくり 電卓はMultiViewだけど
  • !!!AppxManifestの中でAppExecutionAlias を作って中でuap5:ExecutionAlias Alias="tpsviewer.exe'    なーに楽しそうな事をしているのか・・・
  • uap5は色々楽しそうなの入ってるね…
  • uap5:Extension Category="windows.startupTask" これも楽しそう つまりUWP Appでスタートアップに設定しようという 必要なやつ
  • MultiInstance=True をApplication Element で設定してる これはFallCUから?CUから?

※ 追記 この辺りのAppxManifestの拡張は Fall CUから、Insiderで順次入るそうです (コメント欄で聞きました)


UWPを拡張する


デモ
今度はSqlClientを.NET Standard 2.0 直で使う キャーーーーー awesome!(拍手)
よかったね!セッション中にライブでUservoiceのStateを「Complete」に変更するおじさん

UWPは未来

UWPのアドバンテージ (DesktopAppに対して、という事だろう)

  • Best User Confidence
  • Trustworthy app deployment and management
  • Sufrace Hub & Windows 10 S
  • Expanded Store monetization models
  • Engaging, intuitive experiences
  • Fluent, Ink and Cortana
  • Project Rome
  • Windows Hello & Goodbye

今日からUWP App書こうぜ!
終わり

Q&A

PinPはMobileで使える? → Desktopだけ
demo前半のAppSerivceどうやってんの?→謎い CommandLineAppをFullTrustでキックしてるみたいだけど
MultiWindowはいいけど…MultiMonitorで表示するMonitor選べる?→Uservoiceへ

(感想 MSさんはUWPこれからどうすんのかな…と若干不安要素はあるんだけど やる気はありますよ!というアピールと受け取りました ただ個人的にはまだまだ直してほしいところはある いわゆる常駐アプリが作れないのはUWP App Modelの弱点ですし、他にも色々 改善していって欲しい)


B8100 What's new and coming for Windows UI: XAML and composition

https://channel9.msdn.com/Events/Build/2017/B8100
https://sec.ch9.ms/sessions/c1f9c808-82bc-480a-a930-b340097f6cc1/build/2017/B8100.pptx

XAML親分、Tim Heuer のSession

We love great experience


Fluent Design のデモムービー

(感想 ほかのFluent Designセッションでも思ったが…動画デモで提示されるリッチなExperienceと、Fall CU で実現できるWave1との落差がでかすぎてつらい なんでも一歩ずつとはいえ)

Craftsmanship & Polish, Personal,Confidence, Fluid  このあたりのキーワードはTimさんのPresentationには必ず出てくる そういう意味では一貫してる

Windows UIの3 Layer - Framework Layer, Visual Layer, DirectX このあたりは今迄のUI.Composition の話でお馴染みのやつ


CU, Fall CU and Beyond
Fluent demoで目を引くDepth UIはFallの先、という話
また、ModernUI in Win32とかも書いてありますね なんでしょう

今日のテーマ4つ




  1. Real-world UI
  2. Natural Motion
  3. UI Controls
  4. Scale: Up and Out


Real-world UI

Lighting (reveal)
Userの注意を惹き、ガイドとなる
「フォーカス」…四角い枠付け表示に代わるもの、という見方もできる 
コンシュマーだけでなく、Enterpriseでも役に立つ
Fall CU では大体のControlに入る

Lightingのデモ

(感想 App WindowがDeactivateすると半透明処理がOffになる・・これはCUのなんちゃってAcrylicと同じだ)

Materials and Effects

Acrylic
基本的にはアクリリックブラシをXamlでセットするだけ 超楽
アクリリック以外にもXamlCompositionBaseBrush を作ってもいいのよ?画像ベースとか
VisualLayer 詳細Session B8037 Explore the next generation of innovative UI in the Visual Layer

デモ Materials and Effects
アクリリックブラシのカスタマイズ

  • アプリケーション内の背景ベースと
  • デスクトップの背景ベース、

二種類のアクリルブラシを見せる BackgroundSourceがHostBackdropと、Backdropになってる FallbackColorは(多分)Deactivateで色のみ表示の時の色

ぬこかわいい

Shapes

SVG Support お前らがくれくれというので入れてやった!(888888)
ただしCUのはStatic
この先ではAnimatable Vector Graphics をサポートしますよ!!!(88888)(多分SVGで)
これが上のほうで言ってた「Micro-Animations
Adobe xDで作れるにょ ほかのツールもサポートしたい

Natural Motion


正しい反応のアニメーションでUserConfidenceを増そうぜという

Seamless transitions

Demo... Page遷移でキーとなるビジュアルが表示されたままアニメーションして遷移するうやつ 最近よくある
例としては…音楽アプリでジャケットを一覧表示→クリックすると、そのジャケット画像をアニメーションさせながら拡大してそのジャケットのCDの再生画面に移行、みたいなやつ

(感想 この「Connected Animation」、AUのころからVisual Layerのデモでは必ずあった奴)
(感想 でもこれ、MultiViewと食い合わせ悪いんだよね…どうしようF10)

Coreographed ui ... connected animationだけじゃないよ!

(停滞するデモ そんなに時間かけるところでは無いと思う)

このVisual Layerなアニメーション、全部OS側にAnimation処理をOffloadできるのが今までのXAMLのAnimationと全く違う所 一度セットすると以降App側のCPU Timeを使わない なので上手に使えばぬるぬるしたカッコいいUIになる

(感想 このあたり、もっと楽に…吊るしで動く仕組みが要る気がする Nice to have な機能にリソースを割く順番は低い)

Dynamic Motion
Pull to refresh, parallax, Conscious Headers, ... insider buildにもうすぐで入ります
Future: Integrating Physics engines ...
(感想 Havok神がUIに)

Semantic animations

UI Contorls

Fall CU で出てくるUI Contorls総ざらえ
  • ParallaxView
  • Pull to refresh - RefreshContainer / RefreshVisualizer (やっと・・ついに・・・・)
  • SwipeContainer (ListViewのItemを左右ににゅるっとSwipeするやつ)
  • TreeView
  • ContentDialog
  • ContextFlyout
  • AccessKey (あれ、ToolTipも描いてくれる?のかな???今迄はお前ら各自で描きなさいと言われていたが)
  • Rating
  • ColorPicker
  • Repeater (よくわからなかった)


Performance as great UX


Respect animations
Limit background UI
Get to content fast .. Extended splashscreen "Optional=true" 新属性
Power Conditions
Optimize UI Creation Code
遅いXAML書いてる奴は手を上げて? おいおい全員上げれや、俺はTelemetryで君らのXAMLのスピード分かってるんだが!!!(笑い)
x:Load でロードを遅らせる あのコントロールの後にこれをロード、的な
詳しくはSession P4173 Tips and tricks for creating performant UI in UWP

Modern UI in Win32 apps

今迄説明してきたようなModern UIをWin32・WPF Worldに持ち込みたい

デモ 丸出しのWin32 C++ であるところの7zipを弄る
Opensourceなので弄るのにちょうどよかった?
Aclyric Brushの上にWin32のDialogがAnimationで表示されている 笑える




詳しくはB8110 Modernize Windows Forms and WPF apps へ!

Mobile

Mobile App はもちろん.NET なXamarinを使うよね!(あっハイ)
XAML Standard 1.0 ちらっと紹介

Wrap-up


その他諸々あるのでInsiderになってFeedbackすれや!!!!




終わり

(感想 やはりというか 2015・2016年で多かったAdaptive UIへの言及は消えていた XAML UIの版図からMobileが実質無くなってしまった影響がここにも感じられる… 最後にわざわざMobile=Xamarinって言うくらいだしね まぁそれはそれとして まだまだUIを改善する気満々なのが良く分かって安心はできた SVG Animation なんて結構いい感じになりそうです ただ、Fluent Designについてはまだまだ海の物とも山の物とも・・・Wave2からが本番な気がします それよりも、Fall CU に向けてContorlの新規追加・改良が期待できる点、こっちは恩恵大きいはずです)



P4173 Tips and tricks for creating performant UI in UWP

https://channel9.msdn.com/Events/Build/2017/P4173
http://video.ch9.ms/sessions/c1f9c808-82bc-480a-a930-b340097f6cc1/build/2017/P4173.pptx



  • x:Load 
  • Image Loading Optimization
  • LoadedImageSurface


x:Load


AUからのx:DeferLoadStrategy を置き換える奴 x:Load はこれのSuperset

https://docs.microsoft.com/en-us/windows/uwp/xaml-platform/x-deferloadstrategy-attribute
https://docs.microsoft.com/en-us/windows/uwp/xaml-platform/x-load-attribute

x:Load で Elementのロードタイミングを指定できる あのコントロールの次、みたいに 「あのコントロール」はBindingで設定できる

このため、画面一発出す時点で全部作る…のを避けられる 表示するときにロード、という作り方が可能になる

x:Loadとx:DeferLoadStragegy の一番の違いはUnload もできるところ Wao!!


Image Loading Optimizations


Image Practices refreshed


  • SVGの使用で各種サイズのImage Assetを減らせる (CUからSVGサポート)
  • BitmapをロードするときはDecode PixelWidth / Height をセットすれ(もう百万回言われてる奴だが)
  • ListViewBaseではx:Phase使えよな


この三つは今迄も口酸っぱく言ってきたところであるが!(ハイ)

デモ VisualLayerで使うImagesurfaceの話

Image LoadとSurfaceの生成がだいぶ楽になってる
今迄Visual LayerにBitmapをロードしてSurface作って…みたいのは結構コード量多かった  Suspendでのリソース管理も自前であった AU時代のVisual Layerはこのあたり全部手動だったんだよね・・・
それが!CUでは1行で済むんですよお客さん!!!
var _loadedImageSurface = LoadedImageSurface.StartLoadFromUri(IMAGE_URI);
8888888

(感想 これは超便利)

Adaptive Lights and Effects


新しいEffects, Lights
使いすぎ注意 Less is more
Power Management API

デモ Connected / Disconnected

Brushをコードで作るときにOnConnected / OnDisconnected ハンドラを付け、その中でcompositionCapabilitiesをチェック エフェクトサポートしてる?エフェクトファースト?とか
これでダメならEffectBrushでなくて、SolidColorBrushを使うなどする
また、ここでPowerManager.EnergySaverStaus をチェックする事も可能 


Visual Layer: Relative Sizing and Offset


Visual の中でのサイジングの話 Parentに対してRelativeという事みたい
(感想 これ、いわゆるVisual LayerでXAML UI Contorlの描画を弄るみたいな使い方ではあまり意識しないんだけど Visual Layerの中で独自の物を描きたい場合に意味がある)


(感想 x:Load はXamlのPerformance Tuningにはかなり役に立ちそう)




































2017年5月18日木曜日

iTunes on Windows Store を考える

Build2017 二日目のKeynote で、iTunes が Windows Storeに来る!というビックリニュースがTerry Myerson からありました。
ビックリすぎてTerryが痩せたとかなんとか(すみません)。




このiTunes をWindows Storeに持ってくるという話、今のStoreの規約・またDesktop Bridge のシステムに照らすとどんな事が見えるのかしら?いろいろ考えてみよう!というのがこの記事のテーマです。色んな意味でDesktop Appの「大物」であるiTunes のDesktop Bridge化とそれに伴う課題は、他アプリから見ても参考になる部分が多いはずです。

※ これから先の事案を予想する記事なので、何時にも増して想像に頼る部分が多いです。話1/3くらいでお読み頂ければ。

※ この記事ではiTunes がDesktop Bridge を使う前提ですが、Buildの発表ではDesktop Bridge を使うとはTerryは一言も言っていません。…が、実際それしかないだろうという体で以降話を進めます(UWPとも言っていません)。


Windows Store のポリシーから見る


現在、Windows Storeのポリシー (Version 7.3)には以下の条項があります。

Windows ストア ポリシー
https://msdn.microsoft.com/ja-jp/library/windows/apps/dn764944.aspx

10.8 金銭的な取引
アプリにアプリ内購入、仮想通貨、請求機能を追加したり、アプリで財務情報を収集したりする場合は、以下の要件が適用されます。
10.8.1
アプリ内で利用されるデジタル アイテムまたはサービスを販売するには、Windows ストア アプリ内購入 API を使用する必要があります。 アプリでは、ユーザーが以前購入したデジタル コンテンツまたはサービスを利用可能にできますが、Windows ストア アプリ内購入 API 以外の購入メカニズムを使用するようにユーザーを誘導してはなりません。
アプリで販売されたアプリ内製品は、法的に有効な通貨 (米ドルやユーロなど)、または任意の物理的な商品またはサービスに変換できません。


つまり、「Windows Storeで配布・販売するアプリの中でデジタルアイテムを売る場合はWindows のAPIを使って金銭のやり取りをしなさい」という規約です。デジタルアイテムとは、例えば曲、映画等のコンテンツです。

これをもう少し実体に即した生々しい言い様にすると…「アプリ内購入APIを使う=売上の三割を手数料としてMSに持っていかれる」、という事です。

このせいもあってか、これまで Windows Store で提供されている電子書籍や音楽配信等のアプリで「アプリ内購入API」が使われていた事は少ないです。大抵は別にWebブラウザを起動し、そこから…Windows Storeの外側でアイテムを購入する仕組みになっています。ユーザーからすると多少手間ではあります。また、三割の話を別にしても…こういったサービスの場合、販売するコンテンツの配信開始・停止、権利の管理も含めて、Webベースで構築してある場合がほとんどです。これにわざわざアプリ内購入APIをねじ込む理由があまりありません。

以上を踏まえて、iTunes on Windows Store について考えてみます。

現状のiTunes は、もちろんAppleが自前で組んだ販売システムと強く結びついているものです。デジタル コンテンツの購入は、Desktop・Mobile 共に AppleのiTunes の中からのみ行い、Webには出ていません。

実際の所、今のiTunes をそのままDesktop App Converter に通す等してAppX化した場合、一部の機能(*1) を除いて大体そのまま動いてしまうと思います。
しかし、上で説明したように、Apple自前の販売システムをWindows Store上のアプリで使用するのは規約 10.8.1 に照らすとどう見ても×、無理、ダメっすねという事になります。

*1 デバイス接続検知のSystem Service、またDriver等もあったのでは?と記憶しています。後でまた触れます。

ではどうするのか?幾つか選択肢が考えられます。
※ここから先は事実に基づかない私の想像です。


  1. AppleがMSのアプリ内購入APIを使ってiTunesを書き直す
  2. 販売のみWebブラウザを使う
  3. iTunes に合わせてWindows Store の規約を変える


1 は…技術的には可能ですが、3割MSに使用料収めるためのシステムをAppleが新たに書く理由を考えにくいです。

2 は…今のiTunesだと難しいのではないかと思います。上でも触れましたが、私の知る限り、購入は全てiTunes App内(のWebView?)でやらせており、Webには出していないです。Windows Store の為に新たにこの仕組みを作るというのも無さそうな話です。

3 …おそらくこれになるんじゃないかと想像しています。
「独自システムによるアプリ内販売禁止」は別に法律では無く、結局はMSが自分で決めたルールですので…MSがいいよ!と言えば済む話ではあります。

今回 iTunes 以外にもSpotify がWindows Storeに来る事が発表されています。
こちらについても上と全く同じ話が当てはまります。
実際の所、こういったデジタルアイテムの販売は今迄のDesktop App では当たり前に行われていた話です。今後はDesktop App も基本Windows Store を配布の中心に据えるつもりのようですし、実態に即した形で規約も変わっていかざるを得ないだろうと思います。


※ この件、MSDN Forum で質問を書いてみたのですが…「変わるだろうね」というふわっとしたお返事がありました。デスヨネ

Desktop Bridge app that selling digital items and Store Policy 10.8.1 - and iTunes
https://social.msdn.microsoft.com/Forums/windowsapps/en-US/de7de9e9-17ea-4694-817b-b7ca05097f77/



Desktop Bridge の仕組みから見る


上で少し触れたSystem Service・Driverの話です。
iTunes、確か デバイスの接続検知用システムサービスと、iPhone・iPod 用のドライバを同時にインストールしていた気がします(最後に使ったの数年前なので自信が無いです)。

しかし、iTunes が使うであろうDesktop Bridge ではSystem Service・Driverをインストールすることができません。

これもいくつか方法が考えられるのですが、
※ ここも完全に私の想像です。


  1. System Service・Driver をインストールするWin32 App をWebから別途ダウンロード・インストールさせる
  2. Desktop Bridge に「特別な権限」を新たに設ける
  3. System Service 又はDriver が要らない使い方の提案

1 は…現状…Windows 10 Home / Pro に対してはかなり便利な方法です。実際やっている方居そうです。ただし・・・・この手はWindows 10 S には使えません。Win10SでStore外から取得した Win32 App は動作しないからです。今回の話はWin10 S でiTunes が動く、という文脈なのでこれは無いでしょう。

2 …これが現実的なのではと考えます。
またルール変えるのかよ!と言われそうですが、実は今迄にも似た運用がありました。
例えばUWP App の場合、基本はかなりキツいSandbox…動作上の権限に制限が加えられているのですが、

  • 企業アカウントからアプリを出している
  • Microsoft と交渉してOKが出ている

等の条件(ものにより色々です)が合致すると、追加の権限をアプリに付与する事が可能な仕組みになっています。

アプリ機能の宣言 - 特殊な用途および制限された用途に関する機能
https://docs.microsoft.com/ja-jp/windows/uwp/packaging/app-capability-declarations

Desktop Bridge についても、種々の条件を満たし、MSから許可を得たベンダ・またはアプリについて追加の権限…System Serviceのインストールと実行を許す、という事が出来るかもしれません。

3 これもありそうですが。例えばドライバを使う操作はWin10 Sではサポートしない、iTunes が起動していない場合にデバイスを接続しても何も起こらないのは仕様である、等々。


考察


「iTunes を Windows Store に持ってくる」と宣言した時点で、色々な決まり・機能を変える必要があり、MSさんはそうするつもりなのだろうな、というのが私の感想です。
そして、これは基本的には技術的制限というよりはポリシーの話でもあります。

Build2017 の少し前、 ZDNetに「Windows 10 S にGoogle Chromeは来ないのでは」という記事が載りました。

Google Chrome won't be allowed on Windows 10 S
http://www.zdnet.com/article/google-chrome-wont-be-allowed-on-windows-10-s/

詳しいところは元記事をご参照頂きたいのですが、主な論旨は


  • Chromium 等、Edge 以外のEngine を使ったWeb Browser をDesktop Bridge でAppX 化したアプリの申請がMicrosoft によりRejectされている (*2)
  • Windows Store の規約がこの三月にVersion 7.3 に改定され、その中に「Webをブラウズする場合、Windows が用意するHTML及びJavascript エンジンを使う必要がある」という項目が追加された
  • MSのSpokespersonが5月9日にZDNet の問い合わせに答えて曰く「MS製以外のWebブラウザ使いたければWindows 10 Proをどうぞ」

*2 MSがUWP App 用に用意しているWebView Control はEdge ベースのEngineになります。これを使った「ブラウザアプリ」は特に問題無くストアに載っています。


実際、Twitter等でちらちら聞こえてくる話ではChromium のAppX 化は技術的には何の問題も無いようです。しかし、Webブラウザ に合わせて規約が改定されるという話にはならず、むしろ規約を元に「無いです」というのが現時点での結論になっているようです。つまり、iTunes とは真逆の話になってしまっています。これもまた、技術的制限というよりはポリシー、Windows Store 大家の意向という事になるでしょう。

Windows Store、最終的には大家の意向が通る私設商店街です。店子も大家の意向、動向に多少気を付けていないといけないのだろうなと思います。この辺りはGoogle Play、Apple AppStore あたりと共通の話かもしれません。






2017年5月14日日曜日

Build 2017 Session視聴メモ その1

Build 2017, 見たセッションの内容をメモしておこうという記事です。
そうしないと忘れちゃうので。

Build 2017 Session視聴メモ その2
http://ddlgjp.blogspot.jp/2017/05/build2017.html


B8096 Ten things you didn't know about Visual Studio 2017 for building .NET UWP apps
P4171 Windows 10 on ARM
T6109-R2 Black Marble: What did UWP ever do for us?
B8004 App Model Evolution
B8098 Windows Store: Manage and promote apps your way
B8025 Cross-device and cross-platform experiences with Project Rome and Microsoft Graph
B8066 Introducing Fluent Design
B8034 Build Amazing Apps with Fluent Design
B8103 Xamarin: The future of mobile app development
B8099 What's new in Xamarin.Forms






B8096 Ten things you didn't know about Visual Studio 2017 for building .NET UWP apps


https://channel9.msdn.com/Events/Build/2017/B8096
https://sec.ch9.ms/sessions/c1f9c808-82bc-480a-a930-b340097f6cc1/build/2017/B8096.pptx



1 VS Install


UWP buildするにはチェックすれ
VS2017とSDKはSideBySide…サポートしてるので使え(VS本番とVSPreviewなど)


2 Windows Template Studio


UWPのBoilerplateな部分が大体入ってるFramework
Navigation, MasterDetail, background, MVVM, etc…
VSIX形式なので、VSで新規作成するとTemplate選択UIにシームレスに飛び、そこからFrameworkの種類を選択できる お馴染みの形式
MVVM basic, MVVM Light, そして「Code Behind」も選べるのがミソ
Pageの追加もここからできる
Githubにソース全部あるので何かあったらIssue立てれや

デモ 🍔ボタン、Master Detail Model、マップ、等のよくあるページがテンプレから選べるだけで即作れますよー Size変更に対応できるResponsiveなやつですよー という

(感想…VS統合型の分かりやすいテンプレートは今迄待ち望まれていた部分 既存のTemplate10、UWP Community Toolkitと合わせて便利に使えると思います)

3 Connected Services


UWPから サービスに繋げるのが楽になった
  • HockeyApp
  • Azure Mobile Apps Backend
  • Azure Cloud Storage
  • Office 365

デモ AzureMobileAppsも簡単に追加できるよー URL入れるだけよー
さっきのWTSと組み合わせればMVVMでRelayCommandで作るのも簡単だよ
ダメなコードはVS2017がそれダサいから書き直せと指摘してくださる
ほうらMobile ServiceへのFacebookを使った認証も一発だーーー(88888)

(感想 HockeyAppは今後どうなるんだべ MobileCenterに置き換えられそうな空気があるが)

4 NuGet PackageReference

今迄はProject.jsonに全部入れてたが、2017ではprojectの.csproj に入れるようになった

5 .NET Standard 2.0


1.x は.NET Core に引っ張られて扱う範囲小さかったっす
UWPは1.4だったが?
2.0は違うよ!でかいよ!!
.NET Core 2.0が太ったのに合わせて太った!
他のNuGetもかなり食えるようになった
表参照…PPTがもう上がってる 色々できる
そーしーてーーーーー SqlClientも使えますよお客さん!!!イエーーーーーーーーー!!!!!(Fall CUから)
.NET Native の改善
Incremental compilation support for .NET Native
.NET Native portable PDB

6 XAML Controls

TelerikのDataGridViewが使えます
UWP Community ToolKit HamburgerMenuも使えるよ

7 Coding Productivity


VS2017のCtrl-T Navigationは超便利だからお前ら使うべき
XAMLのIntellisenseが強まった
Namespaceの自動補完も効くぜ
色々

8 Debugging Productivity


2017のXAML UI Debugging…例の奴
LiveVisualTreeでOnTheFlyで書き換えられる
XAML UI Analysisも Performance Issue追っかけるのに使える
UI Elementそれぞれの初期化時間が全部出てくる しゅごい ListViewが仮想化されてないよ!UI ThreadをBlockしてるよ!等も教えてくれる そしてこうすれば早くなるよというms.docs文書に飛ばす 36分あたり

(感想 XAMLもののPerformance 問題、真剣に直そうとすると結構疲れる作業なのでこれはかなり有難いと思います)

9 Visual Asset Generator


UWP Appでアイコンだのなんだの100万個作る奴の自動化
今迄は有志のWebServiceその他でやってた奴

10 Visual Studio Mobile Center

UWPでも使えるようになーりーまーしーたーーーーーー
これはFall CU待ちなくて今日もう使える
余談だが💡サポートがさらに強まって、今迄はusing ついてないよ までだったが、今はこのnuget packageが入って無いからManagerからInstallしましょうか?まで提案するようになった これはVS2017Previewかな?

(感想 そこまでわかってんならお前が書けとちょっと思うが)
(感想 Mobile Center、Xamarin.Android で今使ってるけど良く出来ている Application Insightから移ってもいいかも)

まとめ

VSPreviewとSDKPreviewをDLすれナウ!SideBySideで入るから!痛くない!

(感想 そうはいっても、Fall CUの新機能はそれこそ秋になるまで世に出せないのでいまいちやりがいが無い Insider Preview 向けにアプリ出せる環境があればまた違うんだけど)

Q&A

UWP Community Toolkit  WTS 違い
UCTはNovember Updateから使える
WTSはCreators Update以降
重なってる部分多い



P4171 Windows 10 on ARM


https://channel9.msdn.com/Events/Build/2017/P4171

(これはPre-recordedなSession、12分の短いやつ 会期中にライブでやってたのとは別)

2020年に向けてConnectivityが要る!だからARM!

(感想 わかるし面白いと思うけど若干弱くないかなぁ)

Qualcomm製の小さいデバイスを見せる Phabletくらいのサイズかな
Win on ARM, ArmはARM 上から下まで メモリ4GB
Edgeも全然普通に動いている

(感想 WindowsRTもこのあたりは出来ていたので)

ビデオカメラ刺すと即Inbox Driverが動くよ!

7Zipのデモ 野良で拾ったWin32 Appももちろん動く (一部で心配されていた Win10SみたいにストアOnlyでは?というのは無い)
Win32 → ARM64 Emulationは全く透過的、Runtimeに行われ、またディスクにキャッシュされる

基本、OS持ちのアプリ…EdgeだのExplorerだの…は上から下まで全部ARM Native
X86はWOWレイヤに乗せてEmulation
Compiled Hybrid PE(CHPE) DLL…キメラというか Appからはx86DLLに見えるが中ではARMで動く この半年くらいWalking Cat氏が追っかけてたやつですね
OS持ちのSystemDLLをこれで準備しておくことで、RuntimeなEmulationをかなり減らせる

UWPのデモ
…UWPの場合、.NETものは.NET Native でそれぞれにNativeなのが降ってくるので問題は無い

(感想 一部、.NETじゃないC++の場合はビルド時に明示的にARMをチェックする必要があるかも)
(感想 個人的にはWindows がARMで動くだけで面白いので以前SurfaceRT買って遊んでたんだけども だが、それが一般に受け入れられるかというと微妙な気もしており・・・セッションの始めで言っていた「ARMで動かす理由」をもう少しBrushUpする必要があるように感じた)


T6109-R2 Black Marble: What did UWP ever do for us?


https://channel9.msdn.com/Events/Build/2017/T6109-R2

ソフト屋さん Black Marble が自アプリ tuServ をUWP化したよ話
Android・Win10 Client からBackendに繋げる感じ
警察で使うアプリなのかな
うn かなり良く出来ている (が、それ以上特に得るところが無かった…)



B8004 App Model Evolution



https://sec.ch9.ms/sessions/c1f9c808-82bc-480a-a930-b340097f6cc1/build/2017/B8004.pptx

(SpeakerのAndrew ClinickさんはWPの頃からAppModel、AppXの親分 今迄もDesktop Bridge、AppX、UWP Appで大事な話が多かったです Q&Aの時間たっぷり取ってくれるのもナイス)

AppX


Streaming supportが入った
Game等で、CoreDL完了した時点で起動 残りのデータ部分はBgDL
Self updating apps for UWP - 更新を自分で制御・App起動前に更新を強制・社内・ベータ配布等… しかしこのSessionではこれ以上の詳しい説明無し

Desktop Bridge



このSessionのKey Messageはこれでしょう。





(感想 ワオ 踏み込んだ この1年弱のDesktop Bridge運用で自信ついたのかな? もうWin32 Appの配布はAppXが本筋だぜ!という宣言ですね)

Lesson Learned
  • Q どうしてほとんどのWin32 Appが簡単に変換できるの?
  • A Appは変換していないから。インストーラを変換しています。
(感想 腑に落ちる大変分かりやすい説明です)

AppXを直接吐けるインストーラー製品が増えてきた
  • FLEXERA InstallShieldでお馴染み)
  • RAD Studio
  • Firegiant (WiXでお馴染み)
  • InstallAware
  • Advanced Installer
「でもMS自身はDesktop Bridgeあんまり使ってないよね?」
「使います!」
  • Office - Win10 SのタイミングでPreviewGAは後で
  • Team - Soon
ここからMicrosoft Graph の話

Graph、今まではIdentityのフレームワーク、くらいの地味な扱いだったんだけど、このBuildで急にスポットライトが当たった感じ
後の説明で分かるけど、Romeその他で今までWin10に少しづつ乗っていた機能がGraph,ということでAppでも使えるようになった感じします

App Graph


App同士がMSAまたはAADで認証してGraph経由でデータをやりとり
今回のGraphWindowsだけでなくてiOSAndroidも入ってるのがポイント

Device Graph



いわゆるDevice DiscoverySerivce Discovery デバイスのEnumeration、デバイスが持つサービスのEnumerationを行う
MSAまたはAADの認証トークン付きでMSに
https://graph.microsoft.com/me/devices
で投げると、答えがJsonで返ってくる

KeyMessage

Tranform your app into a service


(感想 この考え方は大事やなと 特に…UWP Mobileが沈没した今、Windows AppMobile Appの世界と連携していくには、UWP App側がサービスになってMobile AppiOS / Android からGraph経由で繋げるしか無いんだろうと思います)
おそらく、RomeRemoteServiceDeivceDiscoveryはこれで実装してたんだなーいうのが分かる

Activity Graph


Fall CUTimelineや、AUで追加になった通知の同期がこれで作られている メッセージの同期・やりとりをGraphで行うよ、という話
(感想 Romeや通知の同期などは、「MSのクラウドで同期」というふんわりした説明が今まで多かったんだけど 今度からは「Graphで同期」と名前がついた感じです)

Adaptive Cardの話


通知の単位としてのAdaptive Card 例えば、Fall CUのタイムラインでタイルっぽく出しているのはまさにAdaptive Card
全部の通知がCardを持つという話でも無い(Grooveの再生ポジションとかカードにしても仕方ない)
Adaptive Card - MetaData、URIVisual

Demo
これは実際手を動かした方が早い
http://adaptivecards.io/visualizer/index.html
ここで右上のコンボボックスからコンテナ…タイル、トースト、Facebook、BOT等を選択できる
左ペインのデータモデルが各コンテナでそれなりに表示されるよね、という話

QA Time

Q Win10SはDesktop Appインストールできないの?
A Win10SはWindowsストア からアプリをインストールできる Deskop Appも、Desktop Bridgeを使えばインストールできます

Q Graphのやりとり、データは実際どこに保存されるの?
A 'Complex Answer' ...この回答面白いですね ご存知のようにドイツはこの手のデータ保護超うるさいのでUSとは保存の仕方が別なんだよ、という (感想 Graph、一個の技術というよりは SignalRみたいに、いろんなレイヤの技術をまとめて…Synthesize…一つにしてお出ししてる感じです)

Q Graphに預けるデータのサイズ大きくなったら?
A 場合による…Activityだったらば渡して終わりなので貯めるというのが無い クラウドではないので概念がちょっと違う ただもうすこし詳しい話は聞きたい

Q Activityの読み書き?
A 自分のActivityは読み書きができる (よくわからなかった)

Q Desktop BridgeはSystemService持てないじゃん?
A うn セキュアなSerivce書くのは大変よね ただUsermodeのPrinterDriverのように道はある(うn・・・)

(感想 iTunes はどうするんじゃろう)

Q Longrunning Taskはどうするのん
A (苦しい) Consumer Appにフォーカスしてるから…(確かに難しい…)

Q BgTask、LongrunningTask
A (苦しい) (感想 たしかに・・・ResidentなBackgroundTaskが書けないのはUWP AppModelの弱点 Background Serviceは基本EventBaseなので、Win32App+SystemServiceを書いてる人はまず困る所だと思う)


B8098 Windows Store: Manage and promote apps your way



...ppt見れば済むので略 大体、今まで言っていたストアの拡張の話
Betaのリリースコントロールが多少細かくなるみたい


B8025 Cross-device and cross-platform experiences with Project Rome and Microsoft Graph



Speaker、かなり一杯一杯 がんばれ

User engagement がキーワード このEngagement、なんと訳すべきかいつも困るが

Rome
Q3 16 Windows
Q1 17 Android
Q2 17 iOS, Graph

Timelineの説明
UWPでのDeviceDiscovery → RemoteServiceのデモ この辺りは今更感ある

Rome iOS SDK
MS Graph SDK
iOS AppからWindowsのAppを起動して、iOSの写真アプリでの写真切り替えとWindowsを同期させるデモ
Graph SDK, 上のPresentation でもあったようにHTTPで生えてるから Webから使うのも楽なんだな

デモ AlexaからGraph SDKでPCのブラウザを起動

まぁこの辺りは全部GitHubにあるので実際手動かした方がいいですね


B8066 Introducing Fluent Design




最初の18分は要らない

Fluent Design Wave1

  • Reveal Highlight
  • Acrylic Material
  • Connected Animations
  • Conscious Controls
  • Perspective Parallax

このあたりはRS3で入るやつ 一部はVisualLayerとして技術は前からあったけれども、それらを束ね直して使いやすくしました、大部分はCommon Contorolに最初から入ってますよーという感じ Reveal HighlightやConnectedAnimation、Parallaxも以前からUI.Compositionで紹介されてましたよね

Reveal Highlight等はCommon Controlは最初からImplement済みである そりゃそうだ 自分でやれとか言われたら帰るよ俺は

Acrylic Material … いわゆるすけすけ
まぁ…Controlで適切にやってくれればそれ使うでいいよね(低意識)

Connected Animation
これは使ってるの多いですね最近 ただ、SingleWindowの中でPage切り替えるのには有効だけど MultiWindowだとあんまり出番を作りづらい

Perspective Parallax
これもよくある奴 前景と背景でずれながらスクロール的なアレ

ここでWave1の効果のみをつかったデモ動画 うん・・・まぁ・・・最初のFluent Design System 全部盛りとはだいぶ様子が違うっすね

Wave2は…?
未定だが
  • 360Degree Media playback
  • Conscious Headers Viewの変化に従ってヘッダの描画がぬるっと変わるやつ 最近Androidで多いアレ
  • Speech
  • Z-Depth Layering (動画デモで一番派手なやつ)
  • Spatial Sound

(あ、Pull To Refreshが見える これもFluent Designの一部として予算ついてんのかしら)

Web上のSample、Documents

https://docs.microsoft.com/en-us/windows/uwp/style/


B8034 Build Amazing Apps with Fluent Design


https://channel9.msdn.com/Events/Build/2017/B8034

B8066 を踏まえてAppを実際に書いてみようぜというSession
まぁこの辺りはもうSDKもDocumentもあるのでごりごり書いて行けばいいと思う
サンプルのソースもchannel9のコメント欄に中の人が全部URL貼ってくれているし

AcrylicはXAMLん中でBrush定義してそれ使うだけ

Reveal Highligh, 多くのControlが既定でサポートしてる
  • NaviationView
  • ListView
  • GridView
  • ComboBox
  • CommandBar
  • MediaTransportControl
そうでないControlもStyleで簡単にEffectを付けられる ただのボタンとか

その他ConnectedAnimation、Parallax の使い方等 見ればわかるので略


B8103 Xamarin: The future of mobile app development


https://channel9.msdn.com/Events/Build/2017/B8103
https://sec.ch9.ms/sessions/c1f9c808-82bc-480a-a930-b340097f6cc1/build/2017/B8103.pptx

Xamarin Live Player の説明
これやっぱり説明の画面構成がおかしいんだと思う 誤解した人が増えたのはしかたない

最初17分は全体にMiguelとJamesがイチャイチャLiveCodingしてるだけなので好事家の人向け

Upcoming .. SwiftNetifier - project and cosume Swift APIs into .NET  ほう

このセッションは左と右(講演者と画面モニタ)を逆にしたほうがいいのでは…
こいつらテーブルの下で何やってるか分かったもんじゃないね!(喜)

Android Platform - Integrated SDK Manager, Material Design Support いいね

AOT comes to Android and Mac (*´▽`*)ウラー  Android のAOT動いてるの見たことネー マジカー


B8099 What's new in Xamarin.Forms


https://channel9.msdn.com/Events/Build/2017/B8099
https://sec.ch9.ms/sessions/c1f9c808-82bc-480a-a930-b340097f6cc1/build/2017/B8099.pptx


水害で没した高校

















2017年5月13日土曜日

Wheel World Clock Android 版を公開しました

世界時計アプリ Wheel World Clock を Google Play で公開しました。Android 5.0 以降でお使い頂けます。無料です。

Wheel World Clock
https://play.google.com/store/apps/details?id=com.ddlg.wwcd


      


Google Play で手に入れよう

  • 世界時計です。文字盤は指でくるくると回すことができ、「ここの何時があそこの何時か」がすぐにわかります。
  • 表示するタイムゾーンは変更可能です。また、海外に移動してタイムゾーンが変更された場合、自動的にWheel World Clock にも新しいタイムゾーンが追加されます。
  • 夏時間に対応しています。



📱📱📱


元のWheel World Clock は、
リリースしたものです。


Microsoft からダウンロード

この世界時計アプリという題材、ある程度小規模であり、設定やデータの読み書き、アニメーション、グラフィックス等使用頻度の高い要素が適度に含まれているため、新しいプラットフォームで一度アプリを通して作ってみるのに丁度良く、今回は Xamarin.Android 学習用に作ってみたという所です。

小ネタアプリではありますが、この…「くるくる回せばここの何時があそこの何時かすぐわかる」形式は競合が少ないです(*1)。そのせいか、Windows用に出して2年、細く長く広告除去アイテムが売れ続けているという自分にとっては元の良いアプリでもあります。Android でも使ってもらえるとイーナー。


*1 スライドバーで変更できるタイプはいくつかあります。

Google Play and the Google Play logo are trademarks of Google Inc.


2017年5月6日土曜日

F10 recent updates / F10 最近の変更 すけすけ、広告除去

F10 image bbs browser, 最近の変更 サマリーです。
現時点での最新版は 5月5日リリースの ver 1.4.378 になります。

F10 image bbs browser

なお、F10 のVersion 1.1, 1.2, 1.3, ... は それぞれ Win10 のバージョンに対応しており、お使いのWin10 バージョンに合わせてダウンロード・インストールされます。

  • F10 v1.1.x - Win10 1507
  • F10 v1.2.x - Win10 1511 (November Update)
  • F10 v1.3.x - Win10 1607 (Anniversary Update)
  • F10 v1.4.x - Win10 1703 以降 (Creators Update)



背景の半透明化 / Enabling 'Acrylic' effect   (v1.4.378)


Windows 10 Creators Update の新機能の一つである半透明処理に一部対応しました。
…機能使用のガイドが出る前に勝手に対応しているので、今後変更が入るかもしれません。

一部注意点としては、

  • 動画の上にF10 を重ねて表示する場合、F10 側のウィンドウリサイズを行うと動作が少し固まるなど妙な動作をする事があります。この現象は Creators Update 以降にリリースされたビデオドライバで動作が改善する場合があります(私の使っているAMD A10 - R7 video がこれでした)。
  • OS側でアクセントカラーを変更する場合、F10 側もそれに合わせて色味を変更するのですが、その変更に数秒かかる場合があります。この間、F10 の操作が出来ません。
  • 今回は Windows 10 PC のみこの機能を有効にしています。



Dark themeでの表示例


Light theme での表示例


「広告の除去」の再有効化 / Re-enable the purchasing of 'Ad Removal' item  (v1.3.370 以降)



2017年2月、Store 側の手違いでF10 がStoreから取り下げられた事があったのですが、その時同時に 広告除去のアドオン アイテム も購入不可となっていたようです。

現在は問題は修正され、購入可能となっています。




2017年4月17日月曜日

Windows 10 Mobile について


基本的に、MSさんが自分で技術やプラットフォームの終了を宣言する事は少ないです。Silverlight も VB6 も一応まだ生きてはいます。HTML + JSもまだUWP App の一部ではあります。Lightswitch 、覚えておられるでしょうか。

では上に挙げたような技術に資源が投入され、活発に開発が続けられているかというと、もちろんそんな事は無いのは私もあなたも良く知っている所です。Silverlight はもうEdgeではサポートされていませんし、WinJS の改良も望めません。HTML+JS App、Build 2011の頃は今後 StoreAppのPrimary Language になるくらいの勢いがありましたが、Build 2016では遂に一つのセッションもありませんでした。

個人的な見解ですが、こういう場合、エンジニアは自分で見切りをつける必要があるように思われます。

Windows 10 Mobile も、残念ながらこのコースに入っているなというのが私の感想です。2015年一杯はまだ活動が続いていたように見えました(覚えておられるでしょうか?Lumia 950/XLが出たのは2015年10月、Win10M RTMとして更新が始まったのは12月です)。しかし、2016年以降の現状は…


  • 2016年2月 のLumia 650 が最後のHardware投入となりました。Lumia 750・850 はキャンセルされました。
  • 2016年4月 のBuild 2016 ではWin10M のセッションはほぼ有りませんでした。
  • 2016年以降、いくつかの開発系の新技術が紹介されましたがWin10M は未対応・後日対応となる場合がほとんどでした(Mobile Center 等)
  • 2016年以降、Office等のMS製アプリがiOS・Androidにリリースされましたが、Win10Mにはされていません。
  • Win10 は2016年夏のAU・2017年春のCU と2回大きな更新がありましたが、Win10Mについて目立った新規機能の追加はありませんでした(Coreの更新に伴う変更はありましたが)
  • 2016年7月 Edgeの機能拡張サポートからMobile が外れている事がわかりました。
  • 2016年9月 のIgnite では Continuum for Phone の機能拡張(Multi Window Support)が紹介されましたが、CU に載ることはありませんでした。
  • 2017年2月 のCreators Update Developers Day でWin10M についての言及はありませんでした。


新規投資・開発はほぼ止まっているように見えます。

例えば今後(Surface Phoneのような)新機種が出る、RS3 に向けて新機能が載る、という話は…もう無いのだろうなというのが以上を踏まえての私の感想です。
ただ最初に書いたように、即停止する事は無く、RS3 に向けた更新は続くのだろうとも思います(Build Numberからすると、Coreから外してBranch切ったようにも見えますが…)。Elite x3のような機種もある以上、せめてContinuum for Phone の拡張くらいはやってほしいなとは思いますが。People は…どうでしょうか。


🍙🍙🍙


MSさん側で止めていても、こちらがApp を作り続けるのは勝手ではあります。例えば、別に今Sliverlight で何か書いても咎められることは無いわけです。使ってくれる人の数を脇に置けば。
脇に置けない場合、作り続けるのが困難であるのもまた自明であろうと思われます。
…個人的には2016年半ばくらいまではまだ作る気あったのですが…上に挙げたような外的な状況、加えてWin10M 自体の機能、実装等、またリリース済みアプリの使用状況・ユーザー数も含めて考えると、なかなか難しいかな…というのが現在の所です。





2017年3月19日日曜日

自分のUWP App の広告を AdDuplex に出してみた話

UWP App で使える広告プロバイダ「AdDuplex」 をご存知でしょうか。
普通の広告プロバイダは
  • 「広告を出したい企業等から使用料を貰い、広告を表示する 表示したアプリはその一部を頂く」
形式ですが、こちらは
  • 「AdDuplex を使っているアプリ『の』広告をお互いのアプリに表示する」
というサービスです。基本無料ですが、お金を払って広告の表示枠を買うこともできます。

※ AdDuplex については以前このBlogでも記事にしていますのでご参照下さい。
AdDuplex とは何か
http://ddlgjp.blogspot.jp/2013/09/adduplex.html

今回、AdDuplex で100USD分の広告表示権を頂いたので、画像掲示板ブラウザ F10 の広告に使ってみた!という記事です。

※ 以前 Microsoft が運営していた技術学習支援サイト TechRewards で頂いたものです。
TechRewards で糊口を凌ぐ
http://ddlgjp.blogspot.jp/2016/01/techrewards.html


広告の作成


AdDuplex Dashboard でアカウントを作ります。アカウント作成にはお金はかかりません。

AdDuplex
https://www.adduplex.com/

AdDuplex 管理画面に入ったら、画面上部の「Buy Ads」から広告作成画面に移ります。
以下の項目を入力し、広告を作成します。

  • ストア上のURL
  • 広告画像 または文字列
  • 広告を表示する国と地域
  • 広告を表示するアプリカテゴリ

今回の広告では、以下のような自作のバナー画像を使っています。
文字列の場合、4種類の文字列が順に表示されます。また、言語別に設定することも可能です(画像の場合は言語に関わらず一種類のみ)。

F10 の広告バナー
768x128

広告表示に使うお金も設定する必要があります。
広告表示期間と、1日に使うお金を設定します。料金はクレジットカード払いか、今回使っているようなクーポンを使うことができます。


いざ広告表示…その結果


必要な項目を全て入力し作成を完了すると、広告の審査フェーズに入ります。おかしなものを表示していないかどうか確認しているようです。
2,3日経つと審査が終わり、広告の表示が始まります。

以下は、「1日10USD設定で三日間広告を出した」場合のAdDuplex 側の統計です。


AdDuplex 上の統計

ざっくり平均を出すと、
1日10USDで70,000Impression, 200Click
くらいでしょうか。
ただこの「Click」が曲者というか…意味が分からないです。詳しくは以下に。

次に、これを受けた Microsoft Dashboard 側の統計を見てみます。
今回のような広告キャンペーンを張った場合、DashboardではAnalysis→Channels & Conversions から、
  • 各広告から発生したストアのPV数
  • アプリのダウンロード数(「Conversions」)
を確認できます。

なお、以下Dashboard 側のデータは二日間分のみ表示されています(集計に時間がかかる)。





…アルェー AdDuplex 側の「Click」とはずいぶん違いますね。平均7PV / day 。
そして、ここからどれくらいアプリDLまで到達したかというと…






二日間で4件!と。つまり、結果的には10USDでDL数を2件買った計算になります。

2017年3月19日現在、10USD = 1127円です。1000円ちょいでDL2件…割に合わん!というのが正直な感想になります。赤字だよぅ…

勿論、この結果は「このアプリ(F10)」の広告での話なので、同じPVでもアプリや広告が魅力的ならばDLごんごん増える場合もあるでしょう。
あくまでも「このアプリの場合の」目安と受け取っていただければと思います。

それにしても…こういう広告、しかも広告を出す側となると全く素人なので、うまくいってるのか行ってないのか判断がつきかねます。



※広告データの開示ですが、実はMicrosoft Ad の場合は公開しちゃダメよという規則があるのであまり具体的な話はできません。
AdDuplex は、Terms of service に特に記述がないのでこのような記事にしています。
https://www.adduplex.com/terms-of-service
怒られたら勿論引っ込めます :)