Masahiro Iinuma

思いついたものを、
出せるところまで作る。

iOS アプリ、ヘルスケアのデータ基盤、レーザー描画装置。 企画・設計・実装から App Store 審査・サポートページ運用まで、ひととおり自分でやっています。 動くところで止めず、人が使える状態にするまでを一区切りにしています。

iOS / SwiftUI HealthKit AWS · Azure · Firebase AI / LLM ESP32 · 電子工作

iOS アプリ

RELEASED / TESTFLIGHT

App Store で公開中のもの、TestFlight で配布中のもの、そして手元で動かしているもの。配布しているものは、サポートページとプライバシーポリシーも自分で用意して運用しています。

App Store 公開中

AtriumVita

Dynamic Island × HealthKit — 身体データの「変化」に気づくためのアプリ

健康データは、見ようと思わないと見ません。かといって通知にすると強すぎる。 その中間として Dynamic Island に ひとつの数値だけを出し続けるアプリです。 意味づけはせず、数値と矢印だけを出して、解釈はそのまま持ち主に委ねています。

  • 心拍・HRV・SpO2・歩数を HealthKit から取得し、常に 1 指標だけを表示
  • 変化が起きた指標が数秒だけ割り込み、また元に戻る優先度ロジック
  • 秒まで出る時計モード。バッテリー残量と Wi-Fi / セルラーも同時表示
  • v1.5 まで継続的にアップデート。iOS 側の制約は仕様として明文化
SwiftUIActivityKitHealthKitWidgetKitBGTaskScheduler
TestFlight 配布中 · 9拠点で稼働

虹予報 / Aloha Rainbow

「今、外に出て空を見る価値があるか」を知らせるアプリ

虹が出ていると言い切れる人はいません。でも「今すぐ外を見て」なら言えます。 そこだけを担当するアプリです。9 拠点の AWS Lambda が 10 分ごとに虹スコアを計算して S3 に配信し、 条件が揃った地域の端末にだけ通知を送ります。

  • 拠点:東京・宮古島・沖縄・鹿児島・名古屋/Oahu・Maui・Kauai・Big Island
  • 気象庁の高解像度降水ナウキャスト(250m・毎分更新)と NOAA MRMS(500m)を、外部ライブラリなしの純 Python で直接パース。汎用の 10km モデルでは拾えない局所的な雨を検出する
  • 太陽高度・頭上の雨・太陽方向の雲を条件にし、反太陽方向を扇状(±40°×2〜8km)にサンプリングして「前方に雨があるか」を判定
  • 通知は位置情報の許可レベルで出し分け。「常に」なら 2 時間先の予報まで、「使用中のみ」なら現在値のみ。1 端末につき朝夕 1 回まで
  • 虹の目撃報告は 2km グリッドに丸めて保存し、自宅の座標が残らないようにしている
AWS LambdaS3DynamoDBSNS / APNsPythonSwiftUI気象庁ナウキャストNOAA MRMS
App Store 公開中

AquaTide

iPhone / Apple Watch

iPhone と Apple Watch の両対応アプリ。App Store Connect 連携、サポート・プライバシーポリシーのページまで含めて公開・運用しています。

SwiftUIwatchOS
制作物

RouteReplay

歩いたルートをストリートビューで再生する

GPX を読み込むと、通った道をストリートビューで順に再生します。 作る前に実測ルートでパノラマのカバー率を検証し、256 点すべてで取得できることを確かめてから実装に入りました。

  • 課金モデルの違う 2 方式を作り分け。360° 見渡せる版と、画像を端末にキャッシュして 2 回目以降は無料になる節約版
  • GPS の揺らぎを Douglas-Peucker 法で平滑化してから等間隔に取り直す
  • mp4 書き出しに対応。地図を重ねて「どこを通ったか」も同時に見せる
  • 実機のメモリ不足を、フレームを溜め込まず 1 枚ずつ書き出す方式に変えて解消
SwiftUIGoogle Maps SDKStreet View APIAVAssetWriterPython
制作物

GeoInk

歩いた軌跡で、地図に絵を描く

地図上に図形を置いてスケールと回転を決めると、実際の道路に沿った歩行ルートを生成します。 あとはそこを歩くだけで、軌跡が図形になります。iPhone と Mac の両対応で、Mac で設計して iPhone で歩けます。

  • ハート・クローバー・魚・紙飛行機などのプリセットを、正規化座標から現在の地図範囲へ変換して配置
  • 記録した軌跡を GPX で共有できるが、点ごとの時刻はあえて書き出さない。位置と時刻と速度が揃うと生活パターンを特定できてしまうため、合計距離と合計時間だけを残す設計にした
  • 記録中にアプリが落ちても、コースと軌跡と経過時間ごと復元して記録を再開する
SwiftUIMapKitMKDirectionsCoreLocationiCloudMac Catalyst

ヘルスケアのデータ基盤

RUNNING

Apple Watch から取れる生体データを、家族や医療の現場で「見られる形」にするための仕組みです。

稼働中

見守りシステム(大学研究室との共同利用)

Apple Watch → HealthKit → iPhone → Firestore → Web ダッシュボード

