このプロジェクトについて

概要 Rybbit Mobile は、コミュニティがメンテナンスする Flutter アプリケーションで、Rybbit アナリティクスサーバーに接続します。プライバシーとオープンソース開発に重点を置き、ウェブ解析データをネイティブなモバイル体験で閲覧できます。 スクリーンショット アプリには、ダッシュボード概要、分析チャート、セッションリスト、サイト設定などの画面が含まれます。追加のスクリーンショットでは、国別マップ、ページリスト、詳細なセッションビューが表示されます。 機能 - リアルタイム訪問者数、組織フィルタリング、時間範囲ピッカーを備えたダッシュボード。 - ユーザー、セッション、ページビュー、直帰率、滞在時間などの時系列チャート。 - 詳細指標:トップページ、リファラー、国(フラッグ付き)、デバイス、ブラウザ、OS。 - Core Web Vitals(LCP、CLS、FCP、TTFB、INP)の監視、カラーコード評価とトレンドチャート。 - カスタムイベント概要、プロパティ別内訳、外部リンクトラッキング。 - パスベース・イベントベースの目標作成と、コンバージョン率付きファネル可視化。 - 国旗、ブラウザ情報、エントリーページを含むセッションリスト;セッション詳細では全イベントタイムラインとリプレイを表示。 - 発生回数と影響を受けたセッションを示す JavaScript エラートラッキング。 - サイト設定(トラッキング切替、除外 IP/国)と組織メンバー管理。 - ダーク/ライト/自動テーマ、言語選択(11 言語)、サーバー URL、認証方式の設定。 対応言語 英語 (en)、日本語 (ja)、チェコ語 (cs)、韓国語 (ko)、ドイツ語 (de)、ポーランド語 (pl)、スペイン語 (es)、ポルトガル語 (pt)、フランス語 (fr)、中国語 (zh)、イタリア語 (it)。 はじめに 前提条件 - Flutter SDK 3.38+。 - Android SDK (API 21+) または iOS 用 Xcode (12+)。 - 稼働中の Rybbit インスタンスへのアクセス。 セットアップ 1. リポジトリをクローンします。 2. `flutter pub get` を実行して依存関係をインストールします。 3. `flutter pub run build_runner build --delete-conflicting-outputs` でコードを生成します。 4. `flutter gen-l10n` でローカリゼーションファイルを生成します。 5. `.env.example` を `.env` にコピーし、必要な変数を入力します。 6. `flutter run --dart-define-from-file=.env` でアプリを実行するか、同様に APK/IPA をビルドします。 認証 メール+パスワードログインと API キー認証の 2 方式がサポートされています。ログイン画面で Rybbit サーバー URL と認証情報を入力します。 技術スタック - フレームワーク: Flutter 3.38+ / Dart 3.10+ - 状態管理: Riverpod - ルーティング: go_router - HTTP クライアント: Dio(クッキー処理付き) - ローカルストレージ: Hive と Flutter Secure Storage - チャート: fl_chart - シリアライズ: Freezed + json_serializable - ローカリゼーション: Flutter gen-l10n(ARB ファイル) - オプションエラートラッキング: Sentry(`SENTRY_DSN` で設定) アーキテクチャ プロジェクトは機能優先のモジュラー構成を採用しています: lib/ core/ // 設定、ネットワーク、ルーティング、テーマ、ストレージ、Sentry features/ // 各分析機能(ダッシュボード、セッション、パフォーマンス等) l10n/ // 翻訳 ARB ファイル shared/ // 共通モデル、ユーティリティ、再利用ウィジェット 各機能は data(API)、application(状態)、presentation(UI)層に分かれています。 開発コマンド - デバッグ: `flutter run --dart-define-from-file=.env` - APK ビルド: `flutter build apk --debug|--release --dart-define-from-file=.env` - コード生成: `flutter pub run build_runner build --delete-conflicting-outputs` - 翻訳再生成: `flutter gen-l10n` - 解析: `flutter analyze` - テスト: `flutter test` 新しい言語の追加 `app_en.arb` を基に新しい ARB ファイルを作成し、すべてのキーを翻訳します。アプリエントリーポイントのサポートロケールリストにロケールコードを追加し、`flutter gen-l10n` を実行します。 互換性 - Android: API 21(Lollipop)以降。 - iOS: バージョン 12.0 以降。 - バックエンド: Rybbit v1.0 以降に対応。 コントリビューション 貢献は歓迎します。リポジトリをフォークし、機能ブランチを作成、変更をコミット、プッシュし、プルリクエストを送ります。既存のコードスタイルに従い、提出前にテストを実行してください。 ライセンス これは非公式のコミュニティプロジェクトです。基盤となる Rybbit プラットフォームは rybbit‑io 組織によって開発されています。アプリはリポジトリと同じライセンスでリリースされています(LICENSE ファイル参照)。