← Worksへ戻る

No.010 / Apps / —

RemoVision — チームの作業を可視化するmacOSアプリ

Appleリマインダー、顔の存在検出、アプリ利用時間、チーム共有を一つの作業フローへまとめたmacOSアプリ。

RemoVisionのライトモード用アプリアイコン
RemoVisionのライトモード用アプリアイコン
RemoVision — チームの作業を可視化するmacOSアプリ App Icon

Project facts

Role
macOSアプリ/チーム作業可視化
Deliverable
デスクトップアプリ / チーム作業可視化ダッシュボード
Industry
リモートワーク・生産性 / タスク・チーム管理
Capability
macOSアプリ開発 / Appleプラットフォーム連携 / データモデリング / オフライン同期設計 / データ可視化 / UI設計 / 技術ディレクション / コンピュータービジョン連携 / パフォーマンス最適化
Technology
SwiftUI / CloudKit / EventKit / Vision / Swift Charts / Swift / macOS / AVFoundation / SwiftData / AppKit / Network Framework / UserNotifications / Combine / Observation
Audience
Appleリマインダーを使いながら作業時間も振り返りたいmacOSユーザー / リモート環境でメンバー別の作業状況を確認したいチーム / 顔画像そのものを作業記録へ残さず、在席状態を時間記録の手掛かりにしたい利用者

課題

リモートワークでは、タスク管理、在席状況、利用したアプリの記録が分かれやすく、本人やチームが一連の作業を振り返りにくい。

解決策

Appleリマインダーのタスクを起点に、顔の存在検出と最前面アプリの利用時間を組み合わせ、作業終了時の完了状態やコメントをチームで振り返れる記録へまとめるmacOSアプリを構築した。

主要機能・工夫

  • Appleリマインダー連携

    未完了タスクの取得、追加、名称変更、削除、完了状態を作業フローへ統合する。

  • 親子タスクのまとめ選択

    命名規則から関連タスクをグループ化し、作業対象をまとめて選択できるようにする。

  • 顔の存在検出

    カメラ入力から顔の存在だけを検出し、在席時間を作業記録の判断材料にする。

  • 最前面アプリの利用集計

    作業中に切り替わった最前面アプリを追跡し、利用時間の内訳へまとめる。

  • 作業完了とコメント記録

    終了時にタスクごとの完了状態と振り返りコメントを記録する。

  • チーム共有

    グループとメンバーの単位で作業記録を共有し、複数人の振り返りにつなげる。

  • 作業ダッシュボード

    メンバー、期間、タスク、アプリ利用の観点から作業状況を確認できるようにする。

  • オフライン保留と再送

    通信できない作業記録を一時保留し、接続回復後に再送する。

  • 分割保存と継続取得

    記録件数の増加を想定し、クラウド保存と読取を分割して処理する。

  • ローカル読取キャッシュ

    過去データの再表示を補助するため、クラウド読取結果を端末側へキャッシュする。

  • ライト・ダーク表示

    macOSの表示設定に合わせて主要画面の配色を切り替える。

  • キーボード操作

    タスク選択や主要操作をキーボードから進められるようにする。

成果・変化

  • 作業開始から記録共有までの統合フローを実装

    タスク選択、顔の存在検出、アプリ利用集計、完了入力、クラウド保存をコード上で接続した。

  • オフライン時の記録保留を実装

    接続回復時に保留データを再送し、結果に応じてキューを更新する処理を構成した。

  • チーム向け作業ダッシュボードを実装

    メンバー、期間、タスク、作業時間、アプリ利用を確認できる画面を構築した。

  • 調査環境でアプリ本体のDebugビルドを確認

    コード署名を除外したmacOS向けDebugビルドが完了することを確認した。

タスクと作業記録をつなぐmacOSアプリ

形態
Native macOS Application
対象
Individual / Team
主な連携
Reminders / Camera / Cloud
確認状態
Implementation / Debug Build Verified

分散した作業の手掛かりを、一つの振り返りへ

リモートワークでは、タスク管理、作業時間、利用したアプリの記録が別々になりやすく、実際の作業を一続きで振り返ることが難しくなります。

