본문으로 바로가기

Capacitor 플러그인에 의존성을 추가하는 방법

플랫폼 간에 실제적인 단계와 최적화된 방법을 통해 Capacitor 의존성 관리를 개선하는 방법을 배워보세요.

마틴 도나디유

마틴 도나디유

컨텐츠 마케터

Capacitor 플러그인에 의존성을 추가하는 방법

추가 의존성 Capacitor 플러그인은 혼란스럽게 느껴질 수 있지만, 분명한 단계로 나누면 더 쉽습니다. 필요한 정보는 다음과 같습니다.

  1. 도구를 이해하십시오:

  2. Node.js:

  3. Capgo 프로젝트를 시작하세요 Capacitor 플러그인 프로젝트:

    • __CAPGO_KEEP_0__을 사용하세요. npm init @capacitor/plugin 새 플러그인을 만들기 위해.
  4. 자바스크립트 의존성을 추가하세요:

    • 사용 npm install 프로덕션 및 개발 의존성으로 사용됩니다.
    • 업데이트 package.json targetLanguage: Korean protectedTokens: ["Cloudflare", "Capacitor", "GitHub", "Capgo", "code", "API", "SDK", "CLI", "npm", "bun"] text: to include peer dependencies like @capacitor/core.
  5. 플랫폼에 따라 종속성을 관리하십시오:

    • iOS: CocoaPods 또는 SPM과 같은 라이브러리를 구성하십시오 Alamofire 또는 SwiftyJSON.
    • Android: Gson 또는 AppCompat과 같은 종속성을 Gradle로 추가하십시오
  6. 성능 최적화:

    • 버전을 고정하고 종속성을 감사하고 충돌을 해결하여 안정성을 보장하십시오
  7. 도구들처럼 Capgo 실시간 업데이트:

    • 앱 스토어 리뷰 없이 즉시 업데이트를 푸시합니다.

도구 간 비교:

플랫폼도구예제 의존성
JavaScriptnpmnpm install lodash --save
iOSCocoaPods/SPMpod 'Alamofire', '~> 5.6.4'
AndroidGradleimplementation 'com.google.code.gson:gson:2.10.1'

Why it matters: __CAPGO_KEEP_0__을 효과적으로 관리하면 플러그인이 플랫폼 간에 무난하게 작동하고 시간을 절약하며 오류를 피할 수 있습니다. 더 깊게 들어가 봅시다.

How to create a Capacitor iOS/Android 플러그인

Capacitor 프레임워크 문서 사이트

개발 환경 설정

__CAPGO_KEEP_0__ 플러그인을 위한 개발 환경을 준비하세요. 필요한 도구를 설치하여 __CAPGO_KEEP_0__ 플러그인의 의존성을 효과적으로 관리하세요. Capacitor 플러그인 개발 환경을 위한 필수 도구

__CAPGO_KEEP_0__

다음 도구 목록은 필요합니다:

도구버전목적
Node.js16.0.0+JavaScript 런타임 환경
npm8.0.0+패키지 관리
Xcode14.0+iOS 개발 (Mac 전용)
Android StudioElectric Eel+안드로이드 개발
CocoaPods1.11.0+iOS 의존성 관리
Java 개발 키트11+안드로이드 빌드 도구

새로운 플러그인을 시작합니다.

프로젝트를 시작하기 위해 Capacitor CLI을 사용하세요. 이에는 플랫폼을 설정하고 플러그인을 역 도메인 형식으로 이름을 지어주는 과정이 포함됩니다 (예: com.example.plugin). com.mycompany.plugin):

  1. 다음 명령어를 실행하세요:
    npm init @capacitor/plugin
  2. iOS/Android 플랫폼을 선택하세요.
  3. 역 도메인 형식으로 플러그인 이름을 Assign a name to your plugin in reverse-domain format. assigns.

프로젝트 설정 단계

  1. 업데이트 package.json

    설정 수정 package.json 다음 항목을 포함하십시오:

    {
      "capacitor": {
        "ios": {
          "src": "ios"
        },
        "android": {
          "src": "android"
        }
      },
      "peerDependencies": {
        "@capacitor/core": "^5.0.0"
      }
    }
  2. 플랫폼별 설정

    • 위치 iOS, Podfile에 다음을 포함하십시오:

      platform :ios, '13.0'
      use_frameworks!
    • 위치 Android, AndroidManifest.xml에 다음을 포함하십시오: build.gradle 개발 도구에 대한 환경 변수를 설정하십시오:

      android {
          compileSdkVersion 33
          defaultConfig {
              minSdkVersion 22
          }
      }
  3. 다음 환경 변수를 설정하십시오:

    개발 도구 환경 변수를 설정하십시오:

    변수목적예시 값
    ANDROID_HOMEAndroid SDK 위치/Users/username/Library/Android/sdk
    JAVA_HOMEJDK 설치 경로/Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home
    XCODE_SELECTXcode 명령 줄 도구/Applications/Xcode.app/Contents/Developer

