프로젝트 소개

개요 Rybbit Mobile은 Rybbit 분석 서버에 연결하는 커뮤니티가 유지 관리하는 Flutter 애플리케이션입니다. 개인정보 보호와 오픈소스 개발에 중점을 둔 웹 분석 데이터를 보기 위한 네이티브 모바일 경험을 제공합니다. 스크린샷 앱에는 대시보드 개요, 분석 차트, 세션 목록, 사이트 설정 등 화면이 포함되어 있습니다. 추가 스크린샷에는 국가 지도, 페이지 목록 및 세부 세션 보기들이 표시됩니다. 기능 - 실시간 방문자 수, 조직 필터링 및 시간 범위 선택기를 포함한 대시보드. - 사용자, 세션, 페이지뷰, 이탈률, 지속 시간 등 시간 시계열 차트. - 상세 지표: 상위 페이지, 리퍼러, 국가(국기 포함), 장치, 브라우저, 운영체제. - 색상 코드화된 평가 및 추세 차트를 포함한 핵심 웹 유틸리티 모니터링(LCP, CLS, FCP, TTFB, INP). - 사용자 정의 이벤트 개요, 속성 분해 및 외부 링크 추적. - 경로 기반 및 이벤트 기반 목표 생성 및 전환율이 포함된 Funnel 시각화. - 국가 국기, 브라우저 정보, 진입 페이지가 포함된 세션 목록; 세션 세부 정보는 전체 이벤트 타임라인과 재생을 표시합니다. - 발생 횟수 및 영향을 받은 세션을 포함한 자바스크립트 오류 추적. - 추적 토글, 제외된 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 이상)용 Xcode. - 작동 중인 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 키 인증. 로그인 화면에서 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/ // 공통 모델, 유틸리티, 재사용 가능한 위젯 각 기능은 데이터(API), 응용 프로그램(상태) 및 표현(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`을 실행합니다. 호환성 - 안드로이드: API 21(Lollipop) 이상. - iOS: 버전 12.0 이상. - 백엔드: Rybbit v1.0 이상과 호환. 기여하기 기여는 환영합니다. 저장소를 포크하고 기능 브랜치를 만든 후 변경 사항을 커밋하고 푸시한 다음 풀 리퀘스트를 열어주세요. 기존 코드 스타일을 따르고 제출 전에 테스트를 실행하세요. 라이선스 이는 비공식 커뮤니티 프로젝트입니다. 하부 Rybbit 플랫폼은 rybbit-io 조직에서 개발되었습니다. 앱은 저장소와 동일한 라이선스 아래 배포됩니다(LICENSE 파일 참조).