Skip to main content

Capacitor 플러그인 기여 가이드

Capacitor 플러그인에 대한 효과적인 기여 방법을 알려주는 설정, 코딩 표준, 테스트, 문서화에 대한 포괄적인 가이드.

마틴 도나디유

마틴 도나디유

컨텐츠 마케터

Capacitor 플러그인 기여 가이드

Capacitor 플러그인은 웹 기술과 네이티브 디바이스 기능을 연결하여 멀티 플랫폼 앱 개발을 가능하게 합니다.이 가이드는 다음과 같은 것을 도와줍니다.

  • 환경 설정: Node.js와 같은 Xcode, Android Studio 와 같은 도구 는 필수입니다.
  • Code 표준을 따르세요: 사용하세요 TypeScript, Swift, 그리고 Kotlin 일관된 이름 규칙과 오류 처리를 사용하세요.
  • 적극적으로 테스트하세요: JavaScript, iOS, Android를 위한 단위 테스트를 작성하여 신뢰성을 보장하세요.
  • 명확하게 문서화하세요: JSDoc 및 README 파일을 사용하여 쉽게 채택할 수 있도록 하세요.
  • Pull Request 제출: code의 높은 품질을 보장하기 위해 테스트 및 문서화가 필요합니다.

오픈 소스 완전 가이드 - 기여 방법

개발 환경 설정

적절한 개발 환경을 구축하는 것은 플러그인 개발의 효율성을 위한 핵심입니다. 잘 준비된 설정은 플러그인 개발, 테스트 및 배포를 위한 smooth한 코딩을 허용합니다.

필요한 도구 및 기술

시작하기 전에 다음 도구가 설치되어 있는지 확인하세요.

분류 요구 사항
핵심 도구 Node.js (LTS), npm 6+, Git
IDE/Editors Visual Studio Code 또는 당신이 선호하는 편집기
iOS 개발 Xcode, SwiftLint, CocoaPods
Android 개발 Android Studio, Android SDK, JDK

웹 개발을 위해 TypeScript에 익숙해야 하며 iOS의 경우 Swift, Android의 경우 Java/Kotlin을 사용하는 네이티브 개발 작업에 익숙해야 합니다. [1][2].

모노레포 설정

The Capacitor 플러그인 __CAPGO_KEEP_0__ 생태계는 모노레포 구조에 의존합니다. 이 접근 방식은 작업이 커뮤니티 표준과 일치하는지부터 시작하여 작업을 시작합니다.

  1. 리포지토리 fork 및 복사
    Capacitor 플러그인 리포지토리를 GitHub에서 fork한 다음 fork한 리포지토리를 복사하세요:

    git clone https://github.com/your-username/capacitor-plugins.git
    cd capacitor-plugins
    npm install
  2. 설치 의존성 및 빌드
    __CAPGO_KEEP_0__ 플러그인에 필요한 모든 것을 설치하고 플러그인을 빌드하려면 다음 명령어를 실행하세요:

    npm run build
  3. 버전 관리 설정
    변경 사항을 feature branch로 사용하고 upstream 리포지토리와 fork를 동기화하세요.

자연 플랫폼 준비

크로스 플랫폼 개발을 위해 iOS 및 Android 환경을 구성해야 합니다.

iOS:

  • Mac 앱 스토어에서 Xcode를 다운로드하세요.

  • 명령 줄 도구를 설치하려면:

    xcode-select --install
  • 다음과 같이 CocoaPods를 설치하세요:

    sudo gem install cocoapods
  • Apple Developer 계정과 필요한 인증서를 설정하세요.

  • code 품질을 유지하기 위해 SwiftLint (선택 사항)을 사용하세요.

Android에 대한 경우:

  • 최신 SDK와 가상 장치를 포함하여 Android Studio를 설치하세요.
  • JDK가 설치되어 있는지 확인하세요.
  • Android Studio 내에서 Android SDK를 올바르게 구성하세요.

이러한 플랫폼을 설정한 후,established coding practices를 따르고 플러그인 개발에 뛰어들 수 있습니다.

Code 표준 가이드

개발 환경이 설정되면, 유지 관리 및 사용이 쉬운 플러그인을 빌드하기 위해 이 지침을 따르세요.

스타일 가이드 준수

The Capacitor 플러그인 생태계 strict한 코딩 표준을 유지하기 위해 ESLint, Prettier와 SwiftLint

이러한 도구를 사용합니다. 다음은 필수 형식의 개요입니다. Component
형식 deviceInfo 변수
(camelCase) BatteryManager 클래스
메소드 getLanguageCode() (camelCase)
상수 MAX_RETRY_COUNT (SNAKE_CASE)

플러그인은 TypeScript를 사용하여 더 나은 타입 안전성과 ES6+ 기능을 사용해야 합니다. 예를 들어, Swift (iOS)와 Kotlin (Android)과 같은 플랫폼에 맞는 코딩 규칙을 따르세요. async/await오류 및 타입 관리

