Flutter 애플리케이션 접속¶
Flutter 애플리케이션의 메트릭 데이터를 수집하여 애플리케이션 성능을 시각적으로 분석합니다.
읽기 경로¶
- 처음 접속: 빠른 시작 먼저 확인
- 전체 접속: 이 문서를 계속 읽기
- 초기화 매개변수: SDK 초기화, RUM 설정, Log 설정, Trace 설정 확인
- 사용자 정의 기능: 사용자 정의 태그 사용, 데이터 수집 사용자 정의 규칙, 데이터 수집 마스킹 확인
- 고급 시나리오: WebView 데이터 모니터링, 네이티브와 Flutter 혼합 개발, Flutter Session Replay, Publish Package 관련 설정 확인
- Flutter Web 프로젝트: 현재 Flutter SDK는 Web bridge를 제공하지 않습니다. Web 애플리케이션 접속에 따라 Browser RUM SDK를 사용하세요.
- 문제 해결: 장애 진단 확인
- 데이터 모델: 애플리케이션 데이터 수집 확인
전제 조건¶
참고: RUM Headless 서비스를 이용 중인 경우, 전제 조건이 자동으로 구성되어 있으므로 애플리케이션을 바로 접속하면 됩니다.
- DataKit 설치
- RUM 수집기 설정
- DataKit을 공개 네트워크에서 접근 가능하게 설정하고 IP 지리 정보 데이터베이스 설치
애플리케이션 접속¶
참고
현재 Flutter 버전은 Android 및 iOS 플랫폼만 지원합니다.
- 사용자 분석 > 새 애플리케이션 > Android/iOS로 이동
- Flutter Android와 Flutter iOS용으로 각각 두 개의 애플리케이션을 생성하여 Android 및 iOS 플랫폼의 RUM 데이터를 각각 수신
- 각 플랫폼 애플리케이션에 해당하는 애플리케이션 이름과 애플리케이션 ID 입력
-
애플리케이션 접속 방식 선택:
- 공용 네트워크 DataWay: DataKit 수집기를 설치하지 않고 RUM 데이터를 직접 수신
- 로컬 환경 배포: 전제 조건을 충족한 후 RUM 데이터 수신
Flutter Web 프로젝트¶
ft_mobile_agent_flutter는 현재 Android/iOS 네이티브 브리지 기능만 제공하며, Flutter Web bridge는 제공하지 않습니다.
애플리케이션이 Flutter Web에서 실행되는 경우, Web 유형의 RUM 애플리케이션을 생성하고 Web 애플리케이션 접속에 따라 Browser RUM SDK를 사용하세요. 이 방식은 Browser RUM SDK 접속에 해당하며, 이 문서의 후반부에 나오는 Android/iOS 네이티브 브리지 API를 사용하지 않으며, Dart 코드에서 ft_mobile_agent_flutter를 호출하여 Web RUM을 초기화할 필요도 없습니다.
Flutter Web 프로젝트의 접속 위치는 일반적으로 프로젝트 루트 디렉터리의 web/index.html이며, Flutter 시작 스크립트 이전에 Browser RUM SDK 또는 비즈니스 측 초기화 스크립트를 로드할 수 있습니다. build/web 디렉터리는 수정하지 마십시오. 이 디렉터리는 Flutter 빌드 아티팩트로, flutter build web을 실행하면 다시 생성됩니다.
설치¶
Pub.Dev: ft_mobile_agent_flutter
소스 코드 주소: https://github.com/GuanceCloud/datakit-flutter
Demo 주소: https://github.com/GuanceCloud/datakit-flutter/example
프로젝트 경로에서 다음 명령어를 실행하세요:
그러면 패키지의 pubspec.yaml에 종속성이 추가됩니다:
dependencies:
ft_mobile_agent_flutter: [latest_version]
# flutter 2.0 호환 버전은 아래 참조 방식을 사용하세요
ft_mobile_agent_flutter:
git:
url: https://github.com/GuanceCloud/datakit-flutter.git
ref: [github_legacy_lastest_tag]
Dart 코드에서 import:
ft_mobile_agent_flutter0.5.7부터 Session Replay는 별도 패키지ft_session_replay_flutter에서 제공됩니다. 세션 리플레이를 활성화하려면 Flutter Session Replay를 계속 읽어주세요.
Android 통합 추가 설정¶
- Gradle Plugin ft-plugin 설정: 앱 시작 이벤트 및 Android Native 관련 이벤트(페이지 이동, 클릭 이벤트, Native 네트워크 요청, WebView 데이터) 수집에 사용
- 시작 횟수와 시작 시간을 통계하려면 Flutter 버전에 맞게 사용자 정의
Application을 생성하고AndroidManifest.xml에 선언해야 함
Flutter 3.28.x 이하 버전은 이전 방식 사용:
import io.flutter.app.FlutterApplication
/**
* 【시작 횟수】와 【시작 시간】을 통계하려면 여기에 사용자 정의 Application을 추가해야 합니다
*/
class CustomApplication : FlutterApplication() {
}
Flutter 3.29.0 이상 버전은 새 방식 사용:
import android.app.Application
/**
* 【시작 횟수】와 【시작 시간】을 통계하려면 여기에 사용자 정의 Application을 추가해야 합니다
*/
class CustomApplication : Application() {
}
Flutter 3.29.0 이상 버전 참고 사항
Flutter 3.29.0에서 v1 Android embedding(io.flutter.app.FlutterApplication 포함)이 제거되었습니다. 따라서 해당 버전부터는 위의 새 방식을 사용하세요. Android App 시작 이벤트를 수집하려면 ft-plugin이 사용자 정의 Application의 onCreate()에 시작 리스너 코드를 삽입해야 합니다. android.app.Application(또는 androidx.multidex.MultiDexApplication)을 직접 상속받으세요. 그렇지 않으면 launch_cold 등의 App 시작 이벤트를 수집하지 못할 수 있습니다.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ft.sdk.flutter.agent_example">
<application android:name=".CustomApplication">
//...
</application>
</manifest>
상세 설정 진입점¶
고급 시나리오¶
- 사용자 정의 태그 사용
- 데이터 수집 사용자 정의 규칙
- 데이터 수집 마스킹
- WebView 데이터 모니터링
- 네이티브와 Flutter 혼합 개발
- Flutter Session Replay
- Publish Package 관련 설정
충돌 필드 설명¶
- 특수 키:
track_id, 추적 기능에 사용 - 사용자가
globalContext를 통해 추가한 사용자 정의 태그가 SDK 고유 태그와 동일한 경우, SDK의 태그가 사용자가 설정한 값을 덮어씁니다 -
태그 이름에는 프로젝트 약어 접두사를 추가하는 것을 권장합니다(예:
custom_tag_name) -
프로젝트에서 사용되는
key값은 Android 상수 정의를 참조하세요: Constants.java