Menambahkan dependency ke Capacitor plugin bisa terasa rumit, tapi akan lebih mudah jika dibagi menjadi langkah-langkah yang jelas. Berikut hal yang perlu Anda ketahui:
-
Pahami tools yang digunakan:
-
Siapkan development environment Anda:
- Pasang tools seperti Node.js, npm, Xcode, Android Studio, CocoaPods, dan JDK.
-
Mulai proyek plugin Capacitor Anda:
- Gunakan
npm init @capacitor/pluginuntuk membuat plugin baru.
- Gunakan
-
Tambahkan dependensi JavaScript:
- Gunakan
npm installuntuk dependensi produksi dan pengembangan. - Update
package.jsonuntuk menyertakan peer dependencies seperti@capacitor/core.
- Gunakan
-
Kelola dependencies spesifik platform:
- iOS: Konfigurasi CocoaPods atau SPM dengan library seperti Alamofire atau SwiftyJSON.
- Android: Gunakan Gradle untuk menambah dependencies seperti Gson atau AppCompat.
-
Optimalkan performa:
- Pin versi, audit dependencies, dan selesaikan konflik untuk menjaga stabilitas.
-
Gunakan tools seperti Capgo untuk Live Update:
- Push update secara instan tanpa review App Store.
Perbandingan Cepat Antar Tool:
| Platform | Alat | Contoh Dependency |
|---|---|---|
| JavaScript | npm | npm install lodash --save |
| iOS | CocoaPods/SPM | pod 'Alamofire', '~> 5.6.4' |
| Android | Gradle | implementation 'com.google.code.gson:gson:2.10.1' |
Mengapa ini penting: Mengelola dependency secara efektif memastikan plugin Anda berjalan mulus di berbagai platform, menghemat waktu, dan menghindari error. Mari kita telusuri langkah-langkahnya lebih dalam.
Cara membuat Capacitor plugin untuk iOS/Android

Menyiapkan Lingkungan Pengembangan Anda
Siapkan setup Anda dengan tools yang diperlukan untuk menangani plugin Capacitor dependency secara efektif.
Tools Pengembangan yang Dibutuhkan
Berikut adalah daftar tools yang Anda perlukan:
| Alat | Versi | Tujuan |
|---|---|---|
| Node.js | 16.0.0+ | Lingkungan runtime JavaScript |
| npm | 8.0.0+ | Manajemen paket |
| Xcode | 14.0+ | Pengembangan iOS (khusus Mac) |
| Android Studio | Electric Eel+ | Pengembangan Android |
| CocoaPods | 1.11.0+ | Manajemen dependensi iOS |
| JDK | 11+ | Alat build Android |
Memulai Plugin Baru
Gunakan Capacitor CLI untuk memulai proyek plugin Anda. Ini mencakup menyiapkan platform dan memberi nama plugin Anda dengan format reverse-domain (mis., com.mycompany.plugin):
- Jalankan perintah berikut:
npm init @capacitor/plugin - Pilih platform target Anda (iOS/Android).
- Beri nama plugin Anda dalam format reverse-domain.
Langkah Setup Proyek
-
Update
package.jsonUbah
package.jsonuntuk menyertakan hal berikut:{ "capacitor": { "ios": { "src": "ios" }, "android": { "src": "android" } }, "peerDependencies": { "@capacitor/core": "^5.0.0" } } -
Setup Khusus Platform
-
Untuk iOS, pastikan Podfile Anda menyertakan:
platform :ios, '13.0' use_frameworks! -
Untuk Android, verifikasi
build.gradleberisi:android { compileSdkVersion 33 defaultConfig { minSdkVersion 22 } }
-
-
Atur Environment Variables
Konfigurasi variabel lingkungan berikut untuk tools pengembangan Anda:
Variabel Tujuan Contoh Nilai ANDROID_HOME Lokasi SDK Android /Users/username/Library/Android/sdk JAVA_HOME Path instalasi JDK /Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home XCODE_SELECT Xcode command line tools /Applications/Xcode.app/Contents/Developer
Setelah proyek Anda siap, Anda bisa lanjut ke tahap pengelolaan dependensi JavaScript.
Dependensi JavaScript
Mengelola dependensi JavaScript secara efektif adalah kunci menjaga performa plugin tetap stabil.
npm Instalasi Package

