Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
誰も頼んでない機能を出荷した話
Search
Hidetaka Toriyama
May 21, 2026
Programming
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
誰も頼んでない機能を出荷した話
Hidetaka Toriyama
May 21, 2026
Other Decks in Programming
See All in Programming
Claspは野良GASの夢をみるか
takter00
0
190
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
350
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
240
TAKTでAI駆動開発の品質を設計する
j5ik2o
6
1.3k
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
170
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.5k
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
110
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.1k
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
130
Lessons from Spec-Driven Development
simas
PRO
0
190
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Six Lessons from altMBA
skipperchong
29
4.3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
210
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
610
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
300
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Transcript
鳥山 英峻 (Toriyama Hidetaka) 誰も頼んでない機能を出荷した話 // 会員数150万のアプリにLive Activityを入れるまで X: @tori_dev24
00 自己紹介 鳥山英峻(Toriyama Hidetaka) DMM 24新卒 iOSチームサブリーダー 📍 好きなもの
🏕 🎮 🏋 ✈
💬 iOSの最新機能、入れられていますか?
💡 OS固有機能は、ユー ザ ー体験を直接強くする 操作ステップが減る 例:ロック画面で見える アプリを開かなくていい プラットフォームの 体験と地続きになる
Dynamic Island, ウィジェット, App Intents 新機能は そのまま 差別化になる OSの新機能 = 全アプリにとって 平等な競争スタート地点
よくあるステークホル ダ ー懸念 🥺(ごもっとも) 「で、KPIどう変わるの?」 「今期、他案件で手一杯だよね?」 「他社で導入してる事例ある?」
だったら、 ボ トムアップから機能を入れるしかない 💪
00 はじめに - このLTについて 💡 新卒が 誰も頼んでない機能を 出荷してみた件 ター
ゲ ット iOS新機能を「いつか入れたい」と思っている人 LT結論 学べること 提案 → 実装 → リリース までのリアル ボトムアップ提案は、コツで再現性がある ※ 今回技術の話は少なめです🙇
リリース: 2026年4月20日 ver 2.22.0 01 作ったもの紹介 Dynamic Island ロック画面
DL進捗の ライブアクティ ビ ティ
ϓϥοτϑΥʔϜݻ༗ػೳ 01 アイ デ ア提案 - PDMへの直談判 ˢ 🏢
普通の案件(5段階) ✨ 今回(2段階)
01 アイ デ ア提案 - PDMへの直談判 DL進捗の表示 配信作品の予定を表示 レンタル期限切れの表示
DL進捗度合いを ロック画面でも確認可能 公開が近い作品を カウントダウン表示 レンタル作品の 期限切れをLAで通知 ライブアクティ ビ ティを前提に提案 作品名 作品名
01 アイ デ ア提案 - PDMへの直談判 DL進捗の表示 配信作品の予定を表示 レンタル期限切れの表示
DL進捗度合いを ロック画面でも確認可能 公開が近い作品を カウントダウン表示 レンタル作品の 期限切れをLAで通知 ライブアクティ ビ ティを前提に提案 作品名 作品名
01 アイ デ ア提案 - 選定の振り返り ✅ 採用された理由 DL進捗の表示
・Safariで実装されている(Apple公認) ・他配信プラットフォームがやっていない ❌ 採用されなかった理由 配信作品の予定、レンタル期限切れを表示 ・サーバ連携が必要で工数増 ・仕様の制約でリーチが限定的 ・LAの正しい使い方か、断言できない 3案出してから採用基準が見えた → 提案前に意思決定者に評価軸を聞いていれば、それに沿った提案で工数を減らせた
01 アイ デ ア提案 - まとめ 💡 やってみてわかった、アイ デ
アを通しやすくする型 ̎ Apple公認での安心感 × 競合未対応 を見つける → Apple純正アプリにあるが、競合にない機能 ユー ザ 動線が増える機能を選 ぶ → ロック画面/ウィジェット など。ユーザ導線が増えてマイナスなアプリなし 提案前に評価軸をヒアリン グ する → 意思決定者がアプリに大事にしている軸を正しく認識する
02 技術実装 - LAの制約 LAには制約がたくさん!!
02 技術実装 - LAの制約 ⚙ アニメーションの制約 日本語訳
02 技術実装 - LAの制約 BGに入るとサークルが進まず ユーザ視点急にDLが完了する ⚙ アニメーションの制約 DLの進捗に合わせて
サークルが進む想定だった… Widget の省電力制御で 連続アニメ不可 (Lottieなども止まる)
02 技術実装 - LAの制約 ⚙ アニメーションの制約 設計判断 ・複数件DLの場合は 件数の終了数をサークルで表示
(アニメーションの更新が少ない) 結果 サークルUIの利点が少ないLAに😭
02 技術実装 - LAの制約 📡 アプリが BG では LA
を「新規作成」できない Activity.request() 日本語訳
02 技術実装 - LAの制約 📡 アプリが BG では LA
を「新規作成」できない ユーザがDLを複数件する ↓ LA は FG でしか「生まれない」 ↓ キューに入った DL は BG でも始まる ↓ "既にある LA" を 使い回すしかない 複数件のDLのケース
02 技術実装 - LAの制約 📡 アプリが BG では LA
を「新規作成」できない 設計判断 ・FG にいる間に create ・DL件数の増加のUI変更は update で対応 結果 UI/UX 表現は 大きく変えられない (update で更新可能な範囲に縛られる)
02 技術実装 - LAの制約 ⚙ アニメーション ・Widget の省電力で 連続アニメ不可
・Lottie も BG では止まる 📡 ライフサイクル ・BG では 新規 create 不可 ・明示的に アクティビティの end が必要 + stale date での制御が必要 ・最大表示時間: 8h (Dynamic Island) / 12h (Lock Screen) 🛠 LA採用前に、知っておきたい独特の制約 🎨 UI実装 ・Dynamic Island対応なら、4つ全部実装しないといけない compactLeading / compactTrailing / minimal / expanded ・データ量 4KB
02 技術実装 - まとめ 💡 やってみてわかった、 ボ トムアップ実装の現実
̎ 最新OS機能の挙動は、 要実機検証 → BG・ライフサイクルは、Widget Extension独自の制約がある 情報の少なさを工数見積もりに織り込む → 最新機能は記事が出てこない、AIも学習してない。手探りで時間かかる ボ トムアップ提案の見積もりは普段より慎重に行う → こちらから「やります!」した仕様変更は心理的・承認コストが高い
03 デザ インフェー ズ 反省 🤔 何がいけなかったのか? サークルUI を採用した時の判断
・大きくUI方針を変更したくなかった ・DMM TV感のデザインを保ちたかった ・自分のコンテキストを前提にしてた でも、HIG的には── ・LA は「ひと目で状況が伝わる」が原則 ・「視覚要素より「明確な情報」 コンテキストフリーで成立する設計
03 デザ インフェー ズ - まとめ 💡 iOSエンジニアが デザ
インするなら ̎ HIG を信仰する = 誤解のないUIを学 ぶ → より「ひと目で伝わる」 第三者の目 を仕組みで入れる →「最小工数」「巻き込まない」 を意識しすぎた Tips イメージ共有は Claude で工数削減
04 まとめ - 持ち帰り ▼ アイ デ アを通しやすくする型 Apple公認
× 競合未対応 ユーザー動線が増える機能 提案前に評価軸ヒアリング ▼ ボ トムアップ実装の現実 最新機能の挙動は信用しない 情報の少なさを見積もりに織り込む 見積もりミスは提案フェーズに戻る ▼ エンジニアが デザ インするなら HIGを信仰する(誤解のないUIを選ぶ) イメージ共有はClaudeで工数削減 第三者の目を仕組みで入れる 💡 今日の持ち帰り 9つ
04 補足 - ボ トムアップの壁 ❌ 新OS機能はKPI貢献を証明しにくい → 時間がかかるものであれば、他案件より優先度が下がってしまう
つまり エスカレーションしなくても良い短期工数で進めるしかない → 今回で言うと4人日以下 最小スコープでiOSチーム内に閉じる設計 ⚠ ボ トムアップでエスカレーションするのは現実的じゃない