프로젝트 설정이 완료되면 자바스크립트 의존성을 관리하는 단계로 넘어가세요.

자바스크립트 의존성

자바스크립트 의존성을 효과적으로 관리하는 것은 플러그인 성능을 안정적으로 유지하는 데 중요합니다.

npm 패키지 설치

npm

의존성을 설치하려면 다음 명령어를 사용하세요:

# Add a production dependency
npm install lodash --save

# Add a development dependency
npm install @types/lodash --save-dev

peer 의존성을 수동으로 포함하여 package.json 파일에 추가하세요. 웹 및 네이티브 플랫폼 모두에서 호환성을 확인하기 위해 모든 의존성을 테스트하세요.

package.json 관리

예시 package.json 구성:

{
  "name": "my-capacitor-plugin",
  "version": "1.0.0",
  "dependencies": {
    "lodash": "^4.17.21"
  },
  "devDependencies": {
    "@types/lodash": "^4.14.195",
    "@capacitor/core": "^5.0.0"
  },
  "peerDependencies": {
    "@capacitor/core": "^5.0.0"
  }
}

일관성을 유지하기 위해 의존성 버전을 적절히 잠금하세요:

제약 조건 유형예시사용 사례
정확”5.0.0”중요한 의존성에 특정 버전이 필요할 때
캐럿”^5.0.0”소수점 이하의 업데이트와 패치 허용
틸드”~5.0.0”패치 업데이트만 제한

자바스크립트 라이브러리 사용

라이브러리를 임포트할 때, 번들 사이즈를 줄이세요:

// Import only the required function
import { isEqual } from 'lodash';

export class MyPlugin {
  async compare(options: { value1: any, value2: any }): Promise<boolean> {
    return isEqual(options.value1, options.value2);
  }
}

또한, 올바른 오류 처리 및 타입 확인을 보장하세요.

import { Plugin } from '@capacitor/core';
import { validate } from 'your-validation-library';

@Plugin({
  name: 'MyPlugin',
  platforms: ['web', 'ios', 'android']
})
export class MyPlugin {
  async validateData(data: unknown): Promise<void> {
    try {
      if (!validate(data)) {
        throw new Error('Invalid data format');
      }
      // Continue processing if valid
    } catch (error) {
      throw new Error(`Validation failed: ${error.message}`);
    }
  }
}

다음으로, iOS 플랫폼에 특화된 의존성을 관리하는 방법을 탐색하세요.

iOS 의존성

이 섹션에서는 iOS 의존성을 관리하는 방법을 설명합니다. Capacitor 플러그인자바스크립트 의존성을 설정한 후, 다음 단계는 iOS 의존성을 관리하는 것입니다.

CocoaPods 설정

CocoaPods

iOS 디렉토리에서 CocoaPods를 초기화하세요:

cd ios
pod init

그다음, 다음 설정을 포함하는 Plugin.podspec 파일을 업데이트하세요:

Pod::Spec.new do |s|
  s.name = 'MyCapacitorPlugin'
  s.version = '1.0.0'
  s.summary = 'Your plugin description'
  s.platform = :ios, '13.0'
  s.dependency 'Capacitor'
  # Include your iOS dependencies here
  s.dependency 'Alamofire', '~> 5.6.4'
end

Podfile 설정

Capgo를 초기화 한 후 Podfile에 Capacitor 및 추가적인 세 번째 파티 라이브러리들을 포함시켜야 합니다.

platform :ios, '13.0'
use_frameworks!

def capacitor_pods
  pod 'Capacitor', :path => '../../node_modules/@capacitor/ios'
  pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios'
end

target 'Plugin' do
  capacitor_pods
  # Add third-party dependencies
  pod 'KeychainAccess', '~> 4.2.2'
  pod 'SwiftyJSON', '~> 5.0.1'
end

target 'PluginTests' do
  capacitor_pods
end

다음은 일반적인 의존성 구성 패턴입니다.

제약 조건 유형예시사용 사례
정확한 버전pod 'KeychainAccess', '4.2.2'보안 구성 요소와 같은 정확한 제어가 필요한 경우
소 버전pod 'Alamofire', '~> 5.6'안정적인 API가 패치 업데이트를 받을 수 있는 경우
주 버전pod 'SwiftyJSON', '> 5.0'업데이트의 유연성을 허용할 때

Swift Package Dependencies

