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
怒られたら勿論引っ込めます :)


2017年2月27日月曜日

F10 Recent updates / F10 最近の変更 - NSFW Switch, Pull to refresh

F10 image bbs browser, 最近の変更 サマリーです。
現時点での最新版は 2月27日リリースの ver 1.3.360 になります。
追記: 3月6日リリース ver 1.3.364 (ふたばもNSFWスイッチサポート)の記述を追加しました。

F10 image bbs browser


画像表示ウィンドウ・モバイル表示 でのボタン配置変更

(Ver 1.3.364)
フィードバックで要望のあった、画像表示ウィンドウ・モバイル表示でのボタン配置を変更しました。



新しい配置
保存ボタンが一番右に来ます。


画像表示ウィンドウのクローズに失敗していた件修正

(Ver 1.3.364)
1.3.360 で仕込んでしまったバグなのですが、画像表示ウィンドウを閉じる際、内部でリソースを開放していないままになる問題がありました。
  • 画像ウィンドウ側のスレ更新が効かない
  • 長時間放置しているとF10が反応しない
等の症状がありました。Ver 364で修正しました。




引っ張って更新 / Pull to refresh




(Ver1.3.360)
  • スレ画面 … スレ下端で上に引っ張るとスレ更新
  • カタログ画面 … カタログ上端で下に引っ張るとカタログ更新

です。

Pull To Refresh についてはこちらの実装を使っています。

PullToRefreshXaml
https://github.com/JustinXinLiu/PullToRefreshUWP_WindowsComposition


NSFW スイッチ

(Ver1.3.360, 364)
4chan・ふたば の板追加UIを以下のように変更しました。


NSFW オンの場合
ここでは例えば"Random"がNSFWに当たります

初期状態では、SFW…Suitable for work なタイプの板が選択可能です。
右上の「NSFW表示」トグルスイッチをオンにすると、確認画面の後でNSFW...Not suitable for work  なタイプの板も含めて全て選択可能になります。

