Tottodrilloは、複数のソースからROMを探索、検索、ダウンロードするためのモダンでミニマルなAndroidアプリです。アプリはZIPパッケージによる動的ソースインストールをサポートし、アプリを更新せずに新しいROMソースを追加できます。
ソースリポジトリ: Tottodrillo-Source - すべてのソース定義と開発ガイドを含みます。
このREADMEは他の言語でも利用可能です:
- メタデータのインポート: Internet Game Database (IGDB)からROMの豊富なメタデータを検索してインポート
- 包括的なゲーム情報: タイトル、カバーアート、説明、ストーリーライン、ジャンル、開発者、パブリッシャー、評価、スクリーンショットなどをインポート
- 簡単な設定: 設定でIGDB Client IDとSecretを直接設定
- スマートマッチング: 一致するプラットフォームを表示し、メタデータをインポートする前に確認
- 強化されたROM詳細: IGDBのプロフェッショナルなメタデータと高品質なカバーアートでROMコレクションを充実
- 複数の検索プロバイダー: ROM情報検索にGamefaqsとMobyGamesから選択
- 設定可能なプロバイダー: 設定で好みの検索プロバイダーを選択
- Gamefaqs統合: Gamefaqsで直接ROM情報を検索
- MobyGames統合: MobyGamesでROM情報を検索
- 動的ボタンテキスト: 選択したプロバイダーに基づいて検索ボタンのテキストが変更
- ホーム画面:おすすめROM、人気プラットフォーム、お気に入り、最近のROM
- プラットフォーム探索:ブランド別に整理(Nintendo、PlayStation、Sega、Xboxなど)、折りたたみ/展開可能なセクション
- 高度な検索:自動デバウンス(500ms)によるクエリ最適化
- 複数フィルター:プラットフォームと地域のインタラクティブチップ
- 無限スクロール:自動遅延読み込み
- ROM表示:中央配置で比例したカバーアート
- バックグラウンドダウンロード:WorkManagerによる信頼性の高いダウンロード
- リアルタイム進捗追跡:パーセンテージ、ダウンロード済みバイト数、速度
- インタラクティブ通知:「ダウンロードをキャンセル」「インストールをキャンセル」アクション
- カスタムパス:任意のフォルダ(外部SDカードを含む)にファイルを保存
- 自動/手動インストール:
- ZIPアーカイブのサポート(展開)
- 非アーカイブファイルのサポート(コピー/移動)
- カスタム宛先のフォルダピッカー
- ES-DE互換性:
- ES-DEフォルダ構造への自動インストール
- ES-DE ROMsフォルダの選択
mother_codeによる自動整理(例:fds/、nes/など)
- ファイル管理:
- 既存ファイルの上書き(フォルダ内の他のファイルは削除しない)
- インストール後の元ファイルのオプション削除
- ダウンロードと展開履歴の管理
- 高度なオプション:
- モバイルデータ節約のWiFiのみダウンロード
- ダウンロード前の利用可能容量確認
- 設定可能な通知
- お気に入り:ファイルベースの永続化
- 最近のROM:最後に開いた25個、ファイルベースの永続化
- ダウンロード/インストール状態:各リンクの自動更新
- 状態アイコン:
- 進捗インジケーター付きダウンロード中
- パーセンテージ付きインストール中
- インストール完了(緑アイコン)
- インストール失敗(赤アイコン、クリックで再試行)
- インストールフォルダを開く:アプリから直接
- Material Design 3:自動ダーク/ライトテーマ
- ミニマルでモダンなインターフェース
- スムーズなアニメーション:Jetpack Compose
- カバーアート:遅延読み込み(Coil)と自動中央配置
- プラットフォームロゴ:アセットから読み込まれるSVG、フォールバック付き
- 地域バッジ:絵文字フラグ
- ROMカード:統一された最大幅(180dp)
- 展開可能なグループを持つツリー構造: より良いナビゲーションのために8つの折りたたみ可能なカテゴリに整理された設定
- ROM情報検索:
- 検索プロバイダーの選択(GamefaqsまたはMobyGames)
- Gamefaqsがデフォルトプロバイダー
- IGDB統合設定(Client IDとSecretの設定)
- ダウンロード設定:
- カスタムダウンロードフォルダの選択
- 利用可能容量の表示
- ストレージ権限の管理(Android 11+)
- WiFiのみダウンロード
- 通知のオン/オフ(ダウンロード、インストール、更新用)
- インストール設定:
- インストール後の元ファイル削除
- フォルダ選択付きES-DE互換性
- 履歴管理:
- ダウンロードと展開履歴のクリア(確認付き)
- アプリ情報(常に表示):
- アプリバージョン
- GitHubリンク
- サポートセクション
アプリはクリーンアーキテクチャに従い、レイヤー分離を行います:
app/
├── data/
│ ├── mapper/ # API → Domain変換
│ ├── model/ # データモデル(API、Platform)
│ ├── remote/ # Retrofit、APIサービス
│ ├── repository/ # リポジトリ実装
│ ├── receiver/ # 通知用BroadcastReceiver
│ └── worker/ # WorkManagerワーカー(Download、Extraction)
├── domain/
│ ├── manager/ # ビジネスロジックマネージャー(Download、Platform)
│ ├── model/ # ドメインモデル(UI)
│ └── repository/ # リポジトリインターフェース
└── presentation/
├── components/ # 再利用可能なUIコンポーネント
├── common/ # UI Stateクラス
├── detail/ # ROM詳細画面
├── downloads/ # ダウンロード画面
├── explore/ # プラットフォーム探索画面
├── home/ # ホーム画面
├── navigation/ # ナビゲーショングラフ
├── platform/ # プラットフォーム別ROM画面
├── search/ # 検索画面
├── settings/ # 設定画面
└── theme/ # テーマシステム
- Kotlin - 主要言語
- Jetpack Compose - モダンUIツールキット
- Material 3 - デザインシステム
- MVVM - アーキテクチャパターン
- Hilt - 依存性注入
- Coroutines & Flow - 並行処理と反応性
- StateFlow - 反応的な状態管理
- Retrofit - HTTPクライアント
- OkHttp - ネットワーク層
- Gson - JSONパース
- Coil - SVGサポート付き画像読み込み
- DataStore - 永続的な設定
- WorkManager - 信頼性の高いバックグラウンドタスク
- File I/O - ダウンロード/インストール追跡用
.statusファイル管理
- Navigation Compose - 画面ルーティング
- Safe Navigation - 空白画面を避けるバックスタック管理
- DownloadWorker - フォアグラウンドサービス付きバックグラウンドファイルダウンロード
- ExtractionWorker - バックグラウンドファイル展開/コピー
- フォアグラウンド通知 - アクション付きインタラクティブ通知
- Android Studio Hedgehog(2023.1.1)以降
- JDK 17
- Android SDK API 34
- Gradle 8.2+
- リポジトリをクローン
git clone https://github.com/mccoy88f/Tottodrillo.git
cd Tottodrillo-
Android Studioで開く
- ファイル → 開く → プロジェクトフォルダを選択
-
Gradleを同期
- Android Studioが自動的に依存関係を同期します
-
ビルドと実行
- デバイス/エミュレーターを選択
- 実行 → 'app'を実行
APIキーは不要です。アプリはCrocDBの公開APIを使用します:
- ベースURL:
https://api.crocdb.net/ - ドキュメント: CrocDB API Docs
./gradlew assembleDebug./gradlew assembleReleaseAPKは次に生成されます: app/build/outputs/apk/
- 複数の同時ダウンロード
- 各ダウンロードの進捗追跡
- 進行中のダウンロードをキャンセル
- 自動再試行付きエラー処理
- 利用可能容量の確認
- 外部SDカードサポート
- ZIPアーカイブの展開
- 非アーカイブファイルのコピー/移動
- インストール中の進捗追跡
- 再試行可能な赤いクリック可能アイコンによるエラー処理
- インストール後の自動UI更新
- インストールフォルダを開く
- 互換性の有効/無効
- ES-DE ROMsフォルダの選択
- 正しい構造への自動インストール
- 自動マッピング
mother_code→ フォルダ
- ダウンロード/インストール追跡用
.statusファイル - 同じファイルの複数ダウンロードをサポートするマルチライン形式
- ユーザー確認付き履歴クリア
将来のバージョンで計画されている機能:
-
マルチソース構造の実装
- CrocDB以外の複数のROMソースのサポート
- 設定でのソース設定と選択
- 異なるソースからの結果の統一
-
ScreenScraper.frサポート
- ScreenScraper APIとの統合によるROMデータの充実
- ユーザーのプライベートアカウントによる名前、説明、画像の改善
- 設定でのScreenScraper認証情報の設定
- アカウントが設定されていない場合の自動フォールバック
-
カスタムROMリストと一括ダウンロード
- カスタムROMリストの作成
- 複数リストの保存と管理
- リスト内の全ROMの一括ダウンロード
- 複数ダウンロードの優先順位とキューの管理
アプリは現在8言語をサポートしています:
- 🇮🇹 イタリア語(デフォルト)
- 🇬🇧 英語
- 🇪🇸 スペイン語
- 🇩🇪 ドイツ語
- 🇯🇵 日本語
- 🇫🇷 フランス語
- 🇨🇳 簡体字中国語
- 🇵🇹 ポルトガル語
アプリは自動的にデバイスの言語を使用します。言語がサポートされていない場合、デフォルトでイタリア語を使用します。
貢献を歓迎します!以下の手順に従ってください:
- プロジェクトをフォーク
- 機能用のブランチを作成(
git checkout -b feature/AmazingFeature) - 変更をコミット(
git commit -m 'Add some AmazingFeature') - ブランチにプッシュ(
git push origin feature/AmazingFeature) - プルリクエストを開く
- Kotlinの規則に従う
- UIにはJetpack Composeを使用
- 可能な限りテストを書く
- パブリックAPIを文書化
- コードをクリーンで読みやすく保つ
このプロジェクトはMITライセンスの下でリリースされています。詳細についてはLICENSEファイルを参照してください。
プラットフォームSVGロゴは以下によって提供されています:
- alekfull-nx-es-de - ES-DEロゴリポジトリ
- サポートとフィードバックを提供するレトロゲームコミュニティ
- すべての貢献者とアプリテスター
重要:このアプリは教育および研究目的で作成されています。
- ROMの使用には元のゲームの合法的所有が必要です
- 常にあなたの国の著作権法を尊重してください
- アプリはROMを提供するのではなく、公開データベースへのアクセスを促進するだけです
- 作者はアプリケーションの誤用について責任を負いません
作者: mccoy88f
リポジトリ: https://github.com/mccoy88f/Tottodrillo
Issues: バグを見つけたり、提案がある場合は、Issueを開いてください
このプロジェクトが気に入り、サポートしたい場合は、コーヒーをご購入いただけます!🍺
あなたのサポートは、開発を継続し、アプリを改善するのに役立ちます。
Made with ❤️ for the retro gaming community