교차 플랫폼 호환성을 위해 일관된 오류 처리가 중요합니다. 예를 들어:

타입 안전성:

async checkPermissions(): Promise<PermissionStatus> {
  try {
    const result = await this.implementation.checkPermissions();
    return result;
  } catch (error) {
    throw new Error(`Permission check failed: ${error.message}`);
  }
}

특정 사용 사례에 맞게 초점을 맞춘 인터페이스를 사용하세요.

  • 플랫폼에 맞는 변형을 위해 union 타입을 적용하세요.
  • __CAPGO_KEEP_0__ 문서

Code

좋은 문서는 플러그인을 사용하기 쉽고 접근하기 쉬운 플러그인을 만드는 데 중요한 역할을 합니다. 다음의 방법을 따르세요.

  1. API 문서: JSDoc 주석을 작성하여 @capacitor/docgen. 예를 들어:
/**
 * @description Get the device's current battery level
 * @returns Promise with the battery level percentage
 */
async getBatteryLevel(): Promise<{ level: number }>;
  1. README 구조: 설치 방법, 구성 방법, 플랫폼에 따라 필요한 요구 사항, 사용 예제, 자세한 API 설명서를 포함하세요.

잘 작성된 문서는 플러그인을 쉽게 사용할 수 있도록 해주고 더 광범위한 Capacitor 커뮤니티에 기여합니다.

sbb-itb-f9944d2

플러그인 테스트 가이드

Capacitor 플러그인을 테스트하는 것은 플러그인의 smooth한 작동과 신뢰성을 보장하기 위해 몇 가지 중요한 영역에 집중하는 것입니다.

네이티브 브리지 테스트

네이티브 브리지 테스트는 자바스크립트와 네이티브 code 간의 올바른 통신을 보장합니다. 시작하려면 각 플랫폼에 맞게 설계된 테스트 환경을 설정하세요.

이것은 자바스크립트 측의 __CAPGO_KEEP_0__ 예시입니다. __CAPGO_KEEP_1__ 단위 테스트 iOS의 경우 XCTest, Android의 경우 JUnit을 사용하여 네이티브 측 테스트를 진행합니다. Android의 예시는 아래와 같습니다.

// Example of a Jest unit test for the JavaScript bridge
describe('DeviceInfo Plugin', () => {
  test('getBatteryLevel returns valid percentage', async () => {
    const result = await DeviceInfo.getBatteryLevel();
    expect(result.level).toBeGreaterThanOrEqual(0);
    expect(result.level).toBeLessThanOrEqual(100);
  });
});

브리지 기능이 예상대로 작동하는지 확인한 후, 완전한 사용자 워크플로우를 테스트하는 단계로 진행합니다.

@Test
fun testBatteryLevel() {
    val plugin = DeviceInfo()
    val result = plugin.getBatteryLevel()
    assertTrue(result.level in 0..100)
}

플러그인 테스트

플러그인이 다양한 시나리오에서 잘 작동하도록 하기 위해, 다양한 카테고리를 테스트합니다.

테스트 카테고리

중요한 주목점 통합 테스트
플랫폼 간의 기능 성능 테스트
performance 리소스 사용량 및 응답 시간
보안 테스트 데이터 처리 및 권한 검사

복잡한 기능을 가진 플러그인에 대해 실제 사용자 시나리오를 시뮬레이션하세요. 예를 들어, 디바이스 정보 플러그인을 테스트하는 경우 다음을 확인하세요:

  • 다양한 네트워크 조건하에서 성공적인 업로드
  • 정확한 진행률 보고
  • 대용량 파일 전송 중 메모리 사용량

OTA 테스트와 Capgo

Capgo Live Update Dashboard Interface

Capgo의 오픈 소스 도구는 업데이트를 빠르게 배포하고 테스트하는 것을 쉽게 만듭니다. 사용 방법은 다음과 같습니다:

  1. 설정 업데이트 채널 개발, 스테이징 및 운영 채널과 같은 것과 같습니다.
  2. CI/CD 도구를 사용하여 배포를 자동화하세요.
  3. 즉시 업데이트.
  4. __CAPGO_KEEP_0__ 대시보드를 통해 성능 및 문제를 모니터링하세요. Capgo dashboard.

For phased rollouts, Capgo allows you to limit updates to a small percentage of users. For instance, you can roll out a new version to 25% of users every 24 hours:

// Example configuration for staged rollout
{
  "plugin": "camera-plugin",
  "version": "1.2.0",
  "rollout": {
    "percentage": 25,
    "interval": "24h"
  }
}

Pull Request 프로세스

변경 사항을 철저히 테스트한 후 다음 단계를 따라서 Pull Request를 제출하세요.

PR 제출 확인 목록

제출하기 전에 다음 주요 영역을 확인하세요.

