80 lines
3.0 KiB
Markdown
80 lines
3.0 KiB
Markdown
# Aptabase SDK for WPF
|
|
|
|
WPF 애플리케이션을 위한 Aptabase SDK입니다. Aptabase는 오픈 소스, 개인 정보 보호 우선, 그리고 간단한 사용법을 지향하는 앱 분석 도구입니다.
|
|
|
|
## 사용법
|
|
|
|
### 1. 초기화
|
|
|
|
먼저 Aptabase에서 `App Key`를 발급받아야 합니다. 이 키는 Aptabase 대시보드의 왼쪽 '설정' 메뉴에서 찾을 수 있습니다.
|
|
|
|
WPF 애플리케이션이 시작될 때, `App.xaml.cs` 파일의 `OnStartup` 메서드에서 `AptabaseTracker.Init`을 호출하여 SDK를 초기화합니다.
|
|
|
|
### Self-Hosting
|
|
|
|
직접 호스팅하는 서버를 사용하려면, `AptabaseOptions`를 사용하여 `Host` 속성을 지정해야 합니다.
|
|
|
|
```csharp
|
|
// App.xaml.cs
|
|
using System.Windows;
|
|
using Aptabase.WPF;
|
|
|
|
public partial class App : Application
|
|
{
|
|
protected override void OnStartup(StartupEventArgs e)
|
|
{
|
|
base.OnStartup(e);
|
|
|
|
AptabaseTracker.Init("A-SH-0265005374", new AptabaseOptions // 👈 사내 Self-Host 중인 서버 Test App 입니다. 실트랙킹을 위해서는 별도 발급해야 합니다.
|
|
{
|
|
Host = "https://aptabase.hmac.kr" // 👈 사내 Self-Host 중인 서버 주소를 입력합니다.
|
|
});
|
|
}
|
|
}
|
|
```
|
|
|
|
### 2. 이벤트 추적
|
|
|
|
초기화가 완료되면, 애플리케이션의 어느 곳에서든 `AptabaseTracker.TrackEvent` 정적 메서드를 사용하여 이벤트를 추적할 수 있습니다.
|
|
|
|
예를 들어, `MainWindow.xaml.cs`에서 버튼 클릭 이벤트를 추적하는 방법은 다음과 같습니다.
|
|
|
|
```csharp
|
|
// MainWindow.xaml.cs
|
|
using System.Windows;
|
|
using Aptabase.WPF; // 👈 Aptabase 네임스페이스를 추가합니다.
|
|
|
|
public partial class MainWindow : Window
|
|
{
|
|
public MainWindow()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void OnCounterClicked(object sender, RoutedEventArgs e)
|
|
{
|
|
// "button_clicked" 라는 이름으로 이벤트를 전송합니다.
|
|
AptabaseTracker.TrackEvent("button_clicked");
|
|
}
|
|
}
|
|
```
|
|
|
|
`TrackEvent` 메서드는 사용자 정의 속성을 포함할 수도 있습니다.
|
|
|
|
```csharp
|
|
// 속성 없이 이벤트 전송
|
|
AptabaseTracker.TrackEvent("app_started");
|
|
|
|
// 사용자 정의 속성과 함께 이벤트 전송
|
|
AptabaseTracker.TrackEvent("screen_view", new() {
|
|
{ "name", "Settings" }
|
|
});
|
|
```
|
|
|
|
### 주요 참고사항
|
|
|
|
1. **자동 정보 수집:** SDK는 OS, 앱 버전 등 유용한 시스템 정보를 이벤트와 함께 자동으로 수집합니다.
|
|
2. **수동 추적:** SDK는 자동으로 이벤트를 추적하지 않습니다. `TrackEvent`를 직접 호출하여 원하는 이벤트만 기록할 수 있습니다.
|
|
3. **비동기 처리:** `TrackEvent`는 백그라운드에서 실행되므로 UI 스레드를 차단하지 않습니다.
|
|
4. **데이터 타입:** 사용자 정의 속성에는 문자열과 숫자 타입의 값만 사용할 수 있습니다.
|
|
5. **자동 예외 추적:** SDK는 처리되지 않은 예외(`Unhandled Exception`)를 자동으로 감지하여 `app_exception` 이벤트를 기록합니다. |