SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

UWPアプリ開発の最前線

Windows 10 1803の新機能「タイムライン」とはなにか?
~まずはUWPアプリから使ってみる

UWPアプリ開発の最前線 第5回


  • X ポスト
  • このエントリーをはてなブックマークに追加

 この記事が出る頃は、Windows 10の大型アップデート「1803」の一般向け配信がそろそろ始まるところでしょう。その新機能の目玉の一つが、タスクビューに追加された「タイムライン」です。「タイムライン」は、アプリが登録したアプリの状態「ユーザーアクティビティ」を時系列に見せる仕組みです。Windows 10の主なアプリや、OfficeやVisual Studioなどがすでに対応しています。今回は、UWPアプリから「タイムライン」を利用する方法を紹介します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

  • 適用バージョン:Windows 10 version 1709(build 16299)以降

はじめに

 「タイムライン」はWindows 10 1803の新機能で、タスクビューの下に表示されます。これまで同様に、[スタート]ボタンの2つ右にある[タスクビュー]ボタンを押したり、[Windows+Tab]キーを押したりすることで、アプリを切り替えるためのタスクビューが表示されます。Windows 10 1803では、タスクビューのアプリ一覧の下に「タイムライン」が追加されています(次の画像)。

Windows 10 1803のタスクビュー画面
Windows 10 1803では、タスクビューの下の方に「タイムライン」が表示されています

 「タイムライン」には、アプリが登録した「ユーザーアクティビティ」がカードの形で表現されています。例えば上の画像の左下に「UF05.sln」と書かれた黒っぽいカードがありますが、これはVisual Studio 2017が登録した「ユーザーアクティビティ」です。ユーザーがVisual Studioを使って「UF05.sln」(ちなみに、この記事のサンプルコードです)で何か作業をしたという記録です。この「UF05.sln」のカードをクリックすると、Visual Studioが立ち上がって「UF05.sln」が開かれるので、ユーザーは作業の続きを行えるという仕組みです。「UF05.sln」カードの上に「今日」とあり、右側のスライダーの上端に「現在」、下端に「4月3日」とあることから、「ユーザーアクティビティ」カードは時系列に管理されていると分かります。「ユーザーアクティビティ」とは、「いつ」/「どんなアプリが」/「何をしていたか」というアプリの状態を表すもので、「タイムライン」はそれを時系列で見せる仕組みなのです。

 この「タイムライン」を利用するAPIは、UWP(Universal Windows Platform)のものだけが公開されていますが、Windows FormsやWPFなどの従来のデスクトップアプリからも利用できます。なお、「タイムライン」を表示する機能はWindows 10 1803で搭載されましたが、利用するAPIの方は先行して1709(build 16299)で導入済みです。今回は、UWPアプリから「タイムライン」を利用する方法を解説します(WPFアプリから利用する方法を次回に予定しています)。

対象読者

  • UWPアプリの開発者
  • Windows用のアプリを作っている開発者で「タイムライン」に興味のある人

必要な環境

 サンプルコード(GitHub)を試してみるには以下の環境が必要です。

  • Windows 10 1803以降
  • Visual Studio 2017 Version 15.5以降(無償のCommunity Editionで可)
  • UWP用Windows 10 SDK:C#/VB用の10.0.16299以降

どんな機能なのか?

 アプリから見ると「タイムライン」には2つの機能があります(次の図)。一つは、Windows.ApplicationModel.UserActivities名前空間のAPIを使って、アプリから「ユーザーアクティビティ」を登録する機能。もう一つは、プロトコルアクティベーション(URIのアクティブ化、URIアクティベーション)によって「タイムライン」からアプリを起動する機能。このプロトコルアクティベーションによって起動された場合、アプリはその「ユーザーアクティビティ」の状態を復元しなければなりません。

登録と起動の2つの機能がある
「タイムライン」への登録と、「タイムライン」からの起動

 UserActivities名前空間のAPIを使って「ユーザーアクティビティ」を登録する方法は、UWPアプリも従来のデスクトップアプリも同様です(従来のデスクトップアプリでは第2回で説明したようにUWP APIへの参照を手作業で追加します)。

 プロトコルアクティベーションは、UWPアプリではマニフェストに宣言し、アクティベーション時の処理を書きます。

 サンプルプログラムの題材としてはごく簡単なWebブラウザにしました(次の画像)。テキストボックスにURLを入力して[Go]ボタンを押すと、そのWebページを表示するとともに、そのときの時刻などを「ユーザーアクティビティ」として「タイムライン」に登録します。ボタンの右側には、「タイムライン」に登録するときに後述するアダプティブカードを使うか(使うとしたらJSON定義によるかコードでの動的生成か)を選択するラジオボタンを置いてあります。このアプリに、「ユーザーアクティビティ」の登録とプロトコルアクティベーションの機能を組み込んでみましょう。

サンプルプログラムの画面
サンプルプログラム

「タイムライン」からプロトコルアクティベーション以外の起動法

 本稿執筆時点の情報では、「タイムライン」から起動してもらう方法としてプロトコルアクティベーションしか見つけられませんでした。しかし、実際にはそれ以外の方法もあるようです。というのも、レジストリをざっと検索した限りではプロトコルアクティベーションの登録をしていないように見える「メモ帳」なども「タイムライン」に対応しているからです。

次のページ
アクティベーションURIの設計

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
UWPアプリ開発の最前線連載記事一覧

もっと読む

この記事の著者

biac(ばいあっく)

HONDA R&Dで自動車の設計をやっていた機械屋さんが、技術の進化スピードに魅かれてプログラマーに。以来30年ほど、より良いコードをどうやったら作れるか、模索の人生。わんくま同盟の勉強会(名古屋)で、よく喋ってたりする。2014/10~2019/6 Microsoft MVP (Windows Devel...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10790 2019/11/10 21:09

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング