このプロジェクトについて
Braindanceは、Kotlin MultiplatformとCompose Multiplatformで構築されたクロスプラットフォームのゲーム追跡アプリケーションで、Android、iOS、ブラウザ(Wasm)クライアント間でUIとロジックを共有します。バックエンドはKotlin/JVMのKtor APIで、IGDBデータベースとGamerPower giveawayサービスからのデータをプロキシします。
主な機能には、ゲームの検索と詳細の探索、お気に入りへの追加、統合カレンダーによる発売日の追跡、ゲームgiveawayの発見、最新ゲームニュースの閲覧が含まれます。すべてのクライアントプラットフォームは、IGDBおよびGamerPowerデータのためにバックエンドを呼び出します。
プロジェクト構成は関心を分離しています:androidApp(Androidホスト)、shared(Compose UI、アプリロジック、全プラットフォーム向けネットワーキング)、iosApp(Xcode/SwiftUIホスト)、webApp(Compose Multiplatformブラウザホスト)、backend(Ktor API)。バックエンドはモバイルアプリとは独立してバージョン管理されています。現在のモバイルリリースは0.3.1、バックエンドは0.3.2です。
IGDB認証にはTwitch開発者アプリケーションのクライアントIDとクライアントシークレットを使用します(別途APIキーは不要)。GamerPowerはAPIキーを必要としません。Twitch認証情報はバックエンドのランタイムシークレットストアに保存され、クライアントビルドには決して含まれません。バックエンドURLはクライアントビルドに埋め込まれますが、シークレットとしては扱われません。
デプロイ:GitHub Actionsがバックエンドをテストおよびパッケージ化し、masterからGHCRにコンテナイメージを公開します。ランタイム設定とコスト管理のためのCloud Runデプロイガイドが提供されています。Webクライアントは静的ファイルを含むweb-appブランチに公開され、GitHub Pages経由でカスタムドメインをサポートします。プロジェクトはバックエンドURLなしでもビルドできますが、IGDBを利用するフローにはTwitch認証情報を持つ到達可能なバックエンドが必要です。
要件にはJDK 21、Android向けのAndroid SDK API 37、iOSビルド用のmacOSとXcode、バックエンド用のコンテナホストが含まれます。プロジェクトはGPL-3.0の下でライセンスされ、活発に開発中です。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.