Untuk menginstal dependensi, gunakan perintah berikut:
# Add a production dependency
npm install lodash --save
# Add a development dependency
npm install @types/lodash --save-dev
Pastikan untuk menyertakan peer dependencies secara manual di package.json file Anda. Tes semua dependensi untuk memastikan kompatibilitas di platform web maupun native.
Mengelola package.json
Berikut contohnya package.json konfigurasi:
{
"name": "my-capacitor-plugin",
"version": "1.0.0",
"dependencies": {
"lodash": "^4.17.21"
},
"devDependencies": {
"@types/lodash": "^4.14.195",
"@capacitor/core": "^5.0.0"
},
"peerDependencies": {
"@capacitor/core": "^5.0.0"
}
}
Untuk menjaga konsistensi, kunci versi dependency dengan tepat:
| Tipe Constraint | Contoh | Kasus Penggunaan |
|---|---|---|
| Exact | “5.0.0” | Untuk dependency kritikal yang butuh versi spesifik |
| Caret | “^5.0.0” | Mengizinkan update minor dan patch |
| Tilde | “~5.0.0” | Membatasi update hanya untuk patch |
Menggunakan JavaScript Libraries
Saat mengimpor library, fokus pada pengurangan bundle size:
// Import only the required function
import { isEqual } from 'lodash';
export class MyPlugin {
async compare(options: { value1: any, value2: any }): Promise<boolean> {
return isEqual(options.value1, options.value2);
}
}
Selain itu, pastikan error handling dan type checking sudah benar:
import { Plugin } from '@capacitor/core';
import { validate } from 'your-validation-library';
@Plugin({
name: 'MyPlugin',
platforms: ['web', 'ios', 'android']
})
export class MyPlugin {
async validateData(data: unknown): Promise<void> {
try {
if (!validate(data)) {
throw new Error('Invalid data format');
}
// Continue processing if valid
} catch (error) {
throw new Error(`Validation failed: ${error.message}`);
}
}
}
Selanjutnya, pelajari cara menangani dependency spesifik platform untuk iOS.
Dependency iOS
Bagian ini menjelaskan cara mengelola dependency native iOS di Plugin Capacitor. Setelah Anda menyiapkan dependency JavaScript, langkah berikutnya adalah menangani dependency native iOS.
CocoaPods Setup

Mulailah dengan menginisialisasi CocoaPods di direktori iOS Anda:
cd ios
pod init
Kemudian, perbarui Plugin.podspec file dengan konfigurasi berikut:
Pod::Spec.new do |s|
s.name = 'MyCapacitorPlugin'
s.version = '1.0.0'
s.summary = 'Your plugin description'
s.platform = :ios, '13.0'
s.dependency 'Capacitor'
# Include your iOS dependencies here
s.dependency 'Alamofire', '~> 5.6.4'
end
Konfigurasi Podfile
Setelah inisialisasi CocoaPods, konfigurasi Podfile untuk menyertakan Capacitor dan library pihak ketiga lainnya:
platform :ios, '13.0'
use_frameworks!
def capacitor_pods
pod 'Capacitor', :path => '../../node_modules/@capacitor/ios'
pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios'
end
target 'Plugin' do
capacitor_pods
# Add third-party dependencies
pod 'KeychainAccess', '~> 4.2.2'
pod 'SwiftyJSON', '~> 5.0.1'
end
target 'PluginTests' do
capacitor_pods
end
Berikut adalah beberapa pola konfigurasi dependency yang umum:
| Tipe Constraint | Contoh | Kasus Penggunaan |
|---|---|---|
| Versi Eksak | pod 'KeychainAccess', '4.2.2' |
Saat butuh kontrol presisi, seperti untuk komponen keamanan |
| Versi Minor | pod 'Alamofire', '~> 5.6' |
Untuk API stabil yang mungkin menerima patch update |
| Versi Major | pod 'SwiftyJSON', '> 5.0' |
Jika fleksibilitas antar update dapat diterima |
Dependensi Swift Package
Jika Anda tidak ingin menggunakan CocoaPods, Swift Package Manager (SPM) adalah alternatif yang bagus. Tambahkan dependency SPM langsung di Xcode dengan konfigurasi berikut pada Package.swift file Anda:
// Package.swift
dependencies: [
.package(url: "https://github.com/Alamofire/Alamofire.git", .upToNextMajor(from: "5.6.4")),
.package(url: "https://github.com/SwiftyJSON/SwiftyJSON.git", from: "5.0.1")
]
Untuk menggunakan dependency SPM di plugin code Anda, import dan integrasikan sesuai kebutuhan. Contohnya:
import Capacitor
import Alamofire
@objc(MyPlugin)
public class MyPlugin: CAPPlugin {
@objc func makeRequest(_ call: CAPPluginCall) {
AF.request("https://api.example.com/data").response { response in
// Process the response
call.resolve([
"data": response.data
])
}
}
}
Pendekatan ini memungkinkan Anda memilih antara CocoaPods dan Swift Package Manager sesuai kebutuhan proyek.
Dependensi Android
Siapkan dependency Android untuk memastikan integrasi native yang lancar. Berikut cara mengelola dependency untuk plugin Capacitor Anda.
Gradle Dependensi

