チン!する時間 アイコン
Architecture Case Study 03 · Live OS Surfaces & Adaptive Utility

チン!する時間:Live Activities / Dynamic Island 常駐計測 & 多形態最適化アーキテクチャ Chin! Suru Jikan: Live Activities, Dynamic Island & Adaptive Form-Factor Architecture チン!する時間:Live Activities / 灵动岛常驻倒计时与全尺寸形态适配架构

100W〜1500W 電子レンジ熱量換算・OSライブタイマー・タブレット/折りたたみUI Dual-native iOS/Android thermal wattage converter with OS-level live countdown surfaces 12 档功率秒级换算 · iOS 灵动岛与 Android 前台常驻计时 · 平板与折叠屏自适应应用

コンビニ弁当の「500W 3分20秒」を自宅の 600W や 700W に即座に換算し、ワンタップでタイマーを開始できるキッチン特化ユーティリティ。単なる電卓アプリにとどまらず、iOS では ActivityKit(Live Activities & Dynamic Island) と WidgetKit、Android では Foreground Service 常駐タイマーと Jetpack Glance (2×2) ウィジェットを統合し、iPad・タブレット・折りたたみ端末を含むマルチフォームファクタ最適化と RevenueCat + StoreKit 2 / Play Billing による堅牢なハイブリッド課金基盤を備えています。 Built for zero-friction kitchen ergonomics when food packaging lists 500W while your microwave runs at 600W or 700W. Going far beyond a simple calculator, it projects live countdowns directly onto persistent OS surfaces via iOS ActivityKit (Live Activities & Dynamic Island), Android Foreground Service notifications, and WidgetKit / Jetpack Glance home widgets—wrapped in adaptive layouts for phones, iPads, tablets, and foldables alongside RevenueCat hybrid monetization. 聚焦日本便利店/冷冻食品包装标注“500W 加热时间”而家中微波炉是 600W/700W 的日常换算痛点,做到“打开 1 秒换算并一键起表”。工程上深度打通系统级常驻展示面:iOS 端接入 ActivityKit(锁屏 Live Activities 与灵动岛 Dynamic Island) 及 WidgetKit,Android 端构建 Foreground Service 前台常驻倒计时 与 Jetpack Glance (2×2) 卡片,并针对平板与折叠屏大屏定制双栏响应式布局及 RevenueCat 容错内购体系。

iOS ActivityKit & Dynamic Island Android Foreground Service 100W–1500W (12-Tier) Thermal Matrix 120-Food Reference Table WidgetKit & Jetpack Glance (2×2) Adaptive iPad / Tablet / Foldable UI RevenueCat + StoreKit 2 / Play Billing + AdMob

システムアーキテクチャ構成図 System Architecture Diagram 系统架构图

熱量換算コア・多形態UI・OSライブサーフェス連携トポロジ Thermal Engine, Adaptive Form-Factor UI & Live OS Surface Topology 热能换算核心、全形态自适应层与 OS 实时常驻表面拓扑
1. THERMAL CONVERSION CORE 12-Tier Wattage Engine 100W · 200W · ... · 500W · 600W ... 1500W T_target = T_src × (W_src / W_target) 1-Tap Bidirectional Swap · Persistent Presets 120-Food Reference Matrix Auto-Scroll Sync & Nearest Time Highlight Bento, Frozen Meals, Beverages, Defrosting Timestamp-Anchored Timer State Wall-clock delta eliminates drift in background 2. ADAPTIVE UI & MONETIZATION Multi-Form-Factor Adaptive Layouts • Phones: Compact One-Handed Ergonomics • iPad / Tablets: Split-Pane Matrix + Dial • Foldables: Hinge-Aware Responsive Panes Dynamic rotation & multi-window resizing RevenueCat + Hybrid Monetization • RevenueCat SDK + StoreKit 2 / Play Billing • Non-Consumable: Lifetime Pro Ad-Free • Consumable: Repeatable Developer Tip Jar • AdMob Adaptive Banner (Gated when Pro) 3. OS-LEVEL LIVE SURFACES iOS ActivityKit • Dynamic Island (Compact / Expanded) • Lock Screen Live Activities Progress Bar Real-time countdown visible across any app Android Foreground Service • Persistent Lock-Screen Countdown Alert • Pause / Add 10s / Cancel Inline Actions High-priority completion alarm chime WidgetKit & Jetpack Glance (2×2) Quick launch directly from Home Screen Live Timer Bus (Timestamp Delta)

図:「チン!する時間」のシステム設計。終了予定時刻ベースの状態管理エンジンにより、Dynamic Island や Android フォアグラウンド通知上でも誤差なくリアルタイムにカウントダウンを同期します。 Figure: Chin! Suru Jikan system topology. A timestamp-anchored timer engine drives live progress seamlessly across iOS Dynamic Island, Android Foreground Services, and adaptive multi-device layouts. 图:「チン!する時間」系统架构图。基于结束时间戳锚定的计时状态机直接驱动 iOS 灵动岛、Android 前台常驻通知与全尺寸屏幕上的 12 档速查联动。