* SFW / NSFW - (Not) Suitable for Work, 仕事中に見ても大丈夫・大丈夫じゃない板
4chan では各板にSFW/NSFWのフラグが設定されており、それを参照しています。
ふたばについては、独断で決めています。

    これまでは板名を手動入力(SFWは入力補完あり、NSFWは補完無し)だったものです。

    前身のfuta8 の頃は、4chanは既定の板を登録していると(Food & Cooking 等比較的大人しい所でも)審査に通らなかったのですが、最近は同種のブラウザアプリでこのような既定で登録済みスタイルでストアに載っている物が増えてきていたため、後追いした形です。理由は想像しか出来ないのですが、IARC の導入でレーティングが明確になったからかもしれません。

    なお、ふたばの板追加については変更ありません。これまで通り、
    • 既定はねこと甘味のみ表示
    • それ以外は板名を手入力(補完あり)
    • 全板表示したい場合は"All"と入れる
    です。



    2017年2月17日金曜日

    F10 is removed from the store.(Update: Recovered!!) / F10 はストアから削除されています。(回復しました)

    現在、F10 はストアから削除されています。
    理由はコンテンツポリシー11.7(アダルトコンテンツ)に関連しているようですが、まだ理由の詳細はわかりません。
    このような状況のため、アプリを再公開できる日時はわかりません。
    注 - 現在のところ、アプリケーションの使用は継続できますが、再インストールは利用できません。


    更新 2月22日:17日、削除された理由について問い合わせるメールを出していたのですが、今日 Microsoft から連絡が来ました。「間違って削除していた 24時間以内にストアに再表示される」 …💢。今のところまだ表示はされていないようです。
    更新情報がある場合は、お知らせします。

    更新 2月23日: F10 image bbs browser は ストアからダウンロードできるようになりました。
    https://www.microsoft.com/store/apps/9nblggh1ntrd


    Currently F10 is removed from the store.
    It seems that the reason is related to the content policy 11.7(Adult content), but I can't know the detail of reason yet.
    Because of this situation, I can't tell you the date when the app can be republished.
    Note - Currently you can continue to use the App, but re-installation is not available.

    Update Feb 22: In Feb 17, I've sent a mail to Microsoft that query the reason of removal. Today I got a response: "It looks like the app may have been failed in error." In error? huh? ... anyway, "The app should reappear within 24 hours.".  But I can't find it yet.
    If I have the update info, I'll let you know.

    Update Feb 23: F10 image bbs browser is back to the Windows Store. You can download and install it.
    https://www.microsoft.com/store/apps/9nblggh1ntrd


    2017年2月13日月曜日

    Windows Developers Day–Creators Update メモ

    2017年2月9日に行われたオンライン開発者イベント Windows Developers Day - Creators Update を見て気の付いたところ、気になった所のメモです。
    基本自分用備忘録なので…読み物の体裁にはあまりなっていません(特に後半のセッション視聴メモ)。

    Telerik UI for UWP


    UWP App Devとしては今回一番大きいニュースでした。Fiddler 等でお馴染みの .NET 系 開発ツールベンダ Telerik が、自身のUWP 用 UI Component製品をOpen source化 & 無料化しました。

    Telerikの発表
    http://www.telerik.com/blogs/telerik-ui-for-uwp-now-open-source
    GitHub
    https://github.com/telerik/UI-For-UWP
    NuGet
    https://www.nuget.org/packages/Telerik.UI.for.UniversalWindowsPlatform/

    22個のComponent の中では、特にGrid  とChart  が嬉しい人は多いのではないでしょうか。業務系のものを作るには必須ですが、UWP App では中々苦労する部分でした。

    他には…WP7?テイストのTime Pickerのような今更使い道あるの?な物まで色々詰まっています。
    加えて、

    等、XAML UI Control が急に賑やかになった感じです。


    Doc形式更新


    UWP App 系の文書が、doc.microsoft.com 形式に変更になりました。多少見やすくなります。また突っ込み用フォーム等も追加になっています。
    こちらのWindows 10 更新一覧もこの形式になりました。

    https://docs.microsoft.com/en-us/windows/uwp/whats-new/windows-10-creators-preview

    ちなみに Windows 10 の場合、TH1/2, RS1 とこれまでの更新でのAPI的な…開発者が知るべき変更は全部ここのページでまとめられるスタイルになっています。超便利。

    Creators Update = RS2 については、現状まだ全部ここに載っていません。例えば、15031から乗っているCompact Overlay等が未記述です。Creators Update のリリースタイミングあたりで更新されるのではないかなと予想します。


    Windows bug and feature backlog 公開


    個人的にはビックリ度一番大きかったのがこれです。このBlogでは別記事に書きました。

    今後追加されそうなXAML UI Control をFeature List から探す
    http://ddlgjp.blogspot.jp/2017/02/xaml-ui-control-feature-list.html


    Project Rome supports Android (Preview)


    Win10 AUから入っているProject Rome …デバイスを跨いだアプリ間通信の仕組みがAndroid→Windows で使えるようになります。Previewです。 

    Romeではざっくり二つの機能…
    1. Remote App Launch  名前を指定してリモートデバイスのアプリを起動する
    2. Remote App Service  リモートのApp Serviceをコールしてデータの送受信を行う
    があるのですが、Android SDKは現状1)のみです。2)は今後追加。
    また、AndroidはClientのみで、接続を受け付けるHost側にはなれないようです。

    このRome、地味だけど個人的には一番夢があると思っています。Win10 環境さえあれば何処でも動くUWP Appですが、唯一…Mobile Platformについて困難を抱えているのはご存知の通りです。PC、Xbox、HoloLens等で動くUWP Appと、Android / iOSなMobile の世界を繋ぐ唯一の橋、のような所がRomeにはあります。

    例えば ふたばブラウザで考えてみると… 外出中に使っているAndroid上のブラウザから、Win10 PC 上のブラウザのApp Service に今読んでいるスレの情報を送り、帰宅後PCで同じスレを読み続ける…という動作をさせることが可能になります(これは今F10がRome を使って出来ていることですが、Andoridでも出来るようになる)。


    UI.Composition


    現在売り出し中の、UI効果の新しい仕組み
    XAMLのFrameworkとDWM Layerの間で色々やる
    ここで作ってOSに投げたAnimationは以降OS持ちで動くので、App側(UIThread側)のCPU時間を全く使わないのが特徴 ぬるぬる動く

    この辺り、中の人Blog がMSDN Docでは言い切れない気持ち的な所を色々書いてるのでおすすめです。
    http://blog.robmikh.com/


    UWP Games on Xbox One 


    • Game mode - 各種報道でもう御馴染みのやつ
    • UWP on Xbox - 例のUWPゲーム話
    後者、詳細はGDCでないと分からないようです。この件、「XboxでUWP Gameが遊べるようになる!」という報道もあるようで、大筋そうだとは思うんですが…懸案の、ID@Xbox についてはまだよくわからんというのが正確な所ではないかと思います。Windows Centralのこの記事が現状を良く説明できているように思われます。

    Microsoft is NOT opening Xbox One to all UWP games ... but should it?
    http://www.windowscentral.com/microsoft-isnt-opening-xbox-one-to-all-uwp-games

    (この記事が載った数日後に、記事中で触れられているSteam Greenlightの終了が発表されています。)


    🍙🍙🍙


    ここから、Developers Day でのセッションの視聴メモです。
    見たのをそのままメモ書きにしているのでかなり雑です。また、個人的な感想は(カッコ)に括っています。


    Build Beautiful, Engaging UX


    Harneet Sidhana
    https://channel9.msdn.com/Events/Windows/Windows-Developer-Day-Creators-Update/Building-personal-and-productive-apps-with-Composition-and-XAML-updates

    XAML  Layer

    Creators Update (CU) でのXAML系変更
    • SVG support - Image controlのSource として直で.svgを指定できる アイコン等に使える
    • Keytips/mnemonics
    • Strikethrough - 取り消し線
    • MenuにIcon追加  MenuItem でアイコン指定が可能になる 実は今までなかった
    • Connected Animation
    Anniversary Update (AU) でUI.Composition ベースで追加になったやつ ページ遷移の間で、ビデオ窓のようなUI Controlを等をリサイズしつつぐにょっと繋げて表示するやつ(伝わる?)
    1. ConnectedAnimationService.GetForCurrentView()で取得AnimationServiceを取得し、
    2. アニメ対象のアイテムDurationを設定する このページはここまで
    3. んで遷移
    4. 飛び先のPageのOnNavigatedTo でまたConnectedAnimationService.GetForCurrentView().GetAnimationでさっきの奴を持ってきて、TryStart(CanvasControl)
    • Effects/Lighting XAML
    このあたりはAUではVisualLayer用のコードを自分で書かないといけなかったやつ CUではXAML上で書けば済む VisualLayerを使うBrushをLocalで定義してxamlで使う等
    • Image Loading service for use with Visual layer
    GridViewのItemContainerStyleの中で、ContentPresenterのVisualStateManagerの中でCommonStates・PointerOver、でSetterでLocalのSpotlightのPropertyを操作してる キモ面白い
    • Implicit Show/Hide Animation - F10のAU時代のUI.Compositionではいちいち書いてたやつ

    Visual Layer


    (感想・CUではだいぶXAMLで触れるようなので、こちらに降りなくても済む場合が増えるかもしれない)

    Input & Interactions

    • Pen, Dial(感想・InkもDialもSurface以外は正直関係無いのであんまり興味が無い…)
      InkToolBar enhancements
      Dial - integrated with inkToolbar
      色々良くなるらしいですな
    • Making easy the default
    • ScrollbarのAutohide, smooth windows resize
    • Semantic animations
    (感想・うーn 低調? Visual Layerは楽しいし便利なんだけど 言っちゃ悪いが所詮エフェクトでもあるので これでアプリのUsabilityを大きく改善できるとかそういう類のでは無いからね… 噂のNeon話も特に無かった 背景画像のみ … この辺り大きい話はbuild2017でしょうね )
    (小さい声でConcernをもう一つ言うと、Visual Layerは完全にUWP…Win10だけの世界の話であり、
    Xamarin等Cross Platformな要素は全く無いのがつらい所 )
    拙作F10ではGridViewのアイテムぐりぐり回すのに使っています

    Improving user engagement with Windows and Cortana Skills

    Thomas Fennel
    https://channel9.msdn.com/Events/Windows/Windows-Developer-Day-Creators-Update/Improving-user-engagement-with-Windows-and-Cortana-Skills

    Desktop bridge


    Support - Font Install, COM server registering, MAPI
    (感想:トランプじゃないけど、DACの話だけ90年代・00年代に戻ったみたいな空気があるんだよな…COMだのMAPIだの)

    AppX


    さらに強まるAppX
    • Streaming Install - 全部DLする前に、始められるところでゲーム開始しちゃう 残りは裏でDL
      (このあたりはAUでも話があった 今のAppXは凄くて、ファイルはChunkに分けて更新分だけ転送する なので、ファイル更新するときは末尾だけにすると転送量が減るぜ!!という冗談みたいなアドバイスがある)
    March 21 2017 追記:この辺りを説明するBlog記事が始まりました。

    UWP Streaming App Installation


    • Streaming Installのデモ
      AppXのManifestの中でAdditionalなものを指定する ContentGroupMap/Automatic/ContentGroup
      そうするとAppXInstall途中に本当にAppが起動する これは笑う 凄い 8分あたり
      (しかし最近の巨大ゲームではこれ普通に必要なんだろうね Steamとかもうやってるのかな?)
    • 差分Installデモ

     

    Action Center

    • Pin the primary tile
    • Toast with progress bar
    • Grouping
    • Custom timestamp
    このあたり、MSのTiles and Toasts Blogで既に詳しく説明されているので省略
    このBlogが一番情報早いです(というかMSDN Docだけ見てるとよくわからない)
    https://blogs.msdn.microsoft.com/tiles_and_toasts/

    Project Rome

    (Romeは別に書きます)

    Apps for Websites (AFW)


    所謂AppUriHandler話
    サイトへのリンクをアプリの起動でOverrideするやつ
    サイトのルートにJson置くのは相変わらず
    CUではEdgeでリンク踏むと効くようになった(AUでは効かなかった ただこれ、EdgeがMS製品だから出来るので…ChromeやFirefoxでは無理な話)
    デモ
    AFWを使うページ 18分頃 笑い
    http://winformtowers.azurewebsites.net/

    Cortana Skills Kit



    Windows Store


    https://channel9.msdn.com/Events/Windows/Windows-Developer-Day-Creators-Update/Using-the-Windows-Store-to-enhance-your-app

    (感想・2016年のBuild以降、Dashboardの進化は目を見張るものがある )

    現状説明は略 自分は毎日使ってるので今更
    おーーー Store ListingをExcelにExportしてくれる機能 これはいい
    Excelで作ってImportも出来る
    細かいPricing あのApp持ってる人には特別にこのお値段で!みたいな
    この辺りもBuild2016で言ってた話


    この記事では省略

    • Desktop Bridge – Win32 から UWP API を呼ぶためのNuGet Packageの整備が進んでいます。またDAC そのものにも更新があり… MAPI サポート Out-processなCOMサーバの登録サポート等が追加になるようです。
    • Hololens - 私には高価すぎます どこかに30万落ちてませんかね
    • Cortana Skills Kit  略

    Compact Overlay - a.k.a. "PinP"

    Developers Day では落ちていたけどCreators Updateに乗る大事な機能
    ApplicationViewModeにそういうモード作ってやったから、あとは各自Multi View作って頑張りなさいというストロングスタイル
    Mobileには現状乗ってないそうです :(
    https://blogs.msdn.microsoft.com/universal-windows-app-model/2017/02/11/compactoverlay-mode-aka-picture-in-picture/
    https://github.com/clarkezone/UWPCompositionDemos/tree/master/MediaPlaybackViews


    総評


    Buildと違って Session最後にエグい質疑応答が無いのは寂しいですね。
    機能の担当者が直で、自分の反応速度で答えるあの時間は一番大事なのかもしれません。


    F10 - XboxOne: crashing on startup (Feb 15 : Fixed!!)

    2月9日頃より、F10 をXbox One 上で起動できない現象が発生しているようです。
    多くのUWP App がXbox One上で似た問題に直面しており、Microsoft 広告サービスが原因であるようです。
    現在、回避策を検討中です。更新情報がありましたらここでお伝えします。

    2月15日追記: Microsoft 広告サービスを取り外した バージョン 1.3.354 を審査に出しました。上手く行けば数日でダウンロード可能になります。
    2月15日追記2: バージョン 1.3.354 がストアに載りました。ストアから更新・ダウンロードが可能です。また、自動的に更新されます。

    It seems that there are some issues occurred from 9 Feb 2017. This issue prevent the app startup of F10.
    Many of UWP apps on Xbox One faces the similar issue. Maybe this is caused by Microsoft Advertisement services.

    I'm now considering the workaround. I'll let you know here if update available.

    Added Feb 15 2017: I've upload the modified version 1.3.354 to the Store. Microsoft Ads are disabled temporary on this version. It'll be available within a few days.
    Added Feb 15 2017 (2): Version 1.3.354 available on the Store. You can download and install by "Update" from the store. or, it will be updated automatically.


    [UWP][Xbox]UWP App on Xbox crashing on startup in retail mode only
    https://social.msdn.microsoft.com/Forums/windowsapps/en-US/d812d5a3-33f2-41d0-88f0-4b39982a241f/uwpxboxuwp-app-on-xbox-crashing-on-startup-in-retail-mode-only




    2017年2月11日土曜日

    ダッシュボードからUWP App のユーザーに通知を送る

    Microsoft のUWP App 開発者Webサイト「ダッシュボード」 からUWP App のユーザーに、トーストやタイルによる通知を送信するサービスがあります。
    2016年中頃から始まっているもので、種々のお知らせやプロモーション等に使うことができます。


    最近 F10 ユーザー様宛に送信した通知トースト(日本語)
    このトーストをクリックするとストアの当該アプリページ、の
    アプリ評価ウィンドウが直で開きます。


    開始当初は単純な文字トースト通知のみでしたが、現在はWindows の通知プラットフォームで扱えるものならタイル、トースト上の画像、音、ボタン等を使ったインタラクティブ トースト等大体行ける強まったサービスに成長しました。MS氏がんばった。

    仕組み自体は、以前からある Windows Notification Service (WNS) を使ったものです。 AzureのMobileなんたらサービス等を使ったことがあればすっと判る感じです。

    最近このサービスを使う機会がありました。
    使用方法は…以下で丁寧に説明されているので、その通りに上から下まで流せば大体大丈夫です。

    アプリの顧客にターゲット プッシュ通知を送信する
    https://msdn.microsoft.com/en-us/windows/uwp/publish/send-push-notifications-to-your-apps-customers

    ただ幾つか気の付いた所もあったので、記録に残しておこうという趣旨の記事です。

    UWP App 側の準備


    通知を行う場合、その対象となるUWP App にStore Services SDK を追加し、API RegisterNotificationChannelAsync を「起動の度に」Callする (これでWNSに登録される)必要があります。
    このCall、割と時間がかかる(数秒レベル)ので、雑に初期化で呼ぶと起動がもったり遅くなる原因となる場合があります。特にUI Threadでやる必要は無いタスクでもあり、どこで呼んでも良いので適宜逃がしましょう。


    送信対象の設定


    本番の通知では、クエリで定義されるセグメントを作成します。
    ですがテスト・実験用には、「フライトグループ」に対して通知を送信することも可能です。

    基本的に大人数グループのセグメントと異なり、フライトグループはマイクロソフト アカウントのメールアドレスベースで作られる小規模なグループです。自分一人だけのグループもアリです。フライト グループの作成は以下を参照してください。

    パッケージ フライト
    https://docs.microsoft.com/ja-jp/windows/uwp/publish/package-flights

    なお、セグメントと異なり、フライトグループはアプリに紐づいていません。メールアドレスが一致していて、UWP AppによりWNS への登録が行われていれば通知は届きます。


    送信するコンテンツの作成


    ダッシュボード上のトースト・タイル作成フォームに逐次入力して作成します。

    ここで一つ気を付ける事がありまして…これおそらくバグなのですが(2017年2月現在)、
    トーストの内容を複数言語で送信する場合、
    作成フォームの一番下にある「Convert this notification to XML」、これをクリックしてXMLに変換してしまうと、既定の言語「以外」の翻訳したコンテンツが送信されなくなります。
    翻訳を使いたい場合、ここはクリックせずに作成フォームのみで作成する必要があります。

    2017/3/14追記: この件、ダッシュボードのFeedbackから問題報告していたのですが、今日になって「バグとしてトラックします」旨の通知がありました。その内直るかもしれません。





    「この通知をXMLに変換」

    送信!


    準備が諸々終わればいよいよ送信です。
    送信では、時間を指定できます。対象となるユーザーさんが日本国内だけに居るとも限りませんので、ユーザーのローカルタイムに合わせて送信する機能を使うと便利です。


    Use customer's local time zone instead of UTC をチェック


    送信したトーストは、受信状況を統計ページで確認することができます。
    参考になるかは分かりませんが、私が最近送信したもの(アプリ評価してねトースト)では…

    • トーストが届いたユーザーの内、トーストをクリックしてアプリを評価してくれたのは 4%
    でした。
    実際の所、突然届いた不躾な通知に答えてくれた方々には感謝しかないです。有難うございました。


    🍙🍙🍙


    通知の仕組みはこのように便利に使えるようになったのですが、では「頻繁に」使えるかというと…なかなか難しいかなという気もしています。
    このあたり同意してもらえるかあまり自信が無いのですが…ユーザーのデスクトップに問答無用で通知を「送り付ける」、つまりユーザーの操作、意図とは全く無関係に画面の一部を占有し何かを表示する、というのは、中々に無遠慮な行為な気がするわけです。
    トースト送っておいて何言ってんのという話ですが。

    また、今回はF10 を使っていただいてるユーザーさんに通知が届いたわけですが、仮に…インストールしている全てのUWP App がそれぞれに「評価してね☆」通知を送ってきたらどうでしょう?かなり鬱陶しい事になるのは容易に想像がつきます。

    こう考えると、手段は整備されたものの…上手に、ユーザーに通知をオフられない程度に使うには色々考える事が多いのでは、というのが使ってみての感想です。