Tambahkan konfigurasi berikut ke build.gradle file Anda:
android {
defaultConfig {
minSdkVersion 22
targetSdkVersion 33
}
}
dependencies {
implementation "androidx.appcompat:appcompat:1.6.1"
implementation "com.google.code.gson:gson:2.10.1"
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.8.20"
implementation project(':capacitor-android')
}
Tentukan versi tambahan di buildscript blok:
buildscript {
ext {
androidxCoreVersion = '1.10.1'
kotlinVersion = '1.8.20'
}
}
Setelah dependensi dikonfigurasi, pastikan untuk mengatur repositori yang diperlukan.
Konfigurasi Repositori
Di level proyek build.gradle, sertakan repositori Maven yang dibutuhkan:
allprojects {
repositories {
google()
mavenCentral()
maven { url "https://jitpack.io" }
}
}
Jika Anda menggunakan repositori Maven kustom atau privat, tambahkan kredensial seperti ini:
maven {
url "https://maven.example.com/releases"
credentials {
username = project.findProperty("mavenUsername") ?: System.getenv("MAVEN_USERNAME")
password = project.findProperty("mavenPassword") ?: System.getenv("MAVEN_PASSWORD")
}
}
Setelah repositori diatur, tangani konflik dependensi yang mungkin muncul.
Memperbaiki Masalah Kompatibilitas
Untuk menangani konflik dependensi, terapkan resolusi versi di build.gradle:
configurations.all {
resolutionStrategy {
force "org.jetbrains.kotlin:kotlin-stdlib:1.8.20"
force "androidx.core:core-ktx:1.10.1"
}
}
Berikut adalah strategi untuk menyelesaikan masalah dependensi umum:
| Tipe Masalah | Strategi | Contoh |
|---|---|---|
| Konflik Versi | Paksa versi tertentu | force 'com.google.code.gson:gson:2.10.1' |
| Beberapa Versi | Keluarkan sebuah modul | exclude group: 'org.json', module: 'json' |
| Masalah Transitif | Gunakan versi ketat | strictly 'androidx.core:core-ktx:1.10.1' |
Contohnya, Anda bisa mengecualikan modul yang konflik seperti ini:
dependencies {
implementation('library:name:1.0.0') {
exclude group: 'com.conflicting.dependency'
}
}
Terakhir, optimalkan proses build Anda dengan mengaktifkan caching dan eksekusi paralel di gradle.properties:
org.gradle.caching=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx2048m
Capgo Integrasi

