Petunjuk
Tutorial pada Capacitor+ Core
Menggunakan Capacitor+ (@capacitor-plus) Paket
Capacitor+ adalah salinan otomatis, selalu sinkron, dari Capacitor dipelihara oleh Capgo. Ini menyediakan pengganti yang dapat digunakan langsung untuk paket resmi Capacitor dengan satu kelebihan utama: PR dan perbaikan komunitas dapat diintegrasikan lebih cepat.
Mengapa Capacitor+ Ada
Tim Ionic memelihara Capacitor dengan prioritas dan jadwal rilis mereka sendiri. Hal ini berarti kontribusi komunitas - perbaikan bug, peningkatan, dan fitur - dapat menunggu bulan-bulan atau bahkan tahun-tahun untuk diintegrasikan. Beberapa tidak pernah berhasil.
Capacitor+ menyelesaikan masalah ini dengan cara:
- Mengintegrasikan PR dari Fork - PR yang berharga yang terjebak di antrian upstream secara aktif diintegrasikan
- Sinkronisasi Terus-Menerus - Setiap perubahan dari upstream Capacitor secara otomatis diambil, diuji, dan diverifikasi
- Rilis Cepat - Ketika perubahan lolos CI, mereka secara otomatis dipublikasikan ke npm di bawah
@capacitor-plusskop - Komunitas-Pertama - Kontribusi Anda berharga dan mendapatkan prioritas
- Ditinjau Keamanan - Setiap perubahan dianalisis oleh AI untuk keamanan, perubahan yang memecah, dan risiko stabilitas
Paket yang Tersedia
| Paket | Deskripsi |
|---|---|
@capacitor-plus/core |
Libray runtime inti |
@capacitor-plus/cli |
Antarmuka Perintah Baris |
@capacitor-plus/android |
Runtime Android |
@capacitor-plus/ios |
Runtime iOS |
Pemasangan
Proyek Baru
Untuk proyek baru, cukup gunakan Capacitor+ paket daripada yang resmi:
npm install @capacitor-plus/core @capacitor-plus/cli
npm install @capacitor-plus/android # for Android
npm install @capacitor-plus/ios # for iOS
Lalu inisialisasikan proyek Anda:
npx cap init
npx cap add android
npx cap add ios
Mengimpor dari Resmi Capacitor
Untuk mengimpor proyek yang sudah ada dari resmi Capacitor ke Capacitor+:
# Remove official packages
npm uninstall @capacitor/core @capacitor/cli @capacitor/android @capacitor/ios
# Install Capacitor+ packages
npm install @capacitor-plus/core @capacitor-plus/cli
npm install @capacitor-plus/android # if using Android
npm install @capacitor-plus/ios # if using iOS
Karena Capacitor+ adalah pengganti yang dapat digunakan langsung dengan API, tidak ada perubahan code yang diperlukan. Impor Anda tetap sama:
// These imports work the same with Capacitor+
import { Capacitor } from '@capacitor/core';
import { registerPlugin } from '@capacitor/core';
Cara Kerjanya
┌─────────────────────┐ ┌──────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ ionic-team/ │ │ CI/CD │ │ Claude Code │ │ npm publish │
│ capacitor │────▶│ Pipeline │────▶│ Security Review │────▶│ @capacitor-plus│
│ (upstream) │ │ (daily sync) │ │ (AI analysis) │ │ packages │
└─────────────────────┘ └──────────────────┘ └──────────────────┘ └─────────────────┘
- Sinkronisasi Harian: Aksi GitHub mengambil perubahan terbaru dari
ionic-team/capacitor - Pembuatan PR: Perubahan diusulkan sebagai permintaan pull ke
plusCabang - Validasi CI: Seluruh suite tes berjalan (lint, unit tests, build iOS, build Android)
- Ulasan Code ClaudeAnalisis keamanan yang dipimpin AI untuk memeriksa:
- Kekeliruan keamanan (injeksi, XSS, dll.)
- Perubahan API yang dapat memecah
- Risiko kegagalan dan masalah stabilitas
- Kesulitan integritas data dan privasi
- Polanya code yang berbahaya
- Auto-MergeHanya jika CI melalui dan Claude menyetujui (tidak ada masalah yang ditemukan)
- Auto-PublishVersi baru dipublikasikan ke npm di bawah
@capacitor-plus/*
Ulasan Keamanan
Setiap sinkronisasi upstream dianalisis untuk:
| Periksa | Deskripsi |
|---|---|
| Keamanan | Injeksi perintah, XSS, traversal jalur, rahasia yang ditetapkan secara keras, dll. |
| Perubahan Perubahan | Fungsi/Fitur yang Dihapus/Dinamakan Ulang, Tanda Tangan yang Berubah, Perubahan Format Konfigurasi |
| Stabilitas | Referensi Null, Kesalahan Kesalahan yang Tidak Ditangani, Kondisi Balapan, Kerusakan Memori |
| Keamanan Data | Skenario Kehilangan Data, Pelanggaran Privasi, Penyimpanan yang Tidak Aman |
| Code Keutuhan | Integritas code yang Disamarkan, Panggilan Jaringan yang Tidak Jelas, Backdoor |
Jika ada masalah yang terdeteksi, PR akan ditandai untuk tinjauan manual dan TIDAK akan di-merge secara otomatis.
Mau PR Anda Diterima?
Mengalami masalah dengan PR di repositori resmi Capacitor? Berikut cara untuk memindahkannya ke Capacitor+:
- Buka isu di Capacitor+ repo menghubungkan ke PR upstream Anda
- Atau submit PR secara langsung ke
pluscabang - Tim akan meninjau, menjalankan CI, dan merge jika berhasil
Dengan cara ini, Anda dan orang lain dapat menikmati hasil kerja Anda segera, tanpa harus menunggu siklus rilis upstream.
Kelebihan
- PR yang Terjebak Sekarang: Perbaikan dan fitur komunitas yang menunggu di atas aliran adalah diintegrasikan
- Tetap Terkini: Dapatkan perbaikan di atas aliran segera setelah mereka melewati CI
- Prioritas Keamanan: Setiap perubahan diperiksa untuk kelemahan keamanan dan risiko stabilitas
- Rilis yang Terverifikasi: Hanya perubahan yang melewati uji coba CI dan tinjauan keamanan AI yang dipublikasikan
- Pengganti yang Dapat Dibubuhkan: Sama API sebagai Capacitor, hanya lingkup paket yang berbeda
- Suara Anda Berharga: Kirimkan PR Anda sendiri atau minta PR upstream spesifik untuk diintegrasikan
Contoh: Menggunakan Capacitor+ dengan Plugin
Semua plugin resmi Capacitor berjalan lancar dengan Capacitor+:
import { Capacitor } from '@capacitor/core';
import { Camera, CameraResultType } from '@capacitor/camera';
import { Geolocation } from '@capacitor/geolocation';
// Everything works exactly the same
const platform = Capacitor.getPlatform();
const photo = await Camera.getPhoto({
resultType: CameraResultType.Uri
});
const position = await Geolocation.getCurrentPosition();
Capgo plugin juga berjalan sempurna dengan Capacitor+:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
import { ScreenOrientation } from '@capgo/capacitor-screen-orientation';
// Use Capgo plugins with Capacitor+
await CapacitorUpdater.notifyAppReady();
await ScreenOrientation.lock({ orientation: 'portrait' });
Itu saja! Anda sekarang memiliki versi Capacitor yang lebih cepat diperbarui dengan perbaikan komunitas yang diintegrasikan lebih cepat. Aplikasi Anda akan mendapatkan manfaat dari perbaikan bug dan fitur tanpa harus menunggu siklus rilis resmi.