본문으로 건너뛰기
Capgo 로고

Capacitor 플러그인 기여 가이드

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

Capacitor 플러그인 기여 가이드

Capacitor __CAPGO_KEEP_0__ 플러그인은 웹 기술과 네이티브 디바이스 기능을 연결하여멀티 플랫폼 앱 개발을 가능하게 합니다.

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

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

개발 환경 설정

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

필요한 도구와 기술

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

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

웹 개발을 위한 TypeScript에 대해도 편안하게 다루고 iOS에는 Swift, Android에는 Java/Kotlin을 사용하는 native 개발 작업에 대해 편안하게 다루어야 합니다. [1][2].

모노레포 설정

The Capacitor 플러그인들 이cosystem은 단일 저장소 구조에 의존합니다. 이 접근 방식은 작업이 커뮤니티 표준과 일치하는지부터 시작하여 작업을 시작할 때부터 일치하도록 보장합니다.

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

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

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

자연 플랫폼을 준비하세요.

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

iOS:

  • Mac App Store에서 Xcode를 다운로드하세요.

  • 명령줄 도구를 설치하세요:

    xcode-select --install
  • 설치: CocoaPods와 함께:

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

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

Android 경우:

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

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

Code 표준 가이드

개발 환경이 설정된 후, 이 지침을 따르세요. 쉽게 유지 관리하고 사용할 수 있는 플러그인을 빌드하세요.

스타일 가이드 준수

이 Capacitor 플러그인 생태계 strict한 코딩 표준을 유지하기 위해 툴들인 likes를 사용합니다. ESLint, Prettier, 그리고 SwiftLint. 다음은 필수적인 형식에 대한 간단한 개요입니다.

Component Format
Variables deviceInfo (camelCase)
Classes BatteryManager (PascalCase)
Methods getLanguageCode() (camelCase)
상수 MAX_RETRY_COUNT (SNAKE_CASE)

TypeScript를 사용하여 더 나은 타입 안전성과 ES6+ 기능을 사용하세요. 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 문서

__CAPGO_KEEP_0__

  1. API 문서: 자바스크립트 문서 주석을 작성하세요. 예를 들어: @capacitor/docgencontext
/**
 * @description Get the device's current battery level
 * @returns Promise with the battery level percentage
 */
async getBatteryLevel(): Promise<{ level: number }>;
  1. HTML text fragment from a longer Capgo UI string (parent key `jsdoc_documentation`). Page/area: Capgo marketing website. Role: Long marketing or legal paragraph. Seen in: page contributing.astro. Preserve Capgo product/brand and developer terms exactly. Message key `jsdoc_documentation` (Jsdoc Documentation).Capacitor 플러그인 기여 가이드 (Translation note: The original text is a sentence fragment, so I added a verb to make it a complete sentence. I also kept the placeholder API as is.)

: 설치 단계, 구성 방법, 플랫폼별 요구 사항, 사용 예제 및 자세한 Capacitor 참조 포함.

sbb-itb-f9944d2

sbb-itb-f9944d2

Testing Capacitor plugins involves focusing on a few critical areas to ensure smooth functionality and reliability.

__CAPGO_KEEP_0__ 플러그인 테스트에는 몇 가지 중요한 영역에 집중하여 smooth한 기능성과 신뢰성을 보장합니다.

Native bridge testing ensures proper communication between JavaScript and native code. To get started, set up your testing environment with frameworks tailored to each platform.

네이티브 브리지 테스트는 자바스크립트와 네이티브 __CAPGO_KEEP_0__ 간의 올바른 통신을 보장합니다. 시작하려면 각 플랫폼에 맞는 프레임워크를 사용하여 테스트 환경을 설정하세요. Jest JavaScript 측에서 단위 테스트:

// 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);
  });
});

iOS에서는 XCTest, Android에서는 JUnit을 사용하여 네이티브 측 테스트를 진행합니다. Android의 예시를 아래에 확인하실 수 있습니다:

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

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

플러그인 테스트 완료

다양한 시나리오에서 플러그인이 잘 작동하는 것을 확인하기 위해, 다양한 카테고리를 테스트합니다:

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

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

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

