Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Perk アプリの技術選定とリリースから1年弱経ってのふりかえり

Perk アプリの技術選定とリリースから1年弱経ってのふりかえり

「【Wantedly Tech Night】少数精鋭チームで取り組む1→10事業開発の裏側」で発表した資料です。
https://wantedly.connpass.com/event/356677/

Avatar for Shingo Tomioka

Shingo Tomioka

June 18, 2025
Tweet

More Decks by Shingo Tomioka

Other Decks in Technology

Transcript

  1. © 2025 Wantedly, Inc. モバイルチームに協力してもらい、アプリを開発 Engagement チーム内には Web のエンジニアが 2人。モバイルのエンジニアはいない

    モバイルチームは別に存在(主に別プロダクトの開発を行っている) 前提:チーム体制について PdM Designer Web Engineers Mobile Engineers Engagement Growth Squad Mobile Chapter
  2. © 2025 Wantedly, Inc. Engagement チームからの要求 ✓ Web でできることは基本的にアプリでもできること ✓

    iOS と Android をあまり時間を空けずにそろえられること ◦ 福利厚生サービスなので公平性が大事 ✓ 今後の機能リリース速度をできるかぎり落とさないこと ◦ 1→10フェーズでは特に重要 モバイルチームからの要求 ✓ メンテナンスコストがなるべくかからないこと アプリに対する要求
  3. © 2025 Wantedly, Inc. WebView 利用の理由 • 初期リリースまでのリードタイムを大 幅に短くできる ◦

    すでにスマホに最適化された Web実装が あり、それがほぼそのまま使える • 今後の機能リリースも速くできる ◦ Web とアプリで実装を共通化できる ◦ 大部分の変更は Web エンジニアだけで 行える ◦ ストアの審査を通さずにリリースできる メリット • 触ったときのスムーズさや気持ちよさ はネイティブ実装よりも劣る • OSの提供機能を使う際はちょっと手 間がかかる 相対的にメリットがデメリットを上回ると判断 👍 デメリット
  4. © 2025 Wantedly, Inc. • UI が WebView ベースだと、ガワ部分もプラットフォーム依存な実装は少ない ◦

    👉 クロスプラットフォーム技術を採用して開発コストを抑える • 組織として Flutter をプロダクト利用して検証してみたかった Flutter 利用の理由
  5. © 2025 Wantedly, Inc. • ログイン・ログアウト周り ◦ セキュリティ上の理由で WebView 内ではソーシャルログインが動かないため

    • フォアグラウンド復帰時のアカウントの有効性チェック • ボトムバー • ユニバーサルリンクのハンドリング Flutter で実装している箇所
  6. © 2025 Wantedly, Inc. 基本的に mobile web 用の実装をそのまま WebView 内で表示しているが、

    一部アプリ用にカスタマイズしている • グローバルフッターなど不要な要素を非表示にする • Web用のグローバルヘッダーの代わりに、アプリ用のナビゲーションヘッダーを表示 • サイト外へのリンクを、 Flutter 経由で、アプリ内ブラウザや外部ブラウザで開く web 側に加えている主なアプリ用の分岐処理
  7. © 2025 Wantedly, Inc. • 小中規模の機能をいくつかリリースをしてきたが、狙いどおり Web エンジニア だけでクイックに開発ができていていい感じ 👍

    ◦ ガワがすでにできていれば、ほとんどの機能は web の開発だけで完結する • たまにネイティブ機能に関わるところは、モバイルチームに助けてもらっている 🤝 ◦ 位置情報取得のパーミッションとか、ユニバーサルリンク対応とか • このアーキテクチャで困ったという場面は今のところない リリースから1年弱経ってのふりかえり
  8. © 2025 Wantedly, Inc. • Perk では少数の Web エンジニアで、 Web

    & アプリの開発を行っている 💪 • アプリは「ガワ Flutter + 中身 WebView」を使うことで、 Web の実装をすればほぼそのままアプリにも展開できるようになっている • これにより高速な開発体制を実現している 🚀 まとめ