Lompat ke konten utama
Kembali ke plugin
@capacitor-plus/core
Tutorial
oleh github.com/Cap-go

Capacitor+ Core

Capacitor+ adalah sebuah fork otomatis, selalu sinkron dari Capacitor dengan PR komunitas yang diintegrasikan dan rilis cepat

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:

  1. Mengintegrasikan PR dari Fork - PR yang berharga yang terjebak di antrian upstream secara aktif diintegrasikan
  2. Sinkronisasi Terus-Menerus - Setiap perubahan dari upstream Capacitor secara otomatis diambil, diuji, dan diverifikasi
  3. Rilis Cepat - Ketika perubahan lolos CI, mereka secara otomatis dipublikasikan ke npm di bawah @capacitor-plus skop
  4. Komunitas-Pertama - Kontribusi Anda berharga dan mendapatkan prioritas
  5. 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       │
└─────────────────────┘     └──────────────────┘     └──────────────────┘     └─────────────────┘
  1. Sinkronisasi Harian: Aksi GitHub mengambil perubahan terbaru dari ionic-team/capacitor
  2. Pembuatan PR: Perubahan diusulkan sebagai permintaan pull ke plus Cabang
  3. Validasi CI: Seluruh suite tes berjalan (lint, unit tests, build iOS, build Android)
  4. 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
  5. Auto-MergeHanya jika CI melalui dan Claude menyetujui (tidak ada masalah yang ditemukan)
  6. 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+:

  1. Buka isu di Capacitor+ repo menghubungkan ke PR upstream Anda
  2. Atau submit PR secara langsung ke plus cabang
  3. 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.