技術実装の深掘りポイント Engineering Deep-Dive 核心工程实现深度拆解

01 · OS Live Surfaces

iOS ActivityKit (Dynamic Island) & Android Foreground Service リアルタイム統合 iOS ActivityKit (Live Activities / Dynamic Island) & Android Foreground Service iOS 灵动岛 / 锁屏实时活动与 Android 前台常驻倒计时

レンジ加熱中の1〜5分間、ユーザーはスマホで別アプリを見たり料理の支度をしたりします。アプリを閉じても残り秒数が視界に入り続ける OS 常駐サーフェスを両OSネイティブで実装しました。 While waiting 2–3 minutes for food to heat, users rarely stare inside a timer app. Both platforms project live countdowns directly onto persistent system surfaces. 等待微波炉加热的几分钟内,用户通常会在手机上看资讯或锁屏备菜。我们通过双端原生实时表面保障跨应用时的倒计时可见性:

  • iOS ActivityKit & タイムスタンプ描画:OS側タイマーテキスト(Text(timerInterval:countsDown:))を活用し、バックグラウンドで毎秒アプリを起動せずとも Dynamic Island とロック画面のカウントダウンを滑らかに更新します。
  • Android Foreground Service & Glance 2×2:ロック画面通知から直接タイマーのキャンセルや終了音確認ができ、ホーム画面向けには Jetpack Glance の 2×2 ウィジェットを提供しています。
  • Zero-Wake iOS ActivityKit: Uses Text(timerInterval:countsDown:) so Live Activities and the Dynamic Island tick smoothly at 1Hz at zero CPU wake cost.
  • Android Foreground Service + Glance 2×2: Maintains a live countdown chronometer alert on the lock screen with quick-action controls alongside a compact Jetpack Glance home widget.
  • 零功耗唤醒的 iOS 灵动岛:利用系统原生 timerInterval 进行倒计时渲染,应用挂起后依然在灵动岛与锁屏丝滑递减。
  • Android 前台常驻与 Glance 小组件:通过前台服务保障倒计时高优置顶与锁屏快捷操作,并配备 2×2 桌面卡片一触直达。
02 · Thermal Matrix Engine

100W〜1500W 12段階熱量変換 & 120食品早見表の自動スクロール連動 12-Tier Thermal Wattage Matrix & 120-Food Auto-Scroll Reference Engine 12 档热功比换算模型与 120 项食品速查自动定位引擎

日本の業務用 1500W レンジから省エネ・解凍用 100W 出力まで全12段階のワット数をカバーし、決定論的な熱エネルギー保存式で正確かつ丸め誤差の少ない加熱時間を算出します。 Covers 12 wattage tiers from 100W defrosting to 1500W commercial convenience-store units, calculating exact thermal-equivalent durations paired with a live interactive lookup table. 覆盖日本便利店商用 1500W 至家庭解冻档 100W 的全部 12 档功率,基于热能等效公式精确计算并实时联动食品速查库:

  • 双方向ワット数スワップ:「500W ⇄ 600W」のように元ワットと自宅レンジ出力をワンタップで反転でき、自宅出力をローカル永続化して毎回の設定操作を省きます。
  • 120項目早見表の自動追従:入力・換算された分数・秒数に最も近い目安エントリへ 120品目テーブルが自動スクロール&ハイライトされ、加熱ムラ防止の目安を即確認できます。
  • One-Tap Bidirectional Swap & Sticky Defaults: Swaps source and target wattages in one tap while persisting home microwave output across sessions.
  • Auto-Scrolling 120-Entry Matrix: Automatically scrolls and highlights the matching duration row in the 120-item bento/frozen-food matrix as inputs change.
  • 一键双向对调与记忆默认:一键对调“包装标注功率 ⇄ 自家微波炉功率”,自动记住家用功率免去重复选择。
  • 120 项食品速查自动高亮滚动:输入秒数变更时,下方 120 项日本便当/冷冻食品参考表自动滚动至最接近档位并高亮提示。
03 · Adaptive Multi-Device UI

スマホ片手操作・iPad・Androidタブレット・折りたたみ端末対応の可変レイアウト Multi-Form-Factor Adaptive Layouts (Phone, iPad, Tablet & Foldable) 覆盖手机单手、iPad、安卓平板与折叠屏的自适应大屏布局

