Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

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

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2018/04/23 14:00

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

目次
  • 適用バージョン: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定義によるかコードでの動的生成か)を選択するラジオボタンを置いてあります。このアプリに、「ユーザーアクティビティ」の登録とプロトコルアクティベーションの機能を組み込んでみましょう。

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

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

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


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • biac(ばいあっく)

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

バックナンバー

連載:UWPアプリ開発の最前線
All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5