<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Kristopher Baker · Apps, systems, and tools I’ve shipped.</title>
    <link>https://krisbaker.com/ja/</link>
    <atom:link href="https://krisbaker.com/ja/work/rss.xml" rel="self" type="application/rss+xml"/>
    <description>iOSに深く根ざしたシニアプロダクトエンジニア。コンシューマ向けのプロダクトシステム、開発者向けツール、実践的なAI支援ワークフローを東京から作っています。</description>
    <generator>Inkwell 0.15.0</generator>
    <language>ja</language>
    <lastBuildDate>Wed, 01 Jan 2025 00:00:00 +0000</lastBuildDate>
    <managingEditor>hello@krisbaker.com (Kristopher Baker)</managingEditor>
    <item>
      <title>長距離配達によるサブスクリプション価値の拡張</title>
      <link>https://krisbaker.com/ja/work/wolt-long-distance-delivery/</link>
      <guid isPermaLink="true">https://krisbaker.com/ja/work/wolt-long-distance-delivery/</guid>
      <pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate>
      <category>iOS</category>
      <category>グロース</category>
      <category>サブスクリプション</category>
      <category>API設計</category>
      <description>Long-Distance Delivery の DRI。無料配達圏外のユーザーにも割引料金で価値を提供し、Discovery・店舗ページ・チェックアウトの各導線で一貫した体験を実現。API設計およびプロダクト設計の議論もリード。</description>
      <content:encoded><![CDATA[<h2>背景</h2>
<p>Wolt+ は一定の配達距離内で無料配達を提供していましたが、その範囲を少しでも外れるとユーザーにとっての価値は大きく下がっていました。特に一部のマーケットでは、これがサブスクリプションの魅力を弱める要因になっていました。</p>
<h2>課題</h2>
<p>無料配達圏の外にいるユーザーにも価値を提供する必要がありました。</p>
<p>ただし単に割引を導入するだけではなく、Discovery・店舗ページ・チェックアウトといった複数の導線で、配達料金と特典の見え方を一貫させる必要がありました。</p>
<h2>アプローチ</h2>
<p>クライアント側のDRIとして、iOS実装をリードしつつ、APIおよびプロダクト設計にも関与しました。</p>
<p>主に取り組んだポイントは以下です。</p>
<ul>
<li>配達料金および適用条件の表現方法について、フロントエンドとバックエンドの整合性を確保</li>
<li>Discoveryチームと連携し、店舗一覧における挙動を統一</li>
<li>配達料金と割引内容を説明する再利用可能なボトムシートの設計</li>
</ul>
<p>また、APIの構造や命名についても議論をリードし、バックエンドとクライアント双方の制約を踏まえた形での合意形成を進めました。</p>
<h2>成果</h2>
<ul>
<li>A/Bテストで明確なポジティブな結果を確認</li>
<li>無料配達圏外のユーザーにおけるWolt+の価値認識が向上</li>
<li>アプリ内の複数導線にわたって機能を展開</li>
</ul>
<h2>担当</h2>
<p>DRIとして、クライアント実装のリード、RFCへの貢献、およびチーム間の連携を担当。</p>]]></content:encoded>
    </item>
    <item>
      <title>カート・チェックアウト導線の改善でサブスク転換率を高める</title>
      <link>https://krisbaker.com/ja/work/wolt-cart-entry-points/</link>
      <guid isPermaLink="true">https://krisbaker.com/ja/work/wolt-cart-entry-points/</guid>
      <pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate>
      <category>iOS</category>
      <category>Growth</category>
      <category>Subscription</category>
      <category>A/B testing</category>
      <description>Wolt+成長の中核実験2件（カート導入口とエクスプレス登録）のクライアント側責任者。クロスプラットフォームのRFCを主導し、単一リリースに詰め込まず独立した実験として段階的に検証する流れを推進した。</description>
      <content:encoded><![CDATA[<h2>背景</h2>
<p>Wolt+はWoltのサブスクリプションサービスで、Uber OneやDashPassに近い位置付けです。注文フロー中で「いつ」「どのように」加入を促すかは、成長の重要なレバーになっています。</p>
<h2>課題</h2>
<p>既存の加入導線は限定的で、注文フローを離れて遷移する必要がありました。カートとチェックアウトに新しい接点を作り、より速い「エクスプレス」登録体験も検証したかったのですが、最初の設計はそれらをすべて1リリースに詰め込もうとしており、複雑性とリスクが膨らんでいました。</p>
<h2>アプローチ</h2>
<video autoplay muted loop playsinline style="display: block; width: 440px; max-width: 100%; margin: 0 auto;">
  <source src="https://krisbaker.com/work/wolt-cart-entry-points/cart-signup.mp4" type="video/mp4">
  <img src="https://krisbaker.com/assets/work/wolt-cart-entry-points/cart-banner.png" alt="カート導入口とエクスプレス登録のフロー">
</video>
<p>クライアント側のDRIとしてiOS・Web・Androidを横断的に率い、プロダクト・デザイン・バックエンド・データサイエンスの整合を取りつつ、iOS実装をリードしました。</p>
<p>早い段階で、私はこの作業を独立した2つの実験に分けることを推しました:</p>
<ul>
<li>まずカート導入口を出して検証する</li>
<li>その後、エクスプレス登録を別の反復として続ける</li>
</ul>
<p>これにより、複雑な実装を待たずに段階的に効果を検証できるようになりました。</p>
<p>エクスプレス登録では、いくつかのUX・技術的制約に取り組みました:</p>
<ul>
<li>ボトムシート内でのナビゲーションフロー（従来未対応）</li>
<li>「エクスプレス」と通常登録の遷移を簡素化し、混乱を減らす</li>
<li>支払い・バックエンドとの連携で、支払方法変更などのエッジケースをすり合わせる</li>
</ul>
<p>データサイエンスとも密に連携し、計装の検証や、誤解を招くA/Bテスト結果のデバッグまで踏み込みました。</p>
<h2>成果</h2>
<ul>
<li>Wolt+登録と下流の注文ボリュームに有意な押し上げ</li>
<li>両機能ともA/Bテストに合格し、本番100%展開済</li>
<li>カート導入口は今もサブスク成長の中核サーフェス</li>
</ul>
<h2>役割</h2>
<p>iOS・Web・Androidを横断するクライアント側DRI。RFC、ステークホルダー調整、実験戦略を主導しつつ、iOS実装にも手を動かしました。</p>]]></content:encoded>
    </item>
    <item>
      <title>プロダクト改善を速く、確信を持って進めるためのテレメトリツール</title>
      <link>https://krisbaker.com/ja/work/wolt-telemetry-viewer/</link>
      <guid isPermaLink="true">https://krisbaker.com/ja/work/wolt-telemetry-viewer/</guid>
      <pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate>
      <category>iOS</category>
      <category>macOS</category>
      <category>内製ツール</category>
      <category>テレメトリ</category>
      <category>WebSocket</category>
      <description>プロダクト改善のための小さなレバレッジシステムとして、iOSアプリからのイベントをWebSocket経由でローカルのデスクトップクライアントへストリーミングし、検索・フィルタ可能にしたテレメトリツールを開発。従来のアプリ内ビューアを置き換え、計測作業をより速く、信頼できるものにした。</description>
      <content:encoded><![CDATA[<h2>背景</h2>
<p>Woltでは、開発中に分析イベント（テレメトリ）を確認する手段が限られており、アプリ内のフルスクリーンビューアに依存していました。検索やフィルタ機能がなく、計測が正しいかどうかを確信するまでに時間がかかっていました。</p>
<h2>課題</h2>
<p>この状況では、エンジニアやプロダクトチームが以下の作業を効率的に行うことが難しくなっていました。</p>
<ul>
<li>新しいイベントの検証</li>
<li>不具合のデバッグ</li>
<li>計測を伴う機能を安心してリリースし、評価すること</li>
</ul>
<h2>アプローチ</h2>
<p>iOSアプリからイベントをローカルのデスクトップクライアントへストリーミングする、テレメトリビューアを設計・開発しました。目的は単に見やすいビューアを作ることではなく、プロダクトの意図、計測、リリース判断の間にあるループを短くすることでした。</p>
<p>主な構成要素は以下です。</p>
<ul>
<li>iOSアプリからのWebSocketによるローカルストリーミング</li>
<li>検索・フィルタが可能なデスクトップアプリのイベントビュー</li>
<li>バックエンドへ送信されるペイロードを、人がすばやく確認できる形で完全に可視化</li>
</ul>
<p>導入は段階的に進めました。</p>
<ul>
<li>まず少人数のエンジニアで検証</li>
<li>デモや社内共有を通じて利用範囲を拡大</li>
</ul>
<p>また、Androidエンジニアと連携し、同様の仕組みを他プラットフォームにも展開しました。</p>
<h2>成果</h2>
<ul>
<li>テレメトリ検証にかかる時間と不確実性を大幅に削減</li>
<li>複数チームのエンジニアに採用</li>
<li>プライバシー関連のテレメトリ対応など、他の取り組みの基盤としても活用</li>
</ul>
<h2>担当</h2>
<p>コンセプト設計から実装、チームへの展開までを単独で担当。</p>]]></content:encoded>
    </item>
    <item>
      <title>フィーチャーフラグを用いた記事抽出システムの安全な再構築</title>
      <link>https://krisbaker.com/ja/work/smartnews-smartview-v2/</link>
      <guid isPermaLink="true">https://krisbaker.com/ja/work/smartnews-smartview-v2/</guid>
      <pubDate>Sat, 01 Jan 2022 00:00:00 +0000</pubDate>
      <category>iOS</category>
      <category>Swift</category>
      <category>Architecture</category>
      <category>Feature Flags</category>
      <category>Rendering</category>
      <description>第二世代の記事抽出システム（SmartHTMLExtractorV2）のiOS実装を担当。既存レンダラーと並行稼働させつつ、クライアント制御のフィーチャーフラグを用いて段階的に展開し、重要なコンテンツ表示基盤のリスクを抑えながら移行を実現。</description>
      <content:encoded><![CDATA[<h2>背景</h2>
<p>SmartNewsでは、SmartViewシステムを通じて数百万規模の記事をレンダリングしています。既存の抽出パイプラインは長年の運用の中で技術的負債が蓄積しており、媒体ごとの挙動の不整合も増えていました。</p>
<p>しかし、レンダリング基盤を全面的に置き換えることは大きなリスクを伴います。わずかな不具合でも、記事の可読性やユーザー体験に直接影響してしまうためです。</p>
<h2>課題</h2>
<p>求められていたのは、以下を満たす新しい抽出基盤の導入でした。</p>
<ul>
<li>新しい記事抽出パイプラインの構築</li>
<li>HTML解析・整形の信頼性向上</li>
<li>バックエンド配信ルール（CSS・変換処理）との統合</li>
<li>既存レンダリング体験を壊さない安全な移行</li>
</ul>
<p>重要なプロダクト基盤を止めることなく、段階的に刷新する必要がありました。</p>
<h2>アプローチ</h2>
<p>SmartHTMLExtractorV2 を既存システムと並行して動作する構成として実装しました。</p>
<p>具体的には：</p>
<ul>
<li>SwiftSoupをラップした新規Swiftモジュール（SmartHTML）を作成し、安定した内部APIを提供</li>
<li>新しい抽出パイプラインを実装
<ul>
<li>HTML解析とクリーンアップ</li>
<li>バックエンド配信CSSルールとの統合</li>
<li>内部モデルを用いた構造化フォーマット処理</li>
</ul>
</li>
<li>クライアント条件分岐による制御を導入し、v1/v2を安全に共存可能に</li>
</ul>
<p>また、運用面のリスクを下げるために：</p>
<ul>
<li>クライアント条件判定失敗時のフォールバック処理（stage/prod URL切り替え）を追加</li>
<li>エディション別プロキシ制御（US版 / JP版差異）に対応</li>
<li>iOSバージョンごとの差異（JPEG / WebP画像選択など）も吸収</li>
</ul>
<h2>成果</h2>
<ul>
<li>コア体験に影響を与えることなく、並行レンダリングシステムを安全にリリース</li>
<li>一括切り替えではなく、段階的な検証・ロールアウトを可能に</li>
<li>将来的な改善を進めやすい、Swiftベースのレンダリング基盤を整備</li>
</ul>
<h2>この事例で示せること</h2>
<ul>
<li>高リスク・高影響システムにおける安全なロールアウト設計</li>
<li>サードパーティライブラリを安定した内部抽象へラップする設計力</li>
<li>大規模なObjective-C / Swift混在環境でのモジュール設計</li>
<li>実装だけでなく、運用安全性やフォールバックまで含めた設計思考</li>
</ul>]]></content:encoded>
    </item>
    <item>
      <title>固定期限の中で構築した、政治的バランスを考慮した選挙体験</title>
      <link>https://krisbaker.com/ja/work/smartnews-us-election-2020/</link>
      <guid isPermaLink="true">https://krisbaker.com/ja/work/smartnews-us-election-2020/</guid>
      <pubDate>Tue, 01 Jan 2019 00:00:00 +0000</pubDate>
      <category>iOS</category>
      <category>Product</category>
      <category>UX</category>
      <category>Localization</category>
      <description>SmartNewsの米国大統領選2020向け機能のiOS実装を担当。政治的バランスを意識したUI、候補者ウィジェット、選挙結果表示などを、時間制御やエディション別仕様に対応しながら開発。</description>
      <content:encoded><![CDATA[<h2>背景</h2>
<p>SmartNewsは、選挙報道において大きな役割を担っています。2020年の米国大統領選では、政治的な視点の偏りを抑え、異なる立場の記事を比較しながら読める体験を提供することが重要なテーマのひとつでした。</p>
<p>また、選挙という性質上、リリース期限は完全に固定されており、すべてを選挙日までに間に合わせる必要がありました。</p>
<h2>課題</h2>
<p>求められていたのは、以下を満たす機能群でした。</p>
<ul>
<li>異なる政治的視点の記事を分かりやすく提示すること</li>
<li>既存UIの流用ではなく、新しい体験を設計・実装すること</li>
<li>リアルタイムの選挙結果表示に対応すること</li>
<li>US版・JP版それぞれの挙動差異を正しく扱うこと</li>
</ul>
<h2>アプローチ</h2>
<p>複数の選挙関連機能に横断的に関わりました。</p>
<h3>政治的バランス体験</h3>
<ul>
<li>カスタムUISliderを用いた News Event View を実装
<ul>
<li>3段階 / 5段階の視点切り替えに対応</li>
</ul>
</li>
<li>オンボーディング、ディープリンク、行動ログ計測を追加</li>
<li>“News from all sides” への導線を複数サーフェスに展開</li>
</ul>
<h3>候補者・選挙結果機能</h3>
<p>以下を実装：</p>
<ul>
<li>候補者ウィジェット・候補者リスト</li>
<li>時間制御付きの選挙結果ウィジェット</li>
</ul>
<p>さらに：</p>
<ul>
<li>表示開始・終了時刻によるタイムスタンプ制御</li>
<li>エディション別言語ルール
<ul>
<li>例：JP版ではシステム言語に関係なく日本語を表示</li>
</ul>
</li>
</ul>
<h3>基盤・運用面</h3>
<ul>
<li>フォールバックを含むAPI連携を実装</li>
<li>クライアント条件による段階的ロールアウト制御</li>
<li>主要インタラクションのTelemetry計測を整備</li>
</ul>
<h2>成果</h2>
<ul>
<li>固定期限の中で複数の選挙関連機能をリリース</li>
<li>ユーザーが異なる政治的視点を比較しながら読める体験を実現</li>
<li>時間制御・ローカライズ・データ可用性など複雑な要件を安定運用</li>
</ul>
<h2>この事例で示せること</h2>
<ul>
<li>動かせない期限の中での開発・リリース遂行力</li>
<li>センシティブなプロダクト領域におけるUI設計・実装</li>
<li>マルチエディション・多言語環境での仕様設計</li>
<li>複数サーフェスにまたがる一貫した体験設計</li>
</ul>]]></content:encoded>
    </item>
  </channel>
</rss>