← All work

Case study · 02

Android App

共有からカレンダー

連絡文を、そのまま予定へ

『来週火曜の18時に集合』のような連絡を受け取ったあと、日時を覚えてカレンダーへ転記する手間を減らすAndroidアプリです。自然文の曖昧さを自動判定だけで隠さず、候補を人が確認してから登録できる流れにしました。

共有からカレンダーの画面
FIELDAndroid App
TOOLSKotlin · Android Sharesheet · 日時解析 · Calendar連携
FOCUS共有導線 · 曖昧な日時の確認 · 予定・タスクの一体管理
01

What it does

できること

文章から日時候補を抽出の画面
01

文章から日時候補を抽出

他アプリから共有された文章を解析し、日付、開始時刻、予定名の候補を作ります。『明日』『来週』『18:30』など形式が異なる表現を、現在日時を基準に解釈します。

  • 元の文章を残して確認できる
  • 複数候補がある場合は選択させる
  • 未確定項目は推測せず入力を求める
予定とタスクを整理の画面
02

予定とタスクを整理

日時が確定している予定だけでなく、期限だけ決まっている作業も同じ場所で扱えるようにしました。重要度を付け、今日見るべき項目が先に分かる構成です。

  • 重要度による分類
  • 完了状態の切り替え
  • 予定化できない文章もタスクとして保持
月と日の2つの視点の画面
03

月と日の2つの視点

月表示では空いている日を把握し、日表示では実行順を確認できます。同じデータを目的に応じて見せ分け、情報を一画面へ詰め込みすぎないようにしました。

  • 月表示は件数と存在を優先
  • 日表示は時刻と内容を優先
  • 選択中の日付を常に視覚化
02

Why I made it

きっかけと課題

メッセージで予定を受け取るたびに、アプリを切り替え、文章を見直しながら日時と件名を手入力していました。短い作業ですが頻度が高く、転記ミスも起きやすい点に課題を感じました。

目標を完全自動登録にはしませんでした。自然文には曖昧さがあるため、抽出で入力を減らし、最後の確認は人が行う『半自動』が安全性と速さのバランスに優れると考えたためです。

03

Process

進め方・実装手順

  1. 01

    表現パターンを収集

    実際の連絡文を、絶対日付、相対日付、曜日、時刻、期間に分類し、どの情報が省略されやすいかを整理しました。

    OUTPUT — 日時表現のパターン表
  2. 02

    共有テキストを受け取る

    Androidの共有先としてアプリを表示し、受け取った文字列を解析画面へ渡します。空文字やURLだけの共有も例外として扱います。

    OUTPUT — 共有入口と受信確認
  3. 03

    候補を段階的に解析

    明示された年月日を優先し、次に『今日・明日・来週』、最後に曜日を解釈します。時刻がなければ勝手に補わず未入力にします。

    OUTPUT — 解析ルールと候補モデル
  4. 04

    確認画面を設計

    抽出した予定名、日付、時刻を編集可能な項目として並べ、元文章と見比べてから登録できるようにしました。

    OUTPUT — 登録前レビュー画面
  5. 05

    境界条件を検証

    月末、年末、日付をまたぐ時間帯、同じ文中に複数日時がある場合をテストし、誤登録しやすい条件を洗い出しました。

    OUTPUT — 日時解析テストケース
04

Problems & decisions

苦労したこと

01『来週火曜』の解釈
PROBLEM

現在の曜日や利用者の感覚によって、相対日付が指す日が変わることがあります。

APPROACH

解析結果を確定値として隠さず、具体的な年月日へ変換して確認画面に大きく表示しました。

RESULT

自動化の便利さを保ちながら、意図しない日付への登録を防ぎやすくしました。

02文章中に候補が複数ある
PROBLEM

締切と開催日が同じ文章に含まれると、どちらを予定にすべきか自動では判断できません。

APPROACH

すべての候補を一覧にし、利用者が選んだ日時だけをフォームへ反映する設計にしました。

RESULT

誤った一件を自動登録するより、選択できることを優先しました。

03月表示の情報量
PROBLEM

予定名をすべて表示すると小さな画面で読めず、日付の把握もしにくくなりました。

APPROACH

月表示は予定の有無と件数に絞り、選択した日の詳細を別領域で見せました。

RESULT

俯瞰と詳細の役割が分かれ、目的の日へ移動しやすくなりました。

05

Reproduction guide

再現するための手順

未来の自分や、同じものを作りたい人が迷わないように、最短の再現手順を残します。

1. 10〜30件の連絡文を集める

個人情報を除いた例文を作り、日付表現を分類します。先にデータを見ることで、正規表現を場当たり的に増やすのを防げます。

2. 日時を内部形式へ統一する

抽出結果は表示文字列のまま持たず、日付、時刻、タイムゾーン、確信度、元文字列に分けて管理します。

3. 確認画面を先に完成させる

解析精度が低い段階でも手入力で予定を作れる画面を用意します。その後、解析できた項目だけを自動入力する形で育てます。

4. 端末のカレンダーへ渡す

登録前に件名・日時・説明を最終確認し、端末標準の予定作成画面または許可されたカレンダー連携へ渡します。

06

Reflection

振り返り

WHAT I LEARNED

  • 曖昧な入力では、正解を装うより確認可能性を高める
  • 月表示と日表示は同じ情報を縮小するのではなく役割を分ける
  • 日時処理は通常例より月末・年末・複数候補のテストが重要
NEXT STEP

利用者が修正した結果を端末内で学習材料として蓄積し、よく使う時間帯や予定名の候補を優先できるようにしたいです。

NEXT PROJECT

Infrastructure

自宅サーバー

→