2026-05-25_SCALE_Base_スマホ最適化_v1.206-v1.211
2026-05-25 SCALE Base スマホ最適化大整理(v1.206 → v1.211 / 5バージョン)
10:20 - /handoff 実行
対象システム
SCALE Base (scale-base) — スマホ対応強化と PWA 化のターン。本セッションで v1.206 → v1.211 まで一気に投入。
セッション背景
大串 FB:「SCALE Base の品質は良い感じになってきた。今一番の課題はスマホでの使いづらさ。動いているメンバーは仕事しながら/合間作業/PC触っていない時の作業もあり、ちゃんと計測できていない。アプリリリースもしたい」
→ PWA化 + スマホ操作性 + 認証永続化 + ver更新導線をスマホ対応 を一気に投入。PC-スマホデータ同期は別 ce 案件として設計提案を Vault に記録。
完了タスク(詳細)
ce-2026-05-25-01 PWA化(ホーム画面追加でアプリ風起動)+ スマホ操作性 第一段階 (v1.206→v1.207)
- public/manifest.json 新規(name/short_name=SCALE Base / start_url=/home/ / display=standalone / theme_color / icons 192/180/512 maskable / shortcuts 作業中/朝日報/作業開始)
- public/sw.js 新規(PWA インストール要件を満たす最小 SW・network のみ pass●●●●●●)
- components/ServiceWorkerRegister.tsx 新規(client component で本番のみ register・localhost スキップ)
- app/layout.tsx: Viewport 型 import / metadata.manifest + appleWebApp (capable + statusBarStyle black-translucent) + formatDetection / export const viewport (viewportFit=cover, themeColor=#0f1115 等) / body 内に
- ActiveBoard ステータストグルを 44x44 ヒットエリア + アイコン size 20→22 + active 押下フィードバック
- ActiveBoard 作業停止/終了 / 一括選択フローティングを safe-area-inset-bottom 対応
- WorkLogDock も safe-area 対応(iPhone ホームインジケーター被り解消)
- ビルド 1回失敗: return ( {/* */} <div>...</div> ); は JSX 構文エラー(return内は1要素のみ)→ コメント位置修正で再デプロイ成功
ce-2026-05-25-02 絵文字矢印置換 + verバッジタップ拡大 + PC-スマホ連動 設計提案 (v1.207→v1.208)
- tasks/work-log/page.tsx 386行「→ 作業を始める」→ <ChevronRight /> + スマホで補足非表示
- design/manual/page.tsx 301行「詳しく見る →」→ ChevronRight
- AppVersionBadge.tsx: タップターゲット min-h-[32px] + p-1 -m-1 でヒットエリア拡張 / ピル text 9→10 / padding 増 / active 押下フィードバック
- PC-スマホ連動 設計提案ノート Vault作成: 31_システム開発部/SCALE_Base/2026-05-25_設計提案_作業報告_PC-スマホ連動
ce-2026-05-25-03 スマホ毎回ログインバグ根治 (v1.208→v1.209)
- 真因: lib/auth-context.tsx が認証情報を sessionStorage に保存していた → タブ閉じ/アプリ強制終了で消失 → スマホで顕在化
- 修正: useEffect 読み取り / login 書き込み / logout 削除 を全部 sessionStorage → localStorage に置換
- マイグレーション: 既存ユーザー再ログイン不要なよう、起動時に旧 sessionStorage(SESSION_KEY) と legacy localStorage(scale-base-user) を新 localStorage(SESSION_KEY) に自動コピー
ce-2026-05-25-04 スマホ Header にverバッジ常時表示 (v1.209→v1.210)
- 修正: div を flex flex-col items-end leading-tight で常時表示。ユーザー名のみ hidden lg:block
ce-2026-05-25-05 Header 上部混雑解消 + ActiveBoard 右切れ修正 (v1.210→v1.211)
- AppVersionBadge の version テキストを hidden md:inline → スマホはピルだけ
- ステータス3ボタンセットを hidden md:flex → スマホは丸トグル(cycleStatus 循環)で操作
編集ファイル
public/manifest.json新規public/sw.js新規components/ServiceWorkerRegister.tsx新規app/layout.tsx- PWA メタ + viewport export + SW registercomponents/layout/Header.tsx- verバッジ常時表示components/layout/AppVersionBadge.tsx- タップ拡大 + スマホでverテキスト省略components/layout/WorkLogDock.tsx- safe-area 対応components/tasks/work-log/ActiveBoard.tsx- 計測ボタン拡大 + safe-area + ステータス3ボタンスマホ非表示app/(dashboard)/tasks/work-log/page.tsx- 絵文字矢印→ChevronRightapp/(dashboard)/design/manual/page.tsx- 絵文字矢印→ChevronRightlib/auth-context.tsx- sessionStorage → localStorage 完全置換 + マイグレーションlib/changelog.ts- 5件追記CLAUDE.md- 最新スタンプ更新
デプロイ・バックアップ
- 本日デプロイ回数: 6回(ce-2026-05-25-01 ビルド失敗 1回含む)
- 最終デプロイ: 2026-05-25 10:17 (v1.211)
- 本番URL: https://base.scale-group.co.jp/home/ (HTTP 200 確認)
- 最終 baseline:
scale-base_2026-05-25_101754_post-deploy.tar.gz
試したこと・学び
JSX 構文の罠(再記録)
- return ( {/* コメント */} <div>...</div> ); は無効(return 内は 1要素のみ・コメントと並列不可)
ストレージ寿命の罠(決定版)
- sessionStorage: タブ閉じ/アプリ強制終了で消失
- localStorage: タブ閉じても残る。iOS Safari ITP で 7日アクセスなしで消える可能性
- PWA standalone モード: ITP の影響を受けない(最強の永続性)
- → 認証情報は localStorage + PWA 推奨の組合せが最良
スマホレスポンシブ設計の罠
- shrink-0 で固定幅のボタンを横並び → スマホで右切れ → hidden md:flex + 代替操作提供
ユーザーFB(重要なやつ全部)
- 「スマホでの使いづらさが今一番の課題」
- 「アプリリリースしたい」→ PWA で 95% 解決
- 「スマホだと毎回ログイン求められる」→ sessionStorage → localStorage で根治
- 「スマホでver更新どこから?」→ Header verバッジ常時表示
- 「画面上部にメニューありすぎ / 右側切れてる」→ Header コンパクト化 + ステータス3ボタン非表示
- 「絵文字矢印やだ」→ ChevronRight アイコン置換
注意ポイント・退化リスク
- PC-スマホ連動 (work-log データ KV 同期) は 未実装。設計提案ノートに沿って次の ce で着手予定
- 既存ユーザーは v1.209 切替時に 1度だけ再ログイン必要
- スマホ ActiveBoard のステータス変更は丸トグル(cycleStatus 循環)が唯一の操作
- 退化禁止リスト: ChangelogModal Portal化 / AppVersionBadge ピル切替 / dangling timer 修正 / 朝日報 Enter モーダル / TaskDetailModal 中身空対策
次のセッションで取り得る選択肢
- PC-スマホ連動 実装(最優先) — 4点回答受領後着手(4営業日見積もり)
- スマホ input UX 改善 — 朝日報/作業開始/作業終了
- スマホ見切れ網羅対応 — スクショもらって個別修正