# SDK mobile dan web

Source: https://help.didit.me/id/integration/mobile-sdks
Updated: 2026-10-12

SDK native iOS, Android, React Native, dan Flutter menempatkan alur di aplikasi dan satu-satunya jalur yang mendukung NFC; SDK web menyematkannya di frontend.

SDK native tersedia untuk **iOS, Android, React Native dan Flutter**; SDK web
menyematkan alur di frontend Anda. Gunakan SDK native jika Anda membutuhkan
**NFC** atau perilaku kamera terbaik - WebView tidak memberikan keduanya. Hasil
tetap dikirim lewat webhook, bukan dari SDK.

## Kenapa memilih SDK dibanding redirect

[Video: Panduan integrasi lengkap - Didit Academy](https://www.youtube.com/watch?v=fX03-WEu_EI)

Hosted redirect adalah yang paling sedikit membutuhkan usaha dan sebenarnya sudah cukup baik untuk sebagian besar alur. SDK layak dipakai ketika:

- **Anda membutuhkan NFC.** Chip di dalam paspor atau ID tidak bisa dibaca dari halaman browser. SDK native adalah satu-satunya jalur. Lihat [verifikasi chip NFC](https://help.didit.me/id/documents-coverage/nfc-chip-verification).
- **Anda tidak ingin pengguna keluar dari aplikasi Anda.** Redirect keluar lalu kembali adalah titik drop-off yang nyata di mobile.
- **Anda menginginkan perilaku kamera terbaik.** Akses kamera native lebih andal dibanding browser, terutama di perangkat yang lebih lama.

## Apa saja yang tersedia

[Video: Pilih SDK Didit yang tepat - Didit Academy](https://www.youtube.com/watch?v=qHada8ZY24Q&t=14)

| Platform | Catatan |
|---|---|
| **iOS** | Didistribusikan sebagai XCFramework |
| **Android** | Didistribusikan lewat Maven |
| **React Native** | Membungkus modul native; mendukung New Architecture |
| **Flutter** | Membungkus modul native |
| **JavaScript / web** | Menyematkan alur hosted di frontend web Anda |
| **In-context iframe** | Menampilkan alur di dalam halaman Anda alih-alih redirect |

![Halaman integrasi dengan tautan SDK dan dokumentasi](https://help.didit.me/screenshots/integrate-light.webp)

*Semua SDK dimulai dari halaman yang sama dengan API.*

iOS mendukung Swift Package Manager dan CocoaPods; tambahkan izin kamera dan NFC di `Info.plist` bila diperlukan. Android tersedia melalui Maven. React Native mendukung Expo melalui build pengembangan dengan modul native, bukan Expo Go.

Persyaratan versi dan minimum platform berubah seiring rilis, jadi periksa [dokumentasi SDK](https://docs.didit.me/integration/native-sdks/overview) yang terbaru alih-alih cuplikan dari halaman bantuan ini - dan jika Anda menggunakan versi framework tertentu (misalnya versi Expo SDK tertentu), konfirmasikan kompatibilitasnya dengan kontak Didit Anda sebelum menetapkannya dalam sebuah sprint.

## WebView bukan SDK native

Membungkus alur web hosted di dalam WebView terlihat seperti memberi Anda pengalaman di dalam aplikasi. Namun sebenarnya itu hanya memberi Anda tampilannya saja:

- **Tidak ada NFC.** Chip tetap tidak bisa dibaca.
- **Izin kamera lebih rumit.** Akses kamera WebView bergantung pada konfigurasi aplikasi host, dan jika salah konfigurasi akan menghasilkan laporan "kamera tidak pernah terbuka" persis seperti yang dibahas di [mengatasi masalah liveness dan face match](https://help.didit.me/id/liveness-biometrics/liveness-and-face-match-issues).
- **Locale mengikuti aplikasi, bukan pengguna.** WebView melaporkan locale aplikasi host, jadi sertakan `language` secara eksplisit saat membuat sesi. Lihat [mengatur bahasa verifikasi](https://help.didit.me/id/workflows/verification-languages).

Jika Anda sudah repot-repot membangun alur di dalam aplikasi, gunakan SDK native.

## Hasil tetap datang dari webhook

Ini yang sering membuat orang tertipu: SDK memberi tahu aplikasi Anda bahwa pengguna telah menyelesaikan alur. Itu **bukan** sumber otoritatif dari keputusan verifikasi.

Keputusan dihasilkan di sisi server setelah pemeriksaan selesai dijalankan, dan sampai ke Anda lewat [webhook](https://help.didit.me/id/integration/webhooks-basics). Jangan pernah memberikan akses hanya berdasarkan callback penyelesaian dari SDK - sinyal di sisi klien sangat mudah dipalsukan, dan pemeriksaannya bahkan mungkin belum selesai saat callback tersebut terpicu.

> **Warning:** Menganggap "SDK bilang selesai" sama dengan "pengguna sudah terverifikasi" adalah
> kesalahan paling fatal yang bisa terjadi dalam integrasi mobile. Konfirmasikan di
> server Anda, dari webhook atau endpoint keputusan, sebelum Anda membuka akses apa pun.

## Satu aplikasi konsumen, atau aplikasi Anda sendiri?

Tidak ada aplikasi konsumen Didit terpisah yang menerima limpahan sesi hosted untuk langkah seperti NFC. Jika Anda ingin semuanya - NFC dan non-NFC - berada di dalam satu pengalaman aplikasi, aplikasi itu adalah **milik Anda sendiri**, dengan SDK yang disematkan di dalamnya.

## Distribusi dan konflik dependency

Integrasi SDK native terkadang berbenturan dengan dependency lain di aplikasi host - library transitif yang sama, atau subspec yang mengunci versi yang juga dikunci oleh komponen lain. Jika Anda mengalami ini, itu adalah masalah konkret dan bisa direproduksi yang sebaiknya dilaporkan beserta manifest dependency Anda alih-alih diakali dengan mengunci versi lama: perbaikannya biasanya harus ada di SDK.

## Menguji di perangkat

Pilih **Sandbox** melalui tombol di bawah nama aplikasi, buat API key sandbox, lalu gunakan. Pemeriksaan disimulasikan, tidak ditagih, dan hasilnya bisa Anda pilih.

[menguji di sandbox](https://help.didit.me/id/getting-started/sandbox-and-testing)