Menggunakan Capgo bersama manajemen dependensi native dan JavaScript membuat update plugin Anda lebih cepat dan mudah.
Tentang Capgo
Capgo adalah platform live update yang dirancang untuk plugin dan aplikasi Capacitor. Dengan lebih dari 23,5 juta update yang dikirim ke 750 aplikasi produksi [1], Capgo memungkinkan developer melakukan push update dependensi dan code secara instan - tanpa perlu review app store. Update diamankan dengan enkripsi end-to-end dan memenuhi standar kepatuhan Apple serta Android.
Fitur Update Capgo
Capgo mempermudah pengelolaan dependensi plugin dengan fitur-fitur berikut:
| Fitur | Cara Kerjanya | Metrik Utama |
|---|---|---|
| Live Update | Push update dalam hitungan menit | 95% user update dalam 24 jam |
| Update Parsial | Download hanya file yang berubah | Rata-rata waktu respons API 434ms |
| Kontrol Versi | Kelola berbagai versi | 82% tingkat keberhasilan global |
| Sistem Channel | Targetkan grup user tertentu | Mendukung berbagai deployment channel |
Sumber: [1]
Capgo bekerja mulus dengan tools CI/CD seperti GitHub Actions, GitLab CI, dan Jenkins, mengotomatiskan update dependency dan memastikan versi plugin tetap konsisten. Tools ini memudahkan integrasi Capgo ke workflow Anda.
Menyiapkan Capgo
Ikuti langkah berikut untuk mengintegrasikan Capgo ke proyek Anda:
-
Install Capgo CLI
Jalankan perintah berikut di terminal Anda:
npx @capgo/cli init -
Atur Preferensi Update
Gunakan dashboard Capgo untuk mengatur deployment channel dan preferensi. Konfigurasi cloud-hosted maupun self-hosted sama-sama didukung.
-
Tambahkan Logika Update
Tambahkan code ini ke file plugin utama Anda untuk mengaktifkan update:
import { Capgo } from '@capgo/capacitor-updater'; // Initialize Capgo const capgo = new Capgo({ appId: 'YOUR_APP_ID', channel: 'production' }); // Check for updates await capgo.checkForUpdate();
“Kami menerapkan agile development dan @Capgo sangat krusial untuk pengiriman berkelanjutan ke pengguna kami!” - Rodrigo Mantica
Capgo juga menyediakan dashboard analytics untuk insight real-time soal tingkat keberhasilan update dan aktivitas user. Fitur seperti one-click rollback dan error tracking membantu menyelesaikan masalah dengan cepat, sehingga update plugin Anda tetap lancar.
Kesimpulan
Review Proses
Mengelola dependency untuk plugin Capacitor melibatkan penyelarasan komponen native (iOS dan Android) dengan komponen JavaScript-nya agar integrasi berjalan lancar. Proses ini mencakup setup khusus platform dan pengelolaan package JavaScript untuk performa terbaik. Mengikuti langkah-langkah yang diuraikan akan membantu menjaga fungsionalitas plugin tetap stabil dan efisien.
Praktik Terbaik
Untuk mengelola dependency secara efektif, pertimbangkan praktik berikut:
| Praktik | Manfaat | Cara Implementasi |
|---|---|---|
| Version pinning | Menghindari masalah tak terduga | Gunakan versi tetap di package.json |
| Isolasi Platform | Meminimalkan konflik | Pisahkan dependensi native |
| Update Rutin | Meningkatkan keamanan | Terapkan patch kritis dengan cepat |
| Audit Dependensi | Deteksi risiko | Jalankan npm audit secara berkala |
Menggunakan tools live update seperti Capgo dapat menyederhanakan dan meningkatkan praktik ini melalui update real-time.
Manfaat Capgo
Capgo menyederhanakan proses manajemen dependensi dengan performa yang kuat. Ini memberikan tingkat pembaruan pengguna sebesar 95% dalam 24 jam dan menjaga waktu respons global API sebesar 434ms [1]. Dengan enkripsi end-to-end, Capgo menjamin update aman yang sesuai dengan panduan Apple dan Android. Bagi tim yang mengelola banyak versi plugin, sistem channel Capgo memungkinkan deployment terarah untuk grup pengguna tertentu.
Berikut sekilas performa Capgo:
| Metrik | Nilai |
|---|---|
| Waktu Respons Global API | 434ms |
| Tingkat Keberhasilan Update | 82% |
| User Update Rate (24 Jam) | 95% |
Lanjutkan membaca Cara Menambahkan Dependencies di Capacitor Plugins
Jika Anda menggunakan Cara Menambahkan Dependencies di Plugin Capacitor untuk merencanakan pekerjaan plugin native, hubungkan dengan Direktori Plugin Capgo untuk alur kerja produk di Direktori Plugin Capgo, Plugin Capacitor oleh Capgo untuk detail implementasi pada Capacitor Plugins oleh Capgo Menambahkan atau Memperbarui Plugin untuk detail implementasi pada Menambahkan atau Memperbarui Plugin, Alternatif Plugin Ionic Enterprise untuk alur kerja produk di alternatif plugin Ionic Enterprise, dan Capgo Native Build untuk alur kerja produk di Capgo Native Builds.