Menambahkan dependensi ke Capacitor plugin dapat terasa menghawatirkan, tetapi lebih mudah ketika dibagi menjadi langkah-langkah yang jelas. Berikut ini yang perlu Anda ketahui:
-
Mengerti alat-alat:
-
Siapkan lingkungan pengembangan Anda:
- Pasang alat seperti Node.js, npm, Xcode, Android Studio, CocoaPods, dan JDK.
-
Mulai dengan Capacitor plugin project:
- Pilih
npm init @capacitor/pluginuntuk membuat plugin baru.
- Pilih
-
Tambahkan dependensi JavaScript:
- Pilih
npm installuntuk dependensi produksi dan pengembangan. - Perbarui
package.jsonuntuk termasuk dependensi peer seperti@capacitor/core.
- Pilih
-
Manfaatkan dependensi spesifik platform:
- iOS: Konfigurasi CocoaPods atau SPM dengan library seperti Alamofire atau SwiftyJSON.
- Android: Gunakan Gradle untuk menambahkan dependensi seperti Gson atau AppCompat.
-
Optimalkan kinerja:
- Pin versi, audit dependensi, dan selesaikan konflik untuk memastikan stabilitas.
-
Gunakan alat seperti Capgo untuk pembaruan langsung:
- Sampaikan pembaruan secara instan tanpa tinjauan toko aplikasi.
Perbandingan Cepat Alat:
| Platform | Alat | Contoh Dependensi |
|---|---|---|
| JavaScript | npm | npm install lodash --save |
| iOS | CocoaPods/SPM | pod 'Alamofire', '~> 5.6.4' |
| Anda | Gradle | implementation 'com.google.code.gson:gson:2.10.1' |
Mengapa hal ini penting: Mengelola dependensi efektif memastikan plugin Anda berjalan lancar di berbagai platform, menghemat waktu, dan menghindari kesalahan. Mari kita telusuri lebih dalam langkah-langkahnya.
Membuat Capacitor plugin untuk iOS/Android

Mengatur Lingkungan Pengembangan Anda
Siapkan pengaturan Anda dengan alat-alat yang diperlukan untuk mengelola Capacitor plugin tergantung efektif.
Alat Pengembangan yang Diperlukan
Berikut adalah daftar alat yang Anda butuhkan:
| Alat | Versi | Tujuan |
|---|---|---|
| Node.js | 16.0.0+ | Lingkungan Jalannya JavaScript |
| npm | 8.0.0+ | Pengelolaan Paket |
| Xcode | 14.0+ | Pengembangan iOS (Hanya Mac) |
| Android Studio | Electric Eel+ | Pengembangan Android |
| CocoaPods | 1.11.0+ | Pengelolaan Ketergantungan iOS |
| JDK | 11+ | Alat bina Android |
Mulai Plugin Baru
Pilihlah Capacitor CLI untuk memulai proyek plugin Anda. Ini termasuk mengatur platform dan memberi nama plugin menggunakan format domain terbalik (misalnya, com.mycompany.plugin):
- Jalankan perintah berikut:
npm init @capacitor/plugin - Pilih platform target (iOS/Android).
- Tetapkan nama plugin Anda dalam format domain terbalik.
Tahapan Pengaturan Proyek
-
Perbarui
package.jsonModifikasi
package.jsonuntuk mencakup hal berikut:{ "capacitor": { "ios": { "src": "ios" }, "android": { "src": "android" } }, "peerDependencies": { "@capacitor/core": "^5.0.0" } } -
Pengaturan Platform-Spesifik
-
Pada iOS, pastikan Podfile Anda mencakup:
platform :ios, '13.0' use_frameworks! -
Pada Android, pastikan
build.gradlemengandung:android { compileSdkVersion 33 defaultConfig { minSdkVersion 22 } }
-
-
Konfigurasi Variabel Lingkungan
Konfigurasi variabel lingkungan berikut untuk alat-alat pengembangan Anda:
Variabel Tujuan Nilai Contoh ANDROID_HOME Lokasi Android SDK /Users/username/Library/Android/sdk JAVA_HOME Rute instalasi JDK /Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home XCODE_SELECT Alat perintah garis perintah Xcode /Applications/Xcode.app/Contents/Developer
Setelah proyek Anda terkonfigurasi, Anda siap untuk melanjutkan ke pengelolaan dependensi JavaScript.
Dependensi JavaScript
Mengelola efektif dependensi JavaScript merupakan kunci untuk menjaga kinerja plugin stabil.
npm Pemasangan Paket