__CAPGO_KEEP_0__

분류 체크해야 할 사항
Code 품질 - Swift/Kotlin 구현이 웹 API과 일치하도록 하세요.
테스트 - 새로운 기능에 대한 단위 테스트를 추가하세요.
- CI/CD pipeline 확인이 성공적으로 완료되었는지 확인하세요.
문서화 - README, 인라인 문서, CHANGELOG를 필요에 따라 업데이트하세요.

커뮤니티 지침

협업 시 다음의最佳 관행을 따르세요.

  • 리뷰어 피드백에 신속하게 반응하세요.
  • 기술적인 세부 사항에 초점을 맞추어 토론을 유지하십시오.
  • GitHub의 제안 기능을 사용하여 code 개선점을 제안하십시오.
  • 작은, 초점이 맞춰진 pull request를 제출하여 한 기능 또는 문제를 한 번에 해결하십시오.

큰 변경 사항이 있는 경우, 먼저 이슈를 생성하고 접근 방식을 논의하는 것이 좋습니다. Capacitor 팀은 GitHub Actions를 사용하여 자동화된 검사를 의존하고 있으며, 모든 검사가 통과해야만 pull request가 검토될 수 있습니다.

Capgo 통합 안내서

라이브 업데이트가 포함된 플러그인이 있는 경우, Capgo와의 완벽한 연동을 보장하여 제출하기 전에 확인하십시오:

  1. 버전 관리
    플러그인의 버전 관리를 위해 명확한 의미의 버전 관리를 사용하고, 모든 변경 사항을 changelog에 문서화하십시오. Capgo의 시스템은 사용자 기기의 버전 채택을 추적하는 데 도움이 됩니다.

  2. CI/CD 통합
    Capgo을 CI/CD pipeline에 통합하여 업데이트 배포를 자동화하십시오.

  3. 업데이트 모니터링
    배포 성공률을 모니터링하고 앱 스토어 지침에 대한 준수를 보장하십시오.

개요

플러그인을 통해 의미 있는 기여를 하려면, established 프로세스를 따르고 커뮤니티 표준을 충족하는 것이 중요합니다. 이것은 Capacitor의 코딩 가이드라인을 따르고, 철저히 테스트하는 것을 포함합니다.

PR 체크리스트는 고품질의 제출이 필요하다는 것을 강조합니다. 플러그인이 라이브 업데이트를 지원한다면, Capgo (이전에서 언급한 것과 같이)와 통합하면 앱 스토어 승인 대기 없이 업데이트를 빠르게 릴리즈할 수 있습니다.

PR이 병합되면, 이슈를 추적하고 버전 업데이트를 릴리즈하세요. 커뮤니티와의 정기적인 상호작용, 일관된 유지보수, __CAPGO_KEEP_0__ 업데이트와 함께 keeping up with Capacitor updates 사용자 피드백에 주의를 기울이고 필요에 따라 업데이트를 하세요. 이 지속적인 노력은 생태계의 전체 품질을 유지하고 플러그인이 개발자에게 가치 있는 것을 유지하는 데 도움이 됩니다.

__CAPGO_KEEP_0__ 플러그인 기여 가이드에서 계속하세요.

플러그인 작업을 계획하고 있는 경우 Capacitor 플러그인 기여 가이드를 사용하세요. Capacitor 플러그인 디렉토리와 연결하세요.

__CAPGO_KEEP_0__ Capacitor __CAPGO_KEEP_0__ Capgo Capgo 제품 워크플로우 디렉토리에서 제품 워크플로우를 위한 Capacitor 플러그인은 Capgo에 의해 제공됩니다. Capacitor 플러그인에 대한 구현 세부 사항은 Capacitor 플러그인에 의해 Capgo에 의해 제공됩니다. 플러그인 추가 또는 업데이트 __CAPGO_KEEP_0__ 플러그인에 대한 구현 세부 사항은 플러그인 추가 또는 업데이트에서 제공됩니다. 아이오닉 엔터프라이즈 플러그인 대체 __CAPGO_KEEP_0__ 제품 워크플로우 디렉토리에서 제품 워크플로우를 위한 아이오닉 엔터프라이즈 플러그인 대체 Capgo 네이티브 빌드 Capgo 제품 워크플로우 디렉토리에서 제품 워크플로우를 위한 Capgo 네이티브 빌드

Capacitor 앱에 대한 실시간 업데이트

Capgo를 통해 웹-layer 버그가 활성화되면, 앱 스토어 승인까지 며칠 기다리지 않고修정 배포를 진행할 수 있습니다. 사용자는 배경에서 업데이트를 받으면서 네이티브 변경 사항은 일반적인 검토 경로를 유지합니다.

시작하기

최신 블로그 글

Capgo은 전문적인 모바일 앱을 만들기 위해 필요한 최고의洞察력을 제공합니다.