# Flutter SDK

## 1. SDK 추가하기

프로젝트 루트 디렉토리에서 다음과 같이 marketap\_sdk를 설치합니다. 최신 버전은 아래 배지를 통해 확인 가능합니다.

<div align="left"><img src="https://img.shields.io/pub/v/marketap_sdk.svg" alt=""></div>

```sh
$ flutter pub add marketap_sdk
```

추가 완료 후 `main.dart`에 다음과 같이 초기화 코드를 작성해줍니다. [프로젝트 ID ](https://docs.marketap.io/t3ZS4WXNMj0HK27EtIMV/developer/sdk-integrating/initialize/broken-reference)는 마켓탭 콘솔의 프로젝트 설정에서 확인 가능합니다.

```dart
import 'package:marketap_sdk/marketap_sdk.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  Marketap.initialize('PROJECT_ID');
  runApp(const MyApp());
}
```

{% hint style="success" %}
보유한 프로젝트의 Project ID 값은 [이 문서](https://docs.marketap.io/t3ZS4WXNMj0HK27EtIMV/developer/getting-started/marketap-overview/project-setting)를 통해 확인이 가능합니다.
{% endhint %}

## 2. IOS 설정

FlutterAppDelegate에 다음과 같이 Marketap 설정을 완료해줍니다.&#x20;

{% tabs %}
{% tab title="Swift" %}

<pre class="language-swift"><code class="lang-swift">import MarketapSDK

@main
@objc class AppDelegate: FlutterAppDelegate {
    override func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        GeneratedPluginRegistrant.register(with: self)
<strong>        Marketap.application(application, didFinishLaunchingWithOptions: launchOptions)
</strong>        
        return super.application(application, didFinishLaunchingWithOptions: launchOptions)
    }
}
</code></pre>

{% endtab %}
{% endtabs %}

## 3. Android 설정

Marketap Android SDK는 [Jitpack](https://jitpack.io/)을 통해 배포되고 있습니다.  Flutter프로젝트의 android 디렉토리 최상단 build.gradle.kts 파일에 아래 repository를 추가해주세요.

<pre class="language-kts"><code class="lang-kts">dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {		
        mavenCentral()
<strong>	maven { url = uri("https://jitpack.io") }
</strong>    }
}
</code></pre>

이어서, AndroidManifest.xml 파일에 아래 권한들을 추가합니다. 각각 푸시 발송, 이벤트 및 유저정보 수집을 목적으로 합니다.

```xml
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.INTERNET" />
```

## 4. 이어서 진행하기

아래 카드를 통해 Flutter에 필요한 연동을 이어서 하실 수 있습니다. Marketap SDK가 권장하는 기능 연동 순서는 [functions](https://docs.marketap.io/t3ZS4WXNMj0HK27EtIMV/developer/sdk-integrating/functions "mention") 페이지를 확인해주세요.

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Event 및 User 연동</td><td><a href="../../taxonomy/sdk">sdk</a></td></tr><tr><td>Push Notification 연동</td><td><a href="../../push-notification/overview">overview</a></td></tr><tr><td>In-App Campaign</td><td><a href="../../in-app-message">in-app-message</a></td></tr><tr><td>심화 연동</td><td><a href="../../advanced-usage/overview">overview</a></td></tr></tbody></table>