Untuk menginstal dependensi, gunakan perintah-perintah berikut:
# Add a production dependency
npm install lodash --save
# Add a development dependency
npm install @types/lodash --save-dev
Pastikan untuk secara manual menyertakan dependensi peer di dalam package.json file. Uji semua dependensi untuk memastikan konsistensi di antara kedua platform web dan native.
Mengelola package.json
Contoh berikut: package.json Untuk menjaga konsistensi, pastikan untuk mengunci versi dependensi yang sesuai:
{
"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"
}
}
Tipe Keterbatasan
| Contoh | __CAPGO_KEEP_0__ | Kasus Pengguna |
|---|---|---|
| Presisi | “5.0.0” | Untuk dependensi kritikal yang memerlukan versi tertentu |
| Tanda Caret | “^5.0.0” | Mengizinkan pembaruan minor dan patch |
| Tanda Tilde | “~5.0.0” | Mengizinkan pembaruan patch saja |
Menggunakan Library JavaScript
Ketika mengimpor library, fokus pada mengurangi ukuran bundle:
// 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 penanganan error dan pengecekan tipe yang tepat:
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, cari tahu cara mengatasi dependensi spesifik platform untuk iOS.
Dependensi iOS
Bagian ini menjelaskan cara mengelola ketergantungan native iOS di Capacitor plugin. Setelah Anda telah mengatur ketergantungan JavaScript, langkah selanjutnya adalah mengelola ketergantungan native iOS.
CocoaPods Pengaturan

Mulai dengan menginisialisasi CocoaPods di direktori iOS Anda:
cd ios
pod init
Kemudian, update Plugin.podspec dengan konfigurasi-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
After initializing CocoaPods, configure the Podfile to include Capacitor and any additional third-party libraries:
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
untuk mencakup __CAPGO_KEEP_0__ dan perpustakaan pihak ketiga tambahan lainnya: Konfigurasi Ketergantungan Umum
| Tipe Konstrain | Contoh | Penggunaan |
|---|---|---|
| Versi Tepat | pod 'KeychainAccess', '4.2.2' |
Ketika kontrol yang tepat diperlukan, seperti untuk komponen keamanan |
| Versi Minor | pod 'Alamofire', '~> 5.6' |
Untuk API stabil yang mungkin menerima pembaruan patch |
| Versi Besar | pod 'SwiftyJSON', '> 5.0' |
Ketika fleksibilitas di seluruh pembaruan dapat diterima |
Ketergantungan Paket Swift
Jika Anda lebih suka tidak menggunakan CocoaPods, Manager Paket Swift (SPM) adalah alternatif yang baik. Tambahkan ketergantungan SPM secara langsung di Xcode dengan konfigurasi berikut di file: Package.swift __CAPGO_KEEP_0__
// 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 dependensi SPM di plugin Anda code, import dan integrasikan sesuai kebutuhan. Misalnya:
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 berdasarkan kebutuhan proyek Anda.
Dependensi Android
Tetapkan dependensi Android untuk memastikan integrasi native yang lancar. Berikut cara mengelola dependensi untuk plugin Capacitor Anda.
Gradle Dependensi