RemoVisionはAppleリマインダーを作業の入口にし、在席状態と最前面アプリの利用時間を記録へ加え、終了時の完了状態やコメントとともにチームで確認できる形へまとめます。

Appleリマインダーを作業の入口に

未完了のリマインダーを取得し、リスト選択、期限順表示、タスク追加、名称変更、削除、完了状態の更新をアプリの作業フローへ統合しています。

命名規則から関連タスクを親子としてまとめる仕組みと、複数タスクの選択、キーボードによる移動を備え、既存のタスク管理を起点に作業を開始できます。

顔の存在と最前面アプリを、時間記録の手掛かりに

カメラ入力をApple Visionへ渡し、人物の識別ではなく画像内に顔が存在するかを判定します。調査対象コードでは、顔画像そのものを作業記録として保存する処理は確認されていません。

顔が検出されている時間帯に最前面アプリの切り替わりを追跡し、アプリごとの利用時間を集計します。検出状態が一定時間変化した場合は、画面表示とローカル通知で利用者へ知らせます。

終了時に、完了状態とコメントまで残す

作業終了時には、選択したタスクごとに完了状態とコメントを入力し、リマインダーと共有用の作業記録へ反映します。

複数タスクを同時に選んだ場合、作業時間はタスク間へ均等に配分されます。入力を簡潔にする方式であり、タスクごとの厳密な個別計測ではないという境界も明示しています。

グループ単位で作業記録を共有

CloudKitを用いてグループ、メンバー、作業セッション、タスク、コメント、アプリ利用情報を関連付け、チームで参照できるデータへまとめます。

グループ作成と招待導線を備え、参加後は同じチームの記録をメンバー別・期間別に振り返れる構成です。公開情報では内部識別子や具体的なアクセス設定を扱いません。

メンバー・期間・タスクを切り替えるダッシュボード

管理画面では、メンバー、期間、親タスクを切り替えながら、作業時間、完了数、タスク別の内訳、アプリ利用構成、コメント、開始・終了時刻を確認できます。

Swift Chartsと独自の積み上げ表示を使い、細かな項目をまとめながら、個人とチームの作業傾向を読み取りやすい形へ整理しています。

通信断でも終了操作を止めない保留・再送設計

通信できない場合は作業セッションを端末側の保留キューへ一時保存し、ネットワーク状態の回復を検知した後に再送します。

再送結果に応じて成功分と未完了分を分け、利用者が作業終了操作を継続できるようにしています。共有先への反映が完了したかは通信状態に依存します。

記録件数の増加を見越した保存・取得・キャッシュ

CloudKitへの保存は複数件へ分け、読取はカーソルを使って続きから取得できるようにし、記録件数が増えても処理を継続できる構成にしています。

取得済みの集計対象はSwiftDataへキャッシュし、過去データの再表示を補助します。クラウド側の正本と端末側の読取キャッシュは役割を分けて扱います。

macOSの表示と操作へなじむUI

オンボーディング、権限説明、タスク選択、作業中、終了入力、管理ダッシュボードをSwiftUIで構成し、画面間で状態を引き継ぎます。

ライト・ダークモードに合わせて主要画面の配色を切り替え、タスク選択と主要アクションにはキーボード操作も用意しています。

扱うデータと権限の境界を明確にする

カメラ、リマインダー、アクセシビリティ、通知、クラウド共有を組み合わせるため、それぞれの権限が何に使われるかをオンボーディングと権限画面で説明します。

共有対象にはタスク、コメント、作業時間、アプリ利用情報が含まれます。公開・運用時には、共有範囲、アクセス制御、保持・削除方針を実際の設定と一致させて案内することが重要です。

実装済み範囲と検証状態を分けて記載

調査環境では、コード署名を除外したmacOS向けDebugビルドが完了することを確認しました。主要機能はコードと画面実装を根拠に整理しています。

一方、自動テストは機能検証を担う状態ではなく、配布用ビルド、ストア審査、公開状態、利用実績は確認していません。そのため、公開内容では実装の存在と配布・運用の成立を分けて扱います。