Memulai
Instalasi Proyek Baru
Section titled βInstalasi Proyek Baruβ-
Instal paket inti
Terminal window npm install @capacitor-plus/core @capacitor-plus/cli -
Tambahkan paket platform
Terminal window npm install @capacitor-plus/android # for Androidnpm install @capacitor-plus/ios # for iOS -
Inisialisasi Capacitor
Terminal window npx cap initTerminal window pnpm cap initTerminal window yarn cap initTerminal window bunx cap init -
Tambahkan platform
Terminal window npx cap add androidTerminal window pnpm cap add androidTerminal window yarn cap add androidTerminal window bunx cap add androidTerminal window npx cap add iosTerminal window pnpm cap add iosTerminal window yarn cap add iosTerminal window bunx cap add ios
Migrasi dari Capacitor Resmi
Section titled βMigrasi dari Capacitor ResmiβJika Anda memiliki proyek Capacitor yang sudah ada, migrasi ke Capacitor+ sangat mudah:
-
Hapus paket resmi
Terminal window npm uninstall @capacitor/core @capacitor/cli @capacitor/android @capacitor/ios -
Instal paket Capacitor+
Terminal window npm install @capacitor-plus/core @capacitor-plus/clinpm install @capacitor-plus/android # if using Androidnpm install @capacitor-plus/ios # if using iOS -
Sinkronkan proyek Anda
Terminal window npx cap syncTerminal window pnpm cap syncTerminal window yarn cap syncTerminal window bunx cap sync
Penggunaan
Section titled βPenggunaanβKarena Capacitor+ kompatibel dengan API, kode Anda yang ada akan berfungsi tanpa perubahan:
import { Capacitor } from '@capacitor/core';import { registerPlugin } from '@capacitor/core';
// Check platformconst platform = Capacitor.getPlatform();console.log('Running on:', platform);
// Check if nativeif (Capacitor.isNativePlatform()) { console.log('Running on native platform');}
// Register a custom pluginconst MyPlugin = registerPlugin('MyPlugin');Dengan Plugin Capacitor Resmi
Section titled βDengan Plugin Capacitor ResmiβSemua plugin Capacitor resmi bekerja dengan lancar:
import { Camera, CameraResultType } from '@capacitor/camera';import { Geolocation } from '@capacitor/geolocation';import { Storage } from '@capacitor/preferences';
// Cameraconst photo = await Camera.getPhoto({ quality: 90, resultType: CameraResultType.Uri});
// Geolocationconst position = await Geolocation.getCurrentPosition();
// Storageawait Storage.set({ key: 'name', value: 'John' });Dengan Plugin Capgo
Section titled βDengan Plugin CapgoβPlugin Capgo bekerja sempurna dengan Capacitor+:
import { CapacitorUpdater } from '@capgo/capacitor-updater';import { ScreenOrientation } from '@capgo/capacitor-screen-orientation';import { CapacitorFlash } from '@capgo/capacitor-flash';
// Live updatesawait CapacitorUpdater.notifyAppReady();
// Screen orientationawait ScreenOrientation.lock({ orientation: 'portrait' });
// Flashlightawait CapacitorFlash.toggle();Cara Kerja Sinkronisasi
Section titled βCara Kerja Sinkronisasiββββββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ ionic-team/ β β CI/CD β β Claude Code β β npm publish ββ capacitor ββββββΆβ Pipeline ββββββΆβ Security Review ββββββΆβ @capacitor-plusββ (upstream) β β (daily sync) β β (AI analysis) β β packages ββββββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ- Sinkronisasi Harian: GitHub Actions mengambil perubahan terbaru dari
ionic-team/capacitor - Pembuatan PR: Perubahan diusulkan sebagai pull request ke cabang
plus - Validasi CI: Test suite lengkap berjalan (lint, unit tests, iOS build, Android build)
- Tinjauan Keamanan: Analisis bertenaga AI memeriksa kerentanan dan perubahan yang merusak
- Auto-Merge: Hanya jika CI lulus DAN tinjauan keamanan menyetujui
- Auto-Publish: Versi baru dipublikasikan ke npm di bawah
@capacitor-plus/*
Detail Tinjauan Keamanan
Section titled βDetail Tinjauan KeamananβSetiap sinkronisasi upstream dianalisis untuk:
| Pemeriksaan | Yang Ditangkap |
|---|---|
| Keamanan | Command injection, XSS, path traversal, hardcoded secrets |
| Perubahan yang Merusak | API yang dihapus/diubah namanya, signature yang diubah, perubahan konfigurasi |
| Stabilitas | Null dereferences, exception yang tidak ditangani, race conditions, memory leaks |
| Keamanan Data | Skenario kehilangan data, pelanggaran privasi, penyimpanan tidak aman |
| Integritas Kode | Kode yang disamarkan, panggilan jaringan mencurigakan, backdoors |
Mengirimkan PR Anda
Section titled βMengirimkan PR AndaβMemiliki PR yang terjebak di repo Capacitor resmi? Dapatkan merge di Capacitor+:
-
Buka issue di repo Capacitor+ yang menautkan ke PR upstream Anda
-
Atau kirimkan langsung sebagai PR ke cabang
plus -
Tim akan meninjau, menjalankan CI, dan menggabungkan jika lulus
Dengan cara ini Anda dan orang lain dapat mengambil manfaat dari pekerjaan Anda segera tanpa menunggu siklus rilis upstream.
Apakah ini siap untuk produksi?
Section titled βApakah ini siap untuk produksi?βYa. Capacitor+ digunakan di aplikasi produksi. Setiap rilis melewati test suite yang sama dengan Capacitor resmi, ditambah analisis keamanan tambahan.
Apakah plugin resmi saya masih akan bekerja?
Section titled βApakah plugin resmi saya masih akan bekerja?βYa. Semua plugin @capacitor/* bekerja dengan Capacitor+ langsung dari kotak.
Bagaimana jika upstream merilis perubahan yang merusak?
Section titled βBagaimana jika upstream merilis perubahan yang merusak?βTinjauan keamanan AI menandai perubahan yang merusak untuk ditinjau secara manual. Anda akan melihat perubahan yang didokumentasikan sebelum digabungkan.
Bagaimana cara melaporkan masalah?
Section titled βBagaimana cara melaporkan masalah?βAjukan issue di repo GitHub Capacitor+. Untuk masalah yang juga mempengaruhi Capacitor resmi, kami akan membantu koordinasi upstream.
Bisakah saya berkontribusi?
Section titled βBisakah saya berkontribusi?βTentu saja! PR sangat diterima. Anda dapat mengirimkan perbaikan secara langsung atau meminta agar PR upstream tertentu digabungkan.