OTA 테스트와 Capgo

Capgo Live Update 대시보드 인터페이스

Capgo의 오픈 소스 도구를 사용하면 업데이트를 빠르게 배포하고 테스트할 수 있습니다. 다음과 같이 사용하세요:

  1. 설정 업데이트 채널 개발, 스테이징, 및 운영 환경과 같은 것과 같습니다.
  2. CI/CD 도구를 사용하여 배포를 자동화하세요.
  3. 즉시 업데이트를 푸시하세요.
  4. 성능 및 문제를 모니터링하기 위해 사용하는 __CAPGO_KEEP_0__ 대시보드 스테이지드 롤아웃을 위해 Capgo는 업데이트를 한정된 사용자에게 제한할 수 있습니다. 예를 들어, 25%의 사용자에게 새로운 버전을 24시간마다 배포할 수 있습니다..

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 제출 확인 목록

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

분류

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

커뮤니티 지침

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

  • 리뷰어 피드백에 신속하게 반응하세요.
  • 기술 세부 사항에만 논의하세요.
  • GitHub의 제안 기능을 사용하여 code 변경 사항을 제안하세요.
  • 작업을 단순화하기 위해 하나의 기능 또는 문제를 해결하는 작은, 집중된 pull request를 제출하세요.

Capacitor 팀은 GitHub Actions를 사용하여 자동화된 검사를 수행하며, 모든 검사가 통과해야만 pull request가 검토될 수 있습니다.

Capgo 통합 안내서

Capgo가 라이브 업데이트와 무방비하게 작동하는지 확인하기 위해 플러그인을 제출하기 전에 확인하세요:

  1. __CAPGO_KEEP_0__
    Capgo

  2. __CAPGO_KEEP_0__
    Capgo

  3. __CAPGO_KEEP_0__
    __CAPGO_KEEP_0__

Summary

meaningful한 기여를 하기 위해서는 Capacitor의 코드 가이드라인을 따르고, 철저히 테스트를 하는 것이 중요합니다.

PR 체크리스트는 높은 품질의 제출이 필요합니다. 만약 플러그인이 Live Update를 지원한다면, Capgo (이전 섹션에서 언급한 것과 같이)와 통합하면 앱 스토어 승인 없이도 업데이트를 빠르게 릴리즈 할 수 있습니다.

PR이 머지되면, 이슈를 추적하고 버전 업데이트를 릴리즈하는 등 커뮤니티와의 지속적인 상호작용, 일관된 유지보수, __CAPGO_KEEP_0__ 업데이트를 지속적으로 따라하는 것이 플러그인이 유용하고 관련성이 유지되도록 합니다. Capacitor 업데이트 최신화 유지 __CAPGO_KEEP_0__ Plugin Contribution Guide에서 계속하세요.

만약 __CAPGO_KEEP_0__ Plugin Contribution Guide를 사용하여 네이티브 플러그인 작업을 계획하고 있다면, __CAPGO_KEEP_0__ Plugin Directory와 연결하세요.

Capacitor Plugin Directory에서 제품 워크플로우를 연결하세요.

__CAPGO_KEEP_0__ Plugin Contribution Guide Capacitor Plugin Directory __CAPGO_KEEP_0__ Plugin Directory Capgo Capgo Capacitor 플러그인들에 의해 Capgo Capacitor 플러그인들에 의해 Capgo 플러그인 추가 또는 업데이트 플러그인 추가 또는 업데이트 아이온 enterprise 플러그인 대체 아이온 enterprise 플러그인 대체 Capgo 네이티브 빌드 Capgo 네이티브 빌드

Capacitor 앱에 대한 즉시 업데이트

Capgo를 통해 웹层 버그가 활성화된 경우, 앱 스토어 승인까지 며칠 기다리지 않고修정 내용을 배포하세요. 사용자는 배경에서 업데이트를 받으며, 네이티브 변경 사항은 일반적인 검토 경로를 유지합니다.

마틴의 인간 지원

시작하기

최신 블로그

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