CocoaPods를 사용하지 않으려면, Swift Package Manager (SPM)는 좋은 대안입니다. Xcode에서 SPM 의존성을 직접 추가하려면 다음 구성이 필요합니다. Package.swift 파일:

// Package.swift
dependencies: [
    .package(url: "https://github.com/Alamofire/Alamofire.git", .upToNextMajor(from: "5.6.4")),
    .package(url: "https://github.com/SwiftyJSON/SwiftyJSON.git", from: "5.0.1")
]

SPM 의존성을 사용하여 플러그인 code을 사용하려면, 그들을 임포트하고 필요에 따라 통합하세요. 예를 들어:

import Capacitor
import Alamofire

@objc(MyPlugin)
public class MyPlugin: CAPPlugin {
    @objc func makeRequest(_ call: CAPPluginCall) {
        AF.request("https://api.example.com/data").response { response in
            // Process the response
            call.resolve([
                "data": response.data
            ])
        }
    }
}

이 방법은 프로젝트 요구 사항에 따라 CocoaPods와 Swift Package Manager를 선택할 수 있게 해줍니다.

Android Dependencies

Android 의존성을 설정하여 원활한 네이티브 통합을 보장하세요. 플러그인 Capacitor의 의존성을 관리하는 방법은 다음과 같습니다.

Gradle 의존성

Gradle 빌드 도구 인터페이스

다음 구성들을 프로젝트의 build.gradle 파일:

android {
    defaultConfig {
        minSdkVersion 22
        targetSdkVersion 33
    }
}

dependencies {
    implementation "androidx.appcompat:appcompat:1.6.1"
    implementation "com.google.code.gson:gson:2.10.1"
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.8.20"
    implementation project(':capacitor-android')
}

Capgo에서 추가 버전을 정의합니다. buildscript block:

buildscript {
    ext {
        androidxCoreVersion = '1.10.1'
        kotlinVersion = '1.8.20'
    }
}

설정된 의존성을 확인한 후 필요한 저장소를 설정하십시오.

프로젝트 설정

프로젝트 수준 build.gradleMaven 저장소가 필요합니다.

allprojects {
    repositories {
        google()
        mavenCentral()
        maven { url "https://jitpack.io" }
    }
}

만약 사용 중인 Maven 저장소가 커스텀 또는 프라이빗일 경우, 다음과 같은 자격증명을 추가하세요.

maven {
    url "https://maven.example.com/releases"
    credentials {
        username = project.findProperty("mavenUsername") ?: System.getenv("MAVEN_USERNAME")
        password = project.findProperty("mavenPassword") ?: System.getenv("MAVEN_PASSWORD")
    }
}

설치된 저장소에 대해 의존성 충돌이 발생할 수 있으므로 이를 해결합니다.

호환성 문제를 해결합니다.

의존성 충돌을 처리하기 위해 버전 해결을 적용하세요. build.gradle:

configurations.all {
    resolutionStrategy {
        force "org.jetbrains.kotlin:kotlin-stdlib:1.8.20"
        force "androidx.core:core-ktx:1.10.1"
    }
}

일반 의존성 문제를 해결하는 방법에 대한 전략입니다.

이슈 유형전략예시
버전 충돌특정 버전 강제force 'com.google.code.gson:gson:2.10.1'
여러 버전모듈 제외exclude group: 'org.json', module: 'json'
전이적 문제엄격한 버전 사용strictly 'androidx.core:core-ktx:1.10.1'

예를 들어, 다음과 같이 충돌하는 모듈을 제외할 수 있습니다.

dependencies {
    implementation('library:name:1.0.0') {
        exclude group: 'com.conflicting.dependency'
    }
}

마지막으로 빌드 프로세스를 최적화하기 위해 캐싱 및 병렬 실행을 활성화하여 gradle.properties:

org.gradle.caching=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx2048m

Capgo 통합

Capgo Live Update Dashboard Interface

자바스크립트 의존성 관리와 함께 Capgo를 사용하면 플러그인 업데이트를 더 빠르고 쉽게 업데이트할 수 있습니다.

Capgo에 대해

Capgo는 Capacitor 플러그인 및 앱을 위한 라이브 업데이트 플랫폼입니다. 750개의 운영 앱에서 23.5백만 업데이트를 전달했습니다. [1]Capgo는 개발자에게 앱 스토어 검토 없이 의존성 및 code의 업데이트를 푸시할 수 있도록합니다. 업데이트는 종단 간 암호화로 보호되고 애플 및 안드로이드 규정 준수 표준을 충족합니다.

Capgo 업데이트 기능

Capgo는 다음 기능을 통해 플러그인 의존성을 관리하기가 더 쉽습니다.

