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
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
12k
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
200
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.4k
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
250
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
ふつうのFeature Flag実践入門
irof
7
3.9k
New "Type" system on PicoRuby
pocke
1
920
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
760
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
510
CSC307 Lecture 17
javiergs
PRO
0
320
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
120
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
140
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
3.1k
Designing for humans not robots
tammielis
254
26k
Between Models and Reality
mayunak
4
340
Skip the Path - Find Your Career Trail
mkilby
1
150
Fireside Chat
paigeccino
42
3.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Music & Morning Musume
bryan
47
7.2k
Claude Code のすすめ
schroneko
67
230k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
610
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チーム内に閉じる設計 ⚠ ボ トムアップでエスカレーションするのは現実的じゃない