キッチンに立てかけたタブレットや見開きの折りたたみスマートフォン、さらにはiPhoneでの片手操作など、多様な利用姿勢で操作性が損なわれないアダプティブUIを構築しています。 Whether held one-handed beside a convenience-store microwave or propped open on an iPad or foldable kitchen stand, the UI adapts dynamically to viewport classes. 无论是便利店炉前手机单手极速点按,还是支在厨房台面上的 iPad、安卓平板与展开后的折叠屏,UI 均随窗口尺寸自动重组:

  • 2ペイン動的切替:Compact 幅では縦スクロール&親指届く下部コントローラを優先し、Regular/Expanded 幅(タブレット・折りたたみ展開時)では「変換ダイアル+タイマー」と「早見表」を左右並置します。
  • 誤操作を防ぐ触覚フィードバック:ダイヤル・プリセットボタン押下時に微細なハプティクスを発火し、濡れた手や慌ただしい調理中でも確かな操作感を伝えます。
  • Single-Pane vs. Split-Pane Transformation: Prioritizes thumb-reachable bottom controls on compact phones, expanding into side-by-side calculator and 120-food matrix panes on iPads and foldables.
  • Tactile Precision: Pairs large tap targets with crisp haptic feedback for reliable interaction during fast kitchen prep.
  • 单栏 / 双栏智能形态切换:窄屏手机端将高频按键收拢至拇指舒适区;宽屏平板及折叠屏展开时自动拆分为“左计时换算 + 右 120 项速查表”双栏工作台。
  • 防误触大热区与触觉反馈:旋钮与快捷按钮均配备大热区和轻触觉震动,厨房忙碌场景下盲操不出错。
04 · Fault-Tolerant Billing

RevenueCat SDK × StoreKit 2 / Play Billing ハイブリッド収益化アーキテクチャ Hybrid Monetization & Fault-Tolerant Entitlements (RevenueCat) RevenueCat 混合变现体系与离线内购权益容错

基本機能すべてを無料で開放しつつ、快適な維持運用と応援購入(Tip Jar)を両立するため、RevenueCat SDK とネイティブストア課金を組み合わせた耐障害収益化基盤を実装しました。 Keeps every core conversion and timer feature completely free while supporting sustainable operations via RevenueCat SDK backed by StoreKit 2 and Play Billing. 核心换算与灵动岛倒计时功能全量免费,在此之上通过 RevenueCat SDK 对接两大商店底层计费实现可持续运营:

  • 買い切りPro + 消耗型応援チップ:非消耗型の「広告完全削除 Pro パック」と、ユーザーが任意のタイミングで何度も支援できる消耗型「開発者応援チップ(Tip Jar)」を同一フロー内で統合管理しています。
  • オフライン資格キャッシュ:圏外の地下食品売り場などでも Pro 資格キャッシュを検証し、広告の誤表示を防ぐフェイルセーフ制御を組み込んでいます。
  • Non-Consumable Pro + Consumable Tip Jar: Handles both permanent ad-removal entitlements and repeatable consumable supporter tips with unified receipt validation.
  • Offline Entitlement Caching: Caches verified Pro status locally so ad suppression stays reliable even inside subway basements or low-signal supermarkets.
  • 买断去广告 + 消耗型打赏并行:同时管理永久买断制(Pro 去广告)与可重复购买的消耗型商品(开发者咖啡打赏),并共享同一校验队列。
  • 低信号离线容错:本地加密缓存已校验的 Pro 凭证,即使处于信号极弱的地下超市/便利店也不会误弹广告。

技術スタック・仕様比較マトリクス Technical Stack & Implementation Matrix 双端技术栈与架构规格对照表

レイヤー / 機能 Architecture Layer 架构层级 / 模块 iOS Implementation Android Implementation 設計意図・特徴 Architectural Highlight 工程特性与设计优势
Live Timer Surface ActivityKit (Lock Screen Live Activities & Dynamic Island) Android Foreground Service + Persistent Countdown Notification 他アプリ使用中や画面ロック中でもカウントダウンを常時表示 Continuous timer visibility outside the foreground app 脱离主界面与锁屏状态下依然保持毫秒准确实时显示
Home Widgets WidgetKit (Quick Wattage Converter Widget) AndroidX Jetpack Glance (2×2) ホーム画面からのワンタップ起動とよく使うワット数連携 Compact home-screen shortcuts for daily cooking routines 桌面极简卡片一触进入高频换算流程
Adaptive Layout SwiftUI Size Classes (iPhone & iPad Multi-Column Adaptation) Jetpack Compose WindowSizeClass (Phone, Tablet & Foldables) 折りたたみ端末やタブレットでの2ペイン同時表示に最適化 Seamless single-pane to split-pane responsiveness across devices 自动探测窗口断点,适配平板与折叠屏展开态双栏操作
Monetization RevenueCat SDK + StoreKit 2 + AdMob RevenueCat SDK + Google Play Billing + AdMob 買い切りPro+消耗型応援チップ+オフライン資格保持 Reliable Pro lifetime unlock, tip jar IAPs & offline caching 统筹永久去广告、反复打赏消耗品与离线权益防闪退机制