기능무엇을 하는가주요 지표
라이브 업데이트분당 업데이트24시간 내 95%의 사용자 업데이트 속도
부분 업데이트변경된 파일만 다운로드434ms 평균 API 응답 시간
버전 관리여러 버전 관리82% 글로벌 성공률
채널 시스템특정 사용자 그룹을 대상으로여러 배포 채널을 지원

출처: [1]

Capgo는 CI/CD 도구인 GitHub Actions, GitLab CI, Jenkins와 완벽하게 호환되며, 의존성 업데이트 및 일관된 플러그인 버전을 보장하는 자동화된 도구입니다. 이 도구는 Capgo를 워크플로에 통합하는 것을 더 쉽게 만듭니다.

Capgo 설정

Capgo을 프로젝트에 통합하기 위한 단계를 따르세요.

  1. Capgo CLI을 설치하세요.

    터미널에서 다음 명령어를 실행하세요.

    npx @capgo/cli init
  2. 업데이트 설정

    Capgo 대시보드를 통해 배포 채널 및 설정을 구성하세요. 클라우드 호스팅 및 자체 호스팅 구성이 모두 지원됩니다.

  3. 업데이트 로직 추가

    code을 메인 플러그인 파일에 추가하여 업데이트를 활성화하세요.

    import { Capgo } from '@capgo/capacitor-updater';
    
    // Initialize Capgo
    const capgo = new Capgo({
      appId: 'YOUR_APP_ID',
      channel: 'production'
    });
    
    // Check for updates
    await capgo.checkForUpdate();

“빠른 개발을 실천하고 @Capgo은 사용자에게 지속적으로 제공하는 mission-critical입니다!” - Rodrigo Mantica

Capgo은 업데이트 성공률 및 사용자 활동에 대한 실시간 통찰력을 제공하는 분석 대시보드를 제공합니다. 롤백 및 오류 추적과 같은 기능을 사용하여 문제를 신속하게 해결하여 플러그인 업데이트를 원활하게 유지하세요.

결론

프로세스 리뷰

iOS 및 Android 플러그인에 대한 의존성 관리는 Capacitor 플러그인의 네이티브 컴포넌트 (iOS 및 Android)와 자바스크립트 컴포넌트를 일치시키는 것을 포함하여 smooth한 통합을 보장하기 위해 수행됩니다. 이 프로세스는 플랫폼별 설정과 자바스크립트 패키지 관리를 포함하여 최적의 성능을 달성하기 위해 수행됩니다. 다음 단계를 따르면 안정적이고 효율적인 플러그인 기능을 유지할 수 있습니다.

Best Practices

의존성 관리를 효과적으로 관리하려면 다음 방법을 고려하십시오:

PracticeBenefitImplementation 방법
버전 고정예상치 못한 문제를 피하기버전을 고정하여 package.json
플랫폼 격리충돌을 최소화하기네이티브 의존성을 분리
정기적인 업데이트보안을 강화합니다중요한 패치를 즉시 적용하세요
의존성 감사위험을 감지합니다실행 npm audit 주기적으로

Capgo와 같은 라이브 업데이트 도구를 사용하면 이러한 관행을 단순화하고 개선할 수 있습니다. Capgo는 실시간 업데이트 기능을 제공하여 업데이트를 더욱 간편하게 만듭니다.

Capgo의 이점

Capgo는 의존성 관리를 단순화하면서 강력한 성능을 제공합니다. Capgo는 24시간 이내에 95%의 사용자 업데이트율을 달성하고 전 세계 Capgo의 응답 시간을 유지합니다. 24시간 이내에 95%의 사용자 업데이트율을 달성하고 전 세계 __CAPGO_KEEP_0__의 응답 시간을 유지합니다. 24시간 이내에 95%의 사용자 업데이트율을 달성하고 전 세계 API의 응답 시간을 유지합니다. 434ms [1]Apple과 Android의 지침을 모두 충족하는 보안 업데이트를 보장하는 엔드 투 엔드 암호화가 있습니다. 여러 플러그인 버전을 관리하는 팀에게는 Capgo의 채널 시스템이 특정 사용자 그룹에 대한 표적 배포를 허용합니다.

다음은 Capgo의 성능에 대한 빠른 시야입니다.

지표
전역 API 응답 시간434ms
업데이트 성공률82%
사용자 업데이트 속도 (24시간)95%
Capacitor 앱에 대한 실시간 업데이트

Capgo을 통해 웹 레이어 버그가 활성화되면 앱 스토어 승인 대기 없이 바로 픽스를 배포하세요. 사용자는 배경에서 업데이트를 받으면서 네이티브 변경 사항은 일반적인 리뷰 경로에 남아 있습니다.

시작하기

최신 블로그 게시물

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