프로젝트 소개
개요
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 파일 참조).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.