訪問医療・家族見守りを想定した、健康データの収集・閲覧システム。 iOS アプリで HealthKit のデータを集め、Firestore に送り、Web の管理ダッシュボードでリアルタイムに閲覧します。 実機での動作確認とダッシュボードの公開運用まで完了しています。

  • 安静時心拍 / 時系列心拍 / HRV(SDNN) / 歩数 / 消費カロリー / 呼吸数と呼吸変動 / 手首皮膚温Δ / 睡眠ステージを収集
  • 睡眠スコアと自律神経指標は、断定ではなく「変化の参考値」として独自に算出
  • HealthKit と Oura API の指標差(HRV の SDNN と RMSSD の違いなど)を公式仕様に当たって比較検証し、根拠つきで文書化
  • 利用者は匿名で管理し、識別名だけを運用で持つ設計
SwiftUIHealthKitFirebase FirestoreFirebase HostingOura API
開発・運用中

Musubu / Amane

家族見守り・体調の可視化

体調を数値ではなく「状態」として見せるアプリ。円の満ち具合で表示し、離れて暮らす家族が 「大丈夫そうか」だけを一目で分かるようにしています。

  • 本人用と家族用(Viewer)を同じアプリで切り替える構成
  • 医療アプリにしないための表現設計 — 診断・検知ではなく状態・傾向・参考に統一
  • Sign in with Apple、プライバシーポリシー整備済み
SwiftUIHealthKitFirebaseSign in with Apple
制作物

その他の iOS プロジェクト

手元で動いているもの

いずれも仕様を書いたうえで実装し、実機で動作するところまで作っています。

  • CommuteCountdown — 通勤の乗り換えカウントダウン
  • はかる — 採寸表アプリ
  • RadiusMap — ジオフェンス確認用の地図
  • Gym Pose Overlay — フォーム確認用のポーズ重ね表示
  • ScreenshotStitcher — スクリーンショットの自動連結
  • GIF エディタ — アニメーション GIF の編集
SwiftUIMapKitVision

ハードウェア

MAKER

画面の中だけでなく、実際に物として動くものも作っています。

Maker Faire Tokyo 2026 出展予定 · 特許申請中

空間に描くレーザーお絵描き

レーザーガルバノ描画装置 + BeamTrace(iOS アプリ)

ESP32 で 2 軸のガルバノミラーを高速に振り、グリーンレーザーで空間に線画を描く装置です。 スマホアプリで描いたイラストをその場でリアルタイムに投影できます。 設置型の新しい広告媒体・アート表現としての活用を提案しています。

レーザーで描画した作品9点。だるま、花、クリスマスツリー、ハート、地球、バラ、猫、非常口のピクトグラム、サインの線画。
実際に描画したもの。一筆書きの経路をどう組むかで、線の重なりと見え方が変わる。
BeamTrace — iPad で描いた線を座標データ(JSON)に変換し、そのままレーザーの走査制御に渡している。 画像をクリックで拡大
ESP32ガルバノミラーグリーンレーザーiOS 連携
試作

サーマルアレイ・モニター

AMG8833 赤外線アレイセンサー

8×8 の赤外線アレイセンサーで温度分布を取り、離れた場所から「熱の様子」を見るための装置。用途を変えて 2 種類作りました。

  • 防火モニター — 温度の異常な上がり方を検知する
  • 料理温度モニター — 調理中の面の温度分布を見る
ESP32AMG8833温度分布可視化
試作

AI カラス検知

画像認識 + 通知

カメラ映像からカラスを検知して通知する仕組み。農地や施設まわりの被害対策を想定した小規模構成です。

画像認識通知連携
試作

電池駆動デバイスの設計

実測ベースのノウハウ

自作デバイスを電池で動かすときの勘所を、データシートではなく実測で詰めています。

  • 実際の下限は保護回路ではなく LDO のドロップアウトで決まる
  • 寿命を決めるのは稼働電流ではなく待機電流
  • 精度が 4 段階しかないなら、残量表示も 4 段階にする
ESP32電源設計ADC

つくり方

作るものより、進め方のほうが一貫しているかもしれません。

先に仕様を書く

着手する前に仕様書を書き切ります。書けないものは、だいたいまだ分かっていないものです。

できないことを書く

「iOS の仕様上ここは回避できない」といった制約と既知の不具合を、仕様書に明記します。次に触る人が同じ壁で消耗しないように。

出し切るまでやる

動いたところで止めません。審査提出、プライバシーポリシー、サポートページまで含めて一区切りとしています。

AI と組んで作る

設計と判断は自分で持ち、実装は AI コーディングエージェントと進めます。だから仕様書の質がそのまま成果物の質になります。

使っている技術

領域内容
モバイルSwift / SwiftUI、watchOS、HealthKit、ActivityKit(Dynamic Island)、WidgetKit、MapKit、App Store 審査・運用
クラウドAWS(Lambda / DynamoDB / API Gateway / S3 + CloudFront / Bedrock / CDK)、Azure(OpenAI / AI Search / Functions)、Firebase
AI / LLMRAG(チャンク設計・ハイブリッド検索・出典付与)、ローカル LLM、AI コーディングエージェントを前提とした開発フロー
組込みESP32、ガルバノミラー制御、AMG8833 サーマルアレイ、BLE、電池駆動設計

連絡先

アプリの不具合報告・ご感想、レーザー装置の展示や活用のご相談、その他おしごとのお話など、 お気軽にご連絡ください。

async.sync@gmail.com