## プロジェクト概要
楽器演奏者や音楽愛好家が、自身の演奏動画や愛用楽器のこだわりをシェアし、音楽仲間と繋がることができる音楽特化型SNS。 約2年前にFlutterで開発した旧バージョンをベースに、ユーザー体験の向上とスケーラビリティを確保するため、モダンな技術スタックを用いてフルリビルドを実施。企画からデザイン、フロントエンド、バックエンド開発まで一貫して担当している。
リンク:[https://apps.apple.com/jp/app/muuuzin/id6744232472](https://apps.apple.com/jp/app/muuuzin/id6744232472)
## 使用技術
【フロントエンド】
Flutter, Provider, TypeScript, YouTube Data API
【バックエンド / インフラ】
- Supabase (Database, Auth, Storage, Edge Functions), Firebase (FCM, Remote Config)
- Google Cloud (Google Auth (OAuth 2.0), Vision API, Generative Language API)
- Resend (Email Delivery), Squarespace (DNS Management)
## 開発・実装内容A:Flutterによるマルチプラットフォーム展開と機能の大幅拡充
【概要】
ユーザー層の拡大を目指し、iOS専用だった旧アプリをAndroidにも対応。同時に、画像共有のみだったシンプルな構成から、動画投稿やチャットを備えた総合音楽コミュニティへとフルリビルドを実施。
【どのような機能の開発・実装か】
- Android/iOSの同時リリース: Flutterの特性を活かし、両OSで一貫したUI/UXを提供するクロスプラットフォーム開発を完遂。
- YouTube連携による動画共有機能: YouTube Data APIを活用し、自身の演奏動画をシームレスに投稿・閲覧できる機能を新規実装。
- チャット・コミュニティ機能: ユーザー同士の交流を加速させるリアルタイムチャットや、バンドメンバー募集機能をゼロから構築。
【課題・問題点】
- プラットフォーム間の差異と保守性: 異なるOSで同等の体験を提供しつつ、機能拡充に伴うコードの肥大化と複雑性の増大をどう抑えるかが課題となった。
- SNSに不向きな旧基盤: NoSQL(Firebase)では、複雑なリレーションを持つSNS機能(チャット、メンバー募集、フォロー関係等)の実装が煩雑になり、拡張性に限界があった。
【打ち手・使用した技術】
- Supabaseへの基盤移行とRDB活用: 2025年3月、SNS開発に適したリレーショナルデータベースを持つSupabaseへ移行。複雑なデータ構造を整理し、機能拡張が容易な環境を構築。
- 生成AIによる開発加速: 膨大な新機能の実装や基盤移行において、最新の生成AIをコード生成・リファクタリングのパートナーとしてフル活用。開発スピードを極限まで高め、短期間(約1ヶ月)でのフルリビルドを実現した。
- クリーンアーキテクチャによる分離: 機能を大幅に増やしつつ保守性を保つため、リポジトリ層とサービス層を明確に分離。各機能の独立性を高め、Android/iOS両OSでの安定した動作を担保した。
## 開発・実装内容B:外部API連携によるリッチな機能実装と運用コストの最適化
【概要】
個人開発におけるインフラコストを最小化しつつ、大手SNSに劣らない利便性と安全性を確保するための外部サービス連携。
【課題・問題点】
- ホスティングコストと負荷: 高画質な演奏動画を自前で配信・管理することは、ストレージコストやネットワーク帯域の面で個人開発の範疇を超えていた。
- コミュニティの健全性確保: ユーザー投稿型SNSとして、24時間体制での不適切な画像・動画の監視体制を個人で構築する必要があった。
【打ち手・使用した技術】
- YouTube Data APIによる動画管理の外部化: ユーザーのYouTubeアカウントから動画を選択・表示する仕組みを構築。ホスティングコストをゼロにしつつ、高品質な再生体験を提供。
- Google Vision APIによる自動検閲システム: Supabase Functions(Edge Functions)を介して画像解析APIと連携。投稿時に不適切コンテンツを自動判定・排除するセーフティ機能を実装した。