可茂IT塾合同会社 / Flutterエンジニア
ライブ配信アプリの開発
ライブ配信アプリの開発を担当しました。 FlutterとFirebaseでの開発で、配信機能のSaaSとしてAgoraを用いました。 フロントだけでなく、Firebase のデータベース設計も行いました。
400万人が利用するビジネスSNS
個人開発と実務の好循環を通じて、技術力とチームへの貢献を高め、自分らしいキャリアパスを探求する
## プロジェクト概要 ケーブルTVのオンデマンド配信アプリ(4デバイス)のリード開発を担当。 動画広告・H.265再生など難易度の高い機能の実装、共通化アーキテクチャの整備、テスト自動化を主導。技術基盤からUI/UXまで広範囲を改善し、安定稼働と開発効率向上に貢献しました。 --- ## 役割・体制 ### 体制 - アプリ/Webフロント:2名 - インフラ/バックエンド:3名 - デザイナー:1名(初期) - テスト:2名 - PdM:2名、PM:1名 スクラム(2週間スプリント) ┗ リファインメント / プランニング / デイリースクラム / レビュー / レトロスペクティブ ### 自身の対応範囲 - アプリ開発(Flutter) - モバイル / Android TV / Fire TV / 限定配布版の4デバイスを同時開発 - 認証(ログイン / 新規登録 / アカウント設定) - マイリスト(お気に入り / いいね / 視聴履歴) - 動画プレイヤー(IMA SDK広告 / H.265対応 / ネイティブコード拡張) - ディープリンク対応 - 既存画面のUI改善、アンケート/お知らせ機能 - 品質改善 / アーキテクチャ整備 - 密結合化した既存ソースの分離とリファクタリングを主導 - provider / repository / apiクライアントを分離し、テスト容易性を改善 - ユニットテスト基盤構築(カバレッジ90%超を維持) - インテグレーションテスト導入(デグレの早期検知) - 生成AIによるテストコード自動生成の仕組み化 - Webフロント開発(Vue.js) - odooベースの管理画面をVue.jsに刷新(約10画面) - 画面設計 / UI実装 / API再連携 - 課金コンテンツ購入サイトの作成 - アプリディープリンク用の中間サイト実装 - 環境整備 - Firebase App Distribution + Fastlane によるテスト配布の自動化 - GitFlowベースのリリース運用を整備 - 事業者別の限定版向けビルド環境構築(Flutter Flavor) - Flutterバージョン更新の定期運用 --- ## 課題・解決 ### 課題1 テスターがコマンド実行でAPKを手動インストールしており、テストメンバー入れ替え時の引継ぎコストが高かった。 **解決** - Firebase App Distributionを導入 → テスターが専用アプリから即インストール可能に - Fastlaneでビルド〜配布を自動化 → 配布コストを大幅削減 **結果** 配布作業が「15分 → 数十秒」に短縮し、テストサイクルが高速化 ### 課題2 既存コードは状態管理とAPI連携が1つのファイルに密結合しており、テスト困難・デグレ頻発・機能追加時の影響範囲が不明瞭という問題があった。 **解決** - スパゲッティ化したコードを APIクライアント / Repository / Provider の3層構造へ再構成し、責務を分離 - 依存関係逆転を取り入れ、Mockito によるモックが容易なテスタブルな設計へ変更 - ユニットテスト / インテグレーションテストを導入し、回帰テストを自動化 - AI(生成AI)でテストコードを自動生成できるように、参照ドキュメントと `.claude.md` を整備し、工数を大幅削減 └ 人手でテストコードを書く費用対効果が低いため、生成AIで再現性のあるテスト生成フローを確立 - ユニットテストのカバレッジは常時 90%以上を維持 **結果** テストフェーズのデグレ件数を大幅削減し、実装時の手戻りを抑制。開発効率と品質の両立を実現した。 ### 課題3 IMA SDK(広告)、動画プレイヤー周辺のネイティブコード、依存パッケージ、iOS/Android OSアップデートに起因する不具合が定期的に発生。 しかし更新管理の仕組みがなく、問題発生のたびに慌ててバージョンアップ対応する非効率な運用となっていた。 **解決** - Flutter本体・主要パッケージのアップデートを3ヶ月ごとに実施する方針を策定し、手順書を整備 - 自由課題時間を活用し、自動で最新バージョンを取得しSlack通知するBotを構築 - Flutter SDK/主要パッケージ/Android & iOS関連の更新を毎週チェックし通知 - 日常的にアップデート情報を共有し、技術的負債を蓄積させない体制へ移行 **成果** - 大規模なバージョンアップ対応が減り、突発障害対応の工数を大幅削減 - OS・SDKアップデートに伴うリスクを早期検知できるようになり、安定稼働に貢献 - 開発チーム全体が最新のFlutterエコシステムを把握しやすくなり、技術負債の削減につながった ### 課題4 プランニングでスプリントバックログは決まるものの、タスク粒度の不一致や影響範囲の認識違いが発生しており、 日次の進捗共有も浅かったため、スプリント中盤に手戻りが生じやすい状態だった。 **解決** - プランニング後にアプリチームだけの追加ミーティングを実施し、 タスク詳細化・サブタスク分割・影響範囲の明確化を行う運用を導入 - デイリースクラム前に15分の「アプリデイリー」を設定し、毎日のアウトプット・懸念点を即共有 - 障害や問題はその日のデイリースクラムで即報告できるようにし、他チームを含めた調整の早期化を実現 **成果** - タスク認識のズレが減り、スプリント序盤から迷いなく着手できる状態を確立 - 問題の早期発見によりスプリント内で柔軟な巻き返しが可能に - 手戻りや遅延が減り、スプリント完了率が安定 - チーム内の情報共有が活性化し、コミュニケーション品質が向上 ### 課題5 事業会社ごとの限定版アプリをプリインストール端末に配布する必要があり、端末ごとにログインや設定を変える必要があった。 さらに、テスト/ステージング/プロダクションの各3環境を事業会社ごとに分離する必要があった。 **解決** - FlutterのFlavorを事業会社ごとに定義し、環境ごとの設定を分離 - Makeファイルを用意し、単一コマンドで特定事業会社かつテスト/ステージング/プロダクション環境のAPKをビルド可能に **成果** - チーム全体で共通化・属人化の予防(誰でも最新のソースから生成可能) - 限定版アプリの管理・運用が容易になり、チームの作業負荷を軽減
ライブ配信アプリの開発を担当しました。 FlutterとFirebaseでの開発で、配信機能のSaaSとしてAgoraを用いました。 フロントだけでなく、Firebase のデータベース設計も行いました。
NFTを売買するプラットフォームのアプリ開発を担当しました。 アプリでのmetamask連携や、polygonを使用したスマートコントラクターでの取引機能を学習できました。 FirebaseとFlutterでの初の新規開発に携わることができました。
Flutter
Firebase
Next.js
Nuxt.js
Figma
企業からスカウトをもらいましょう
可茂IT塾合同会社 / Flutterエンジニア
ライブ配信アプリの開発を担当しました。 FlutterとFirebaseでの開発で、配信機能のSaaSとしてAgoraを用いました。 フロントだけでなく、Firebase のデータベース設計も行いました。