# 리소스 및 샘플

## 리소스 목록

| 플랫폼          | 리포지터리                                                                   | 샘플 앱                                                                             |
| ------------ | ----------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| Android      | [GitHub 리포지토리](https://github.com/IGAWorksDev/dfinery-android-sdk)      | [샘플앱](https://github.com/IGAWorksDev/dfinery-android-sdk/tree/main/sample)       |
| iOS          | [GitHub 리포지토리](https://github.com/IGAWorksDev/dfinery-ios-sdk)          | [샘플앱](https://github.com/IGAWorksDev/dfinery-ios-sdk/tree/main/sample)           |
| Hybrid App   | N/A                                                                     | [샘플앱](https://github.com/IGAWorksDev/dfinery-hybrid-app-sample)                  |
| Flutter      | [GitHub 리포지토리](https://github.com/IGAWorksDev/dfinery-flutter-sdk)      | [샘플앱](https://github.com/IGAWorksDev/dfinery-flutter-sdk/tree/main/example)      |
| React Native | [GitHub 리포지토리](https://github.com/IGAWorksDev/dfinery-react-native-sdk) | [샘플앱](https://github.com/IGAWorksDev/dfinery-react-native-sdk/tree/main/example) |
| Unity        | [GitHub 리포지토리](https://github.com/IGAWorksDev/dfinery-unity-sdk)        | [샘플앱](https://github.com/IGAWorksDev/dfinery-unity-sdk-example)                  |

## 샘플 앱 빌드

{% tabs %}
{% tab title="Android" %}

#### SDK 연동하기

1. 샘플앱 저장소에서 필요한 샘플 앱을 다운로드 받습니다.
2. `BaseApplication.java` 또는 `BaseApplication.kt`의 `onCreate()`내 Dfinery에 **Service ID**를 등록합니다.
3. 프로젝트를 빌드하여 실행합니다.

#### 푸시 연동하기

1. [Firebase 프로젝트에 앱을 추가](https://firebase.google.com/docs/guides)합니다.
2. `app` 경로에 [구글 설정 파일](https://firebase.google.com/docs/android/setup#add-config-file)을 추가합니다.
3. 프로젝트를 빌드하여 실행합니다.
   {% endtab %}

{% tab title="iOS" %}

#### SDK 연동하기

1. 샘플앱 저장소에서 필요한 샘플 앱을 다운로드 받습니다.
2. `AppDelegate.swift`의 `didFinishLaunchingWithOptions`내 Dfinery에 **Service ID**를 등록합니다.
3. 프로젝트를 빌드하여 실행합니다.
   {% endtab %}

{% tab title="Flutter" %}

#### SDK 연동하기

1. 샘플앱 저장소에서 필요한 샘플 앱을 다운로드 받습니다.
2. `lib` 폴더의 `main.dart` 파일을 실행합니다.
3. `initState()` 메소드에서 Dfinery에 **Service ID**를 등록합니다.
4. 프로젝트를 빌드하여 실행합니다.

#### 푸시 연동하기

1. [Firebase 프로젝트에 앱을 추가](https://firebase.google.com/docs/guides)합니다.
2. `android/app` 경로에 [구글 설정 파일](https://firebase.google.com/docs/android/setup#add-config-file)을 추가합니다.
3. 프로젝트를 빌드하여 실행합니다.
   {% endtab %}

{% tab title="React Native" %}

#### SDK 연동하기

1. 샘플앱 저장소에서 필요한 샘플 앱을 다운로드 받습니다.
2. `src` 폴더의 `App.tsx` 파일을 실행합니다.
3. `sdkInit()` 메소드에서 Dfinery에 **Service ID**를 등록합니다.
4. 프로젝트를 빌드하여 실행합니다.

#### 푸시 연동하기

1. [Firebase 프로젝트에 앱을 추가](https://firebase.google.com/docs/guides)합니다.
2. `android/app` 경로에 [구글 설정 파일](https://firebase.google.com/docs/android/setup#add-config-file)을 추가합니다.
3. 프로젝트를 빌드하여 실행합니다.
   {% endtab %}

{% tab title="Unity" %}

#### SDK 연동하기

1. 샘플앱 저장소에서 필요한 샘플 앱을 다운로드 받습니다.
2. `Assets/Resources` 폴더의 `MainHandler.cs` 파일을 실행합니다.
3. `Awake()` 메소드에서 Dfinery에 **Service ID**를 등록합니다.
4. 프로젝트를 빌드하여 실행합니다.

#### 푸시 연동하기

1. Unity Package Manager를 사용하여 [External Dependency Manager for Unity](https://github.com/googlesamples/unity-jar-resolver?tab=readme-ov-file#getting-started)를 추가합니다.
2. 최신 버전의 Firebase Unity SDK를 [다운로드](https://firebase.google.com/download/unity)합니다.
3. Unity Editor에서 `Assets -> Import Package -> Custom Package...`를 클릭합니다.
4. `FirebaseMessaging.unitypackage` 파일을 import 합니다.
5. `Assets` 경로에 [구글 설정 파일](https://firebase.google.com/docs/android/setup#add-config-file)을 추가합니다.
6. 프로젝트를 빌드하여 실행합니다.
   {% endtab %}
   {% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.dfinery.ai/developer-guide/common/resource-and-sample.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
