DeviceTickが解決する課題
在宅勤務やハイブリッドワークが普及する中で、PC、スマートフォン、タブレットなど複数の端末を使い分けることが一般的になりました。しかし、タイマーアプリは通常、端末ごとに独立して動作するため、「PCで開始したタイマーをスマホで操作する」といった素朴な操作は、ほとんどのアプリで実現できませんでした。
既存のオープンソースタイマーアプリの多くは、単一端末での利用や「終わった記録」の同期にとどまっており、「いま動いているタイマー」を端末をまたいでリアルタイムに同期させる選択肢は限られていました。

DeviceTickは、この課題を解決するために開発されたタイマー同期エンジンと、そのWebクライアントのセットです。
DeviceTickの主な特徴
DeviceTickは、以下の4つの特徴を同時に満たしています。この組み合わせを満たすOSSタイマーは、現時点ではごく限られています。
-
ライブ同期: 履歴ではなく、「今この瞬間に走っているタイマー状態」をすべての端末で揃えることができます。
-
ログイン不要・URLのみで即参加: アカウント登録は不要で、共有リンクを1本渡すだけで、他の端末や参加者が同じセッションに参加できます。
-
公開プロトコル付き: JSON SchemaでAPI契約を公開しており、第三者がCLIツール、デスクトップアプリ、物理タイマー連携など、独自のクライアントを構築可能です。
-
極めて軽量なセルフホスト: Go単一バイナリで動作し、データベースも不要です。Docker Composeを使えば1コマンドで起動でき、個人VPSやRaspberry Piなどの低リソース環境でも運用できます。
リポジトリはこちらで確認できます。
https://github.com/NITI-Lab/DeviceTick
DeviceTickの独自性
1. 端末間で時計がズレない仕組み
タイマーの「いま何秒経ったか」はサーバー側で一元管理され、その情報がすべての端末に配信されます。これにより、各端末の時計にわずかなズレがあっても、スリープから復帰しても、画面に表示される残り時間は常に揃います。ポモドーロの集中と休憩の切り替えもサーバーが判定し、すべての端末に伝えるため、ある端末だけが切り替わり損ねる心配がありません。
2. リンク1本で参加完了
ルームを作成すると短いIDが発行され、そのURLを共有するだけで、他端末や他の参加者が同じセッションに参加できます。アカウント登録やメール認証、アプリのインストールは一切不要です。チャットへのURL貼り付け、QR経由での即時共有、講師から受講者への一括配布など、共有のための手間はかかりません。
3. カウントダウンとポモドーロをひとつのアプリで
シンプルなカウントダウン(任意の分数)と、ポモドーロ(集中→休憩のサイクル、複数セット)を同じアプリ、同じ操作感で利用できます。両モードを使い分けるためにアプリを切り替える必要はありません。
4. 他の開発者が連携アプリを作れる、開かれた仕様
DeviceTickはAPI仕様(リクエスト・レスポンス形式、配信イベントの形式)を公開ドキュメントとして提供しています。これにより、第三者が独自のCLIツール、デスクトップアプリ、Raspberry Piなどを使った物理タイマーとの連携、社内ツールへの組み込みなどを、DeviceTick本体のソースを読まずに開発できます。これは、「DeviceTickの実装を広めること」以上に、「この同期モデルを共通基盤として広げること」を意図した設計です。
5. 自分のサーバーで動かせる、超軽量設計
データベースの構築も、複雑なセットアップも不要で、1コマンドでWeb画面とAPIサーバーが起動します。個人VPS、社内サーバー、Raspberry Piクラスのハードウェアでも運用可能です。「タイマーを共有するためにクラウドサービスへの依存を増やす」必要はありません。

利用シーンの例
-
個人のマルチデバイス併用: デスクのPCで作業しながら、手元のスマートフォンで残り時間を確認・操作できます。
-
リモートチームの集中ブロック共有: 離れた場所にいるメンバーと同じ25分のポモドーロを共有し、集中して作業できます。
-
オンライン授業・勉強会・ワークショップ: 講師がチャットにURLを貼るだけで、受講者全員の画面のタイマーが揃います。
-
試験運用・ペアプロ・モブプロ: 立会人や進行役が操作し、参加者全員の画面に同じ残り時間が表示されます。
-
物理ハードウェア連携(将来): 公開仕様経由で物理ポモドーロタイマーを同じセッションに接続できるでしょう。
オープンソースとして公開する理由
DeviceTickは、特定のクラウドサービスや特定のアプリに閉じない「複数端末でタイマーを揃える」体験そのものをOSSとして提供することを目的としています。API仕様を先行公開しているのは、DeviceTick本体実装の普及以上に、この同期モデルと仕様が共通基盤として広がることを志向しています。MITライセンスのもと、個人・チーム・組織は自由に利用・改変・再配布でき、独自クライアントの実装、社内システムへの組み込み、商用サービスでの利用も可能です。
今後の展望(v0.2 以降)
今後の展望として、ルームPINによるアクセス制限、操作権限の切り替え、PWA対応とモバイルブラウザでのバックグラウンド復帰強化、デスクトップクライアントの開発、公開デモ環境の提供、物理ポモドーロタイマーとの無線連携などが予定されています。
技術的特徴(開発者・技術系メディア向け)
アーキテクチャ概要
-
サーバー権威型モデル: タイマー状態はAPIサーバーが「単一の真実の源」として保持し、すべてのスナップショットにサーバー時刻を含めて配信されます。クライアントはこれを基準に時刻オフセットを補正して描画します。
-
共通ステートマシン: idle → running → paused → running → completedの状態遷移上で、カウントダウンとポモドーロの両モードを扱います。
-
配信モデル: RESTで状態変更を受け付け、成功した変更をWebSocketで接続中の全クライアントに
session.updatedイベントとしてプッシュ配信します。
技術スタック

公開API(抜粋)

スナップショットの完全な型定義は、リポジトリ内の protocol/session.schema.json を参照してください。
株式会社NITI Technologyについて
株式会社NITI Technologyは、最先端のAI技術を駆使し、企業のビジネスプロセスを革新するテクノロジーカンパニーです。「面白さ」を追求しながら、社会の課題を解決し、新しい価値を創造していくことをミッションに、エッジAIや小規模言語モデル開発を行っています。ユニークなアイデアをプロダクトとして形にし、より良い社会を実現しています。
社名: 株式会社NITI Technology
URL: https://nititech.jp/
事業内容: AI製品の開発・販売、企業のDX支援、AI受託開発





コメント