このプロジェクトについて
概要
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 ファイル参照)。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.