ソースからビルド
このガイドはソースコードからSpotoolfyをビルドする方法を説明します。機能をカスタマイズしたい開発者、Flutter開発を学びたい方、プロジェクトに貢献したい方に適しています。
環境準備
1. Flutterのインストール
Flutter SDKがインストールされていることを確認(バージョン3.19以上を推奨):
# Flutterバージョンを確認
flutter --version
# 環境設定を確認
flutter doctor
Flutterがインストールされていない場合は、Flutter公式サイトにアクセスしてインストールガイドに従ってください。
2. リポジトリのクローン
git clone https://github.com/p2o51/spotoolfy_flutter.git
cd spotoolfy_flutter
3. APIキーの設定
lib/config/secrets.dart ファイルを作成:
class Secrets {
// Spotify API資格情報
// https://developer.spotify.com/dashboard から取得
static const String spotifyClientId = 'YOUR_CLIENT_ID';
static const String spotifyRedirectUrl = 'spotoolfy://callback';
// Google AI API Key(オプション、翻訳とインサイト用)
// https://aistudio.google.com/apikey から取得
static const String geminiApiKey = 'YOUR_GEMINI_API_KEY';
}
完全なテンプレートは lib/config/secrets.example.dart を参照。
4. Spotifyアプリの設定
- Spotify Developer Dashboardにアクセス
- 新しいアプリを作成
- リダイレクトURIを追加:
spotoolfy://callback - Client IDを
secrets.dartにコピー
ビルド手順
依存関係のインストール
flutter pub get
開発バージョンの実行
# 接続されたデバイスで実行
flutter run
# プラットフォームを指定
flutter run -d ios
flutter run -d android
flutter run -d web
リリースバージョンのビルド
Android APK
# Release APKをビルド
flutter build apk --release
# 出力場所
# build/app/outputs/flutter-apk/app-release.apk
Android App Bundle
# Google Playリリース用
flutter build appbundle --release
iOS
# macOSとXcodeが必要
flutter build ios --release
Web
flutter build web --release
# 出力場所
# build/web/
プラットフォーム固有の設定
Android
android/app/src/main/AndroidManifest.xml を編集し、以下が含まれていることを確認:
<!-- ネットワーク権限 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- SpotifyコールバックURLスキーム -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="spotoolfy" android:host="callback" />
</intent-filter>
iOS
ios/Runner/Info.plist を編集し、以下が含まれていることを確認:
<!-- URLスキーム -->
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>spotoolfy</string>
</array>
<key>CFBundleURLName</key>
<string>com.gojyuplusone.spotoolfy</string>
</dict>
</array>
<!-- Spotifyアプリクエリ -->
<key>LSApplicationQueriesSchemes</key>
<array>
<string>spotify</string>
</array>
コード構造
lib/
├── config/ # 設定ファイル(secrets、constants)
├── data/ # データ層(database_helper)
├── l10n/ # 国際化リソース
├── models/ # データモデル
├── pages/ # ページコンポーネント
├── providers/ # 状態管理(Provider)
├── services/ # ビジネスロジックサービス
├── utils/ # ユーティリティ関数
├── widgets/ # 再利用可能なUIコンポーネント
└── main.dart # アプリエントリーポイント
よくあるビルド問題
Gradleビルドの失敗
問題:AndroidビルドでGradleエラー
解決策:
cd android
./gradlew clean
cd ..
flutter clean
flutter pub get
flutter build apk
CocoaPodsの問題
問題:iOSビルドでPodインストールに失敗
解決策:
cd ios
rm Podfile.lock
rm -rf Pods
pod install --repo-update
cd ..
flutter clean
flutter build ios
依存関係バージョンの競合
問題:pub getがバージョン競合で失敗
解決策:
flutter pub upgrade --major-versions
secrets.dartが見つからない
問題:secrets.dartが見つからないというビルドエラー
解決策:lib/config/secrets.dart を作成したことを確認。secrets.example.dart をコピーしてAPIキーを入力できます。
Android SDKバージョンの問題
問題:minSdkVersionの非互換性
解決策:android/app/build.gradle を確認し、minSdkVersion が24以上であることを確認。
iOS署名の問題
問題:iOSビルドで署名エラー
解決策:
- Xcodeで
ios/Runner.xcworkspaceを開く - Runnerターゲットを選択
- Signing & Capabilitiesで開発者アカウントを設定
開発のヒント
コードフォーマット
dart format .
静的解析
flutter analyze
テストの実行
flutter test
ローカライゼーションファイルの生成
flutter gen-l10n
ホットリロード
開発中はホットリロードを使用してイテレーションを高速化:
rを押してホットリロードRを押してホットリスタート
コードの貢献
- リポジトリをフォーク
- フィーチャーブランチを作成:
git checkout -b feature/your-feature - 変更をコミット:
git commit -m 'Add some feature' - ブランチをプッシュ:
git push origin feature/your-feature - Pull Requestを作成
ライセンス
Spotoolfyはオープンソースプロジェクトです。具体的なライセンスの詳細はリポジトリのLICENSEファイルを確認してください。