Tambahkan konfigurasi berikut ke file: build.gradle Tentukan versi tambahan di blok:
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')
}
Setelah dependensi dikonfigurasi, pastikan untuk menetapkan repositori yang diperlukan. buildscript Set up Android dependencies to ensure smooth native integration.
buildscript {
ext {
androidxCoreVersion = '1.10.1'
kotlinVersion = '1.8.20'
}
}
Add the following configurations to your file:
Konfigurasi Repositori
Pada tingkat proyek Anda, tambahkan build.gradle, termasuk repositori Maven yang diperlukan:
allprojects {
repositories {
google()
mavenCentral()
maven { url "https://jitpack.io" }
}
}
Jika Anda menggunakan repositori Maven kustom atau pribadi, tambahkan kredential 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")
}
}
Dengan repositori yang terkonfigurasi, alihkan konflik dependensi yang mungkin timbul.
Mengatasi Masalah Kompabilitas
Untuk mengatasi konflik dependensi, terapkan resolusi versi pada build.gradle:
configurations.all {
resolutionStrategy {
force "org.jetbrains.kotlin:kotlin-stdlib:1.8.20"
force "androidx.core:core-ktx:1.10.1"
}
}
Ini adalah strategi untuk menyelesaikan masalah dependensi umum:
| Jenis Masalah | Strategi | Contoh |
|---|---|---|
| Konflik Versi | Menggunakan versi tertentu secara spesifik | force 'com.google.code.gson:gson:2.10.1' |
| Banyak Versi | Mengabaikan sebuah modul | exclude group: 'org.json', module: 'json' |
| Masalah Transitif | Gunakan versi ketat | strictly 'androidx.core:core-ktx:1.10.1' |
Misalnya, Anda dapat mengabaikan modul yang bersaing seperti ini:
dependencies {
implementation('library:name:1.0.0') {
exclude group: 'com.conflicting.dependency'
}
}
Akhirnya, optimalkan proses pembangunan 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 dengan pengelolaan dependensi native dan JavaScript membuat pembaruan plugin Anda lebih cepat dan lebih mudah.
Tentang Capgo
Capgo adalah platform pembaruan hidup yang dirancang untuk plugin dan aplikasi Capacitor. Dengan lebih dari 23,5 juta pembaruan yang disampaikan melalui 750 aplikasi produksi [1], Capgo memungkinkan pengembang untuk membarui dependensi dan code secara instan - tidak ada review toko aplikasi yang diperlukan. Pembaruan dilindungi dengan enkripsi ujung-ke-ujung dan memenuhi standar kelayakan Apple dan Android.
Fitur Pembaruan Capgo
Capgo memudahkan pengelolaan dependensi plugin dengan fitur-fitur berikut:
| Fitur | Apa yang Dilakukan | Kriteria Utama |
|---|---|---|
| Pembaruan Hidup | Push pembaruan dalam menit | 95% tingkat pembaruan pengguna dalam 24 jam |
| Pembaruan Sebagian | Unduh hanya file yang berubah | 434ms average API response time |
| Pengendalian Versi | Kelola beberapa versi | Sukses global 82% |
| Sistem Saluran | Sasaran kelompok pengguna spesifik | Dukungan beberapa saluran pengiriman |
Sumber: [1]
Capgo berjalan lancar dengan alat CI/CD seperti GitHub Actions, GitLab CI, dan Jenkins, mengautomasi pembaruan dependensi dan memastikan versi plugin konsisten. Alat-alat ini membuat lebih mudah untuk mengintegrasikan Capgo ke dalam alur kerja Anda.
Mengatur Capgo
Ikuti langkah-langkah ini untuk mengintegrasikan Capgo ke dalam proyek Anda:
-
Pasang Capgo CLI
Jalankan perintah berikut di terminal Anda:
npx @capgo/cli init -
Konfigurasi Preferensi Perbarui
Gunakan dashboard Capgo untuk mengatur saluran dan preferensi pengiriman. Kedua konfigurasi yang di-host di awan dan self-hosted mendukung.
-
Tambahkan Logika Perbarui
Tambahkan code ini ke file plugin utama Anda untuk mengaktifkan perbarui:
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 melaksanakan pengembangan yang berkelanjutan dan @Capgo sangat penting dalam menyampaikan kontinu ke pengguna kami!” - Rodrigo Mantica
Capgo juga menyediakan dashboard analitis untuk memperoleh wawasan waktu nyata tentang tingkat kesuksesan perbarui dan aktivitas pengguna. Fitur seperti rollback satu-klik dan pemantauan kesalahan membantu menyelesaikan masalah dengan cepat, sehingga perbarui plugin Anda berjalan lancar.
Kesimpulan
Ulasan Proses
Menangani dependensi untuk plugin Capacitor melibatkan menyelaraskan komponen native (iOS dan Android) dengan lawan JavaScriptnya untuk memastikan integrasi yang halus. Proses ini melibatkan pengaturan spesifik platform dan mengelola paket JavaScript untuk mencapai kinerja terbaik. Mengikuti langkah-langkah yang diuraikan akan membantu menjaga fungsi plugin yang stabil dan efisien.
Praktik Terbaik
Untuk menangani dependensi dengan efektif, pertimbangkan praktik-praktik berikut:
| Mengasah | Manfaat | Cara Mengimplementasikan |
|---|---|---|
| Penguncian Versi | Menghindari masalah yang tidak terduga | Gunakan versi yang tetap di package.json |
| Pengisolasi Platform | Mengurangi konflik | Ketergantungan native yang terpisah |
| Pembaruan Teratur | Meningkatkan keamanan | Mengaplikasikan patch kritis secara tepat waktu |
| Memantau Ketergantungan | Mendeteksi Risiko | Jalankan npm audit sering |
Menggunakan alat pembaruan langsung seperti Capgo dapat memudahkan dan meningkatkan praktik-praktik ini dengan memungkinkan pembaruan waktu nyata.
Kelebihan Capgo
Capgo memudahkan proses manajemen ketergantungan sementara memberikan kinerja yang kuat. Ia mencapai tingkat pembaruan pengguna yang impresif sebesar 95% dalam waktu 24 jam dan mempertahankan waktu respons global __CAPGO_KEEP_0__ sebesar and maintains a global API response time of . Dengan enkripsi ujung-ke-ujung, ia memastikan pembaruan yang aman yang sesuai dengan pedoman Apple dan Android. Untuk tim yang mengelola versi plugin yang berbeda-beda, sistem kanal __CAPGO_KEEP_0__ memungkinkan peluncuran yang spesifik untuk kelompok pengguna tertentu. [1]Berikut adalah gambaran singkat tentang kinerja Capgo:
Capgo Benefits
| Metric | Nilai |
|---|---|
| Global API Waktu Respons | 434ms |
| Sukses Mengupdate | 82% |
| Tingkat Pengguna Mengupdate (24 Jam) | 95% |
Lanjutkan dari Cara Menambahkan Dependensi di Capacitor Plugin
Jika Anda menggunakan Cara Menambahkan Dependensi di Capacitor Plugins untuk merencanakan pekerjaan plugin native, hubungkannya dengan Capgo Direktori Plugin untuk alur kerja produk di Capgo Direktori Plugin, Capacitor Plugin oleh Capgo untuk detail implementasi di Capacitor Plugin oleh Capgo, Mengambah atau Mengupdate Plugin untuk detail implementasi di Mengambah atau Mengupdate Plugin, Alternatif Plugin Enterprise Ionic untuk alur kerja produk di Alternatif Plugin Enterprise Ionic, dan Capgo Build Natively untuk alur kerja produk di Capgo Build Natively.