본문으로 건너뛰기

Capacitor 플랫폼 차이 관리

__CAPGO_KEEP_0__ 플랫폼 차이 관리

How Capacitor Handles Platform Differences

Capacitor Capacitor 플랫폼의 차이점을 해결하는 방법

  • iOS와 Android를 위한 앱을 개발하는 데 도움이 됩니다.platform-detection Capacitor.getPlatform() to apply platform-specific code.
  • platform-detectionCustom Plugins
  • 고유한 요구 사항을 위한 네이티브 플러그인을 추가합니다.: Add native code for unique requirements.
  • iOS의 디자인 규칙을 따릅니다.SF Symbols SF SymbolsiOS (예시: , 반올림 버튼)과 Android (예시: , 왼쪽 정렬 버튼) Material IconsAndroid (예시: , 반올림 버튼)과 iOS (예시: , 왼쪽 정렬 버튼)
  • 설정: 양쪽 플랫폼의 설정을 조정합니다. capacitor.config.json 라이브 업데이트와
  • __CAPGO_KEEP_0__ Capgo빠른 비교

기능

iOS Android 안드로이드
네비게이션 하단 탭바, 왼쪽 뒤로가기 상단 네비게이션 드로어, 하단 네비게이션
타이포그래피 산프란시스코 폰트 로보토 폰트
플러그인 (예: 카메라) AVFoundation 카메라2 API
빌드 출력 .ipa 파일 .aab 또는 .apk 파일

Capacitor은 웹과 네이티브 앱 개발 사이의 격차를 메우고, 플랫폼에 특화된 최적화 유지하면서 크로스 플랫폼 앱을 더 쉽게 만들 수 있도록 해줍니다.

크로스 플랫폼 개발: CapacitorJS와 …을 탐험하는 중입니다.

어떻게 Capacitor Code

Capacitor 플랫폼

Capacitor offers tools to manage platform-specific code, allowing developers to create tailored experiences for iOS and Android using a single API.

Code은 iOS와 Android에 대한 맞춤형 경험을 만들 수 있도록 개발자에게 플랫폼에 특화된 __CAPGO_KEEP_1__ 관리를 위한 도구를 제공합니다. 개발자는 단 하나의 __CAPGO_KEEP_2__를 사용하여 iOS와 Android에 대한 맞춤형 경험을 만들 수 있습니다.

With Capacitor’s built-in platform API, detecting the current platform is simple. The Capacitor.getPlatform() method identifies the running environment, making it easy to apply conditional logic:

import { Capacitor } from '@capacitor/core';

const platform = Capacitor.getPlatform();
if (platform === 'ios') {
  // Code specific to iOS
} else if (platform === 'android') {
  // Code specific to Android
}

이 접근 방식은 특히 기능 에서 유용합니다. iOS에서는 and Android relies on Fingerprint Authentication. Along with platform detection, Capacitor’s built-in plugins simplify native integration.

를 사용하고 Android에서는

Capacitor comes with a set of core plugins that handle platform-specific differences seamlessly. These plugins manage the complexities of native implementations while providing a consistent JavaScript interface:

을 사용합니다. 플랫폼 감지를 위한 __CAPGO_KEEP_0__ 의 내장 플러그인은 네이티브 통합을 간소화합니다.
내장 플랫폼 기능 AVFoundation 카메라2 API
저장소 UserDefaults SharedPreferences
위치 정보 CoreLocation 위치 관리자

각 플러그인은 플랫폼의 네이티브 API를 자동으로 사용하여 smooth한 성능과 기능성을 보장합니다.

커스텀 플랫폼 플러그인 만들기

필요한 경우에 built-in 플러그인이 제공하지 않는 기능을 사용하기 위해, 사용자가 커스텀 플러그인을 만들 수 있습니다. 방법은 다음과 같습니다.

  1. 플러그인 정의

    @Plugin({
      name: 'CustomFeature',
      platforms: ['ios', 'android']
    })
  2. Code

    @PluginMethod()
    async customFunction(): Promise<void> {
      if (Capacitor.getPlatform() === 'ios') {
        // Add iOS-specific code
      } else {
        // Add Android-specific code
      }
    }
  3. 플랫폼 차이處理

    • iOS (Swift):

      @objc func customFunction(_ call: CAPPluginCall) {
        // Add native iOS functionality
      }
    • 안드로이드 (Kotlin):

      @PluginMethod
      fun customFunction(call: PluginCall) {
        // Add native Android functionality
      }

사용자 지정 플러그인은 네이티브 기능에 접근할 수 있으면 API를 일관성 있게 유지하고 사용하기 쉽게 유지합니다. 이로 인해 성능 및 기능성이 향상되고 개발 프로세스가 복잡해지지 않습니다.

플랫폼별 UI 지침

iOS vs Android 디자인 규칙

iOS와 Android를 위한 디자인을 할 때, 네이티브 디자인 패턴을 따르는 것이 중요합니다. 각 플랫폼의 사용자는 네비게이션, 타이포그래피, 버튼, 헤더, 아이콘과 같은 것에 대한 기대치를 다릅니다. 그들의 차이점은 다음과 같습니다:

디자인 요소 iOS 안드로이드
네비게이션 하단 탭바, 왼쪽에 뒤로가기 버튼 상단 네비게이션 드로어, 하단 네비게이션
타이포그래피 San Francisco 폰트 Roboto 폰트
버튼 둥근 사각형, 텍스트 중앙 정렬 Material Design 버튼, 텍스트 왼쪽 정렬
헤더 큰 제목, 텍스트 중앙 정렬 앱 바, 텍스트 왼쪽 정렬
아이콘 SF Symbols Material Icons

플랫폼 차이점을 다루는 방법

각 플랫폼은 독특한 규칙을 가지고 있지만, 두 플랫폼 모두에서 일관된 브랜드 정체성을 유지하는 것은 중요합니다. 이와 같은 일관성을 유지하는 방법은 다음과 같습니다.

const sharedStyles = {
  primaryColor: '#007AFF', // iOS blue
  androidPrimaryColor: '#6200EE', // Material Design purple
  borderRadius: Capacitor.getPlatform() === 'ios' ? '10px' : '4px'
};

:root {
  --app-header-height: var(--platform-header-height, 56px);
  --app-safe-area-top: var(--platform-safe-area-top, 0px);
}

Capacitor을 사용하여 플랫폼별 UI 컴포넌트를 통합할 수 있습니다. 또한 시스템 전역 설정인 Dark Mode와 Dynamic Type를 관리하는 데 도움이 됩니다. 이 과정을 완료하려면 플랫폼별 빌드 설정이 이 지침과 일치해야 합니다.

플랫폼 설정 및 구성

플랫폼 code을 관리한 후, iOS와 Android両 플랫폼에서 앱이 정상적으로 작동하도록 하기 위해 적절한 구성이 필요합니다.

플랫폼 설정 capacitor.config.json

Use the capacitor.config.json 파일을 사용하여 플랫폼별 설정을 정의하세요:

{
  "appId": "com.example.app",
  "appName": "MyApp",
  "ios": {
    "contentInset": "always",
    "backgroundColor": "#ffffff",
    "scheme": "myapp",
    "preferredContentMode": "mobile"
  },
  "android": {
    "backgroundColor": "#FFFFFF",
    "allowMixedContent": true,
    "captureInput": true,
    "webContentsDebuggingEnabled": true
  }
}

다음과 같은 구성 옵션을 고려하세요:

선택 iOS Android
깊이 링크 scheme 속성 androidScheme 속성
상태 바 statusBar.style statusBar.backgroundColor
키보드 keyboard.resize keyboard.resize, keyboard.style
스플래시 화면 splashScreen.launchShowDuration splashScreen.layoutName

런타임 설정이 준비되면, 각 플랫폼을 위한 성능 향상을 위한 빌드 설정을 조정하세요.

플랫폼별 빌드 설정

iOS와 Android를 위한 빌드 설정을 최적화하세요.

iOS의 경우, Info.plist 파일:

<key>NSCameraUsageDescription</key>
<string>Required for document scanning</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Required for store locator</string>

안드로이드를 위한 경우, 수정하세요. android/app/build.gradle:

android {
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 33
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt')
        }
    }
}

다음은 몇 가지 주요 빌드 고려 사항입니다:

면 iOS 안드로이드
권한 Add entries in Info.plist Define in AndroidManifest.xml
아이콘 20px에서 1024px까지의 크기 mdpi에서 xxxhdpi까지의 밀도
스플래시 화면 스토리 보드 기반 레이아웃 XML 기반
빌드 출력 .ipa 파일 .aab 또는 .apk 파일

__CAPGO_KEEP_0__ 앱을 업데이트합니다. Capgo Live Update 대시보드 인터페이스

Capgo 유지

__CAPGO_KEEP_0__ 앱 유지 Capacitor Live Update 대시보드 인터페이스 iOS와 Android両방향에 대한 업데이트가 효율적으로 이루어지기 위해 중요합니다. Capgo는 iOS와 Android의 지침에 맞는 라이브 업데이트 시스템을 제공합니다.

Capgo 기능

기능 설명 플랫폼 이점
라이브 업데이트 페이지/영역: 홈페이지 문제/해결 섹션. 역할: 섹션 또는 페이지 제목. 보이는 곳: 페이지 premium-support.astro. 메시지 키 `ps_help_updates_title` (Ps Help Updates Title). 앱 스토어 검토 없이 즉시 배포
iOS와 Android에서 일관된 경험을 보장 끝-to-끝 암호화 페이지/영역: Capgo 솔루션 마케팅 페이지. 역할: 섹션 또는 페이지 제목. 보이는 곳: 페이지 solutions/fintech.astro. 메시지 키 `solutions_fintech_cert3_title` (Solutions Fintech Cert3 Title). | 페이지/영역: Capgo 솔루션 마케팅 페이지. 역할: 섹션 또는 페이지 제목. 보이는 곳: 페이지 solutions/fintech.astro. 메시지 키 `solutions_fintech_sol3_title` (Solutions Fintech Sol3 Title). | 페이지/영역: Capgo 솔루션 마케팅 페이지. 역할: 섹션 또는 페이지 제목. 보이는 곳: 페이지 solutions/healthcare.astro. 메시지 키 `solutions_healthcare_sol3_title` (Solutions Healthcare Sol3 Title). | 페이지/영역: Capgo 솔루션 마케팅 페이지. 역할: 짧은 UI 레이블 또는 네비게이션 아이템. 보이는 곳: 페이지 solutions/fintech.astro. 메시지 키 `solutions_fintech_badge_e2e` (Solutions Fintech Badge E2e). | 페이지/영역: Capgo 솔루션 마케팅 페이지. 역할: 짧은 UI 레이블 또는 네비게이션 아이템. 보이는 곳: 페이지 solutions/healthcare.astro. 메시지 키 `solutions_healthcare_badge_e2e` (Solutions Healthcare Badge E2e).
업데이트 전달을 보장합니다. __CAPGO_KEEP_0__ 특정 사용자 그룹을 대상으로 함
베타 테스트 및 단계별 출시를 지원 부분 업데이트 수정된 콘텐츠만 다운로드

Capgo은 23.5만 건의 업데이트를 제공하여 24시간 이내에 95%의 활성 사용자 업데이트율을 달성했습니다 [1]. 이러한 기능은 업데이트 관리 플랫폼 간 업데이트가 smoother하고 더 효율적으로 진행됩니다.

Capgo 플랫폼 관리

Capgo의 채널 시스템은 업데이트를 더 쉽게 관리할 수 있도록 해줍니다. 개발자는 iOS 전용 기능을 베타 사용자와 함께 테스트할 수 있고, Android 업데이트를 단계별로 출시할 수 있으며, 성능 지표를 무난하게 추적할 수 있습니다.

애플과 구글의 오버 더 에어 업데이트 요구 사항을 준수합니다. [1].

현재 750개의 프로덕션 앱이 Capgo을 사용하고 있으며 전 세계적으로 82%의 업데이트 성공률을 유지하고 있습니다. [1]. CI/CD 통합은 배포를 간소화하고, 롤백 기능은 문제가 발생할 경우 이전 버전으로 즉시 되돌아가게 해줍니다. 업데이트 성능에 대한 실시간 분석은 앱의 안정성을 유지하는 데 도움이 됩니다.

결론

플랫폼 관리 이점

Capacitor에서 플랫폼 차이점을 효과적으로 관리하면 크로스 플랫폼 개발을 향상시킵니다. 플랫폼 감지 및 구성에 대한 내장 도구를 통해 개발자는 iOS와 Android両쪽에서 smooth한 경험을 제공할 수 있으며, 각 플랫폼의 고유한 디자인 표준 및 기능을 존중할 수 있습니다.

업데이트를 더 빠르게 릴리즈하고 사용자 만족도를 높이기 위해 개발 팀은 적절한 플랫폼 관리에 집중할 수 있습니다. Capgo과 같은 도구는 일관된 플랫폼 처리가 높은 업데이트 성공률과 더 나은 사용자 경험을 가져올 수 있음을 보여주었습니다. [1].

“우리는_agile 개발을 실천하고 @Capgo은 사용자에게 지속적으로 제공하는 mission-critical입니다!”
– Rodrigo Mantica [1]

이런 통찰력을 바탕으로 실질적인 개선점을 찾을 수 있습니다.

다음 단계

__CAPGO_KEEP_0__의 이 이점을 최대로 활용하려면 다음 전략을 고려해 보세요.

작업 항목 장점
플랫폼 감지 활성화 iOS 및 Android의 요구 사항에 자동으로 적응
실시간 업데이트 구현 급한 수정을 위한 앱 스토어 지연을 피함
분석 설정 각 플랫폼의 성능 지표를 추적
롤백 지원 활성화 플랫폼별 문제를 빠르게 해결

개발자들이 워크플로우를 개선하기 위해 Capgo와 같은 도구를 사용하는 경우, 개발 과정이 단순화될 수 있습니다. 엔드 투 엔드 암호화 및 CI/CD 통합과 같은 기능은 팀이 일관성을 유지하면서 효율적으로 업데이트를 배포할 수 있도록 도와줍니다.

플랫폼 관리의 성공은 올바른 도구를 사용하고 플랫폼별 지침을 준수하는 데에 달려 있습니다. 강력한 감지 및 관리 전략에 집중함으로써 개발자는 iOS 및 Android両 플랫폼에서 앱이 부드럽게 작동하도록 보장할 수 있습니다.

How Capacitor Handles Platform Differences에서 계속

만약 __CAPGO_KEEP_0__을 사용하고 있다면 How Capacitor Handles Platform Differences 자연스러운 미디어 및 인터페이스 동작을 계획하려면 __CAPGO_KEEP_0__을 __CAPGO_KEEP_1__-live-activities와 연결하세요 Using @capgo/capacitor-live-activities for the native capability in Using @capgo/capacitor-live-activities, @capgo/capacitor-live-activities for the implementation detail in @capgo/capacitor-live-activities, Using @capgo/capacitor-video-player for the native capability in Using @capgo/capacitor-video-player, @capgo/capacitor-video-player for the implementation detail in @capgo/capacitor-video-player, and Using @capgo/capacitor-native-navigation capgo의 capacitor 네이티브 네비게이션을 위한 네이티브 기능을 위해.

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

웹-layer 버그가 활성화된 상태에서 앱 스토어 승인까지 며칠 기다리지 않고 Capgo를 통해 패치를 배포하세요. 사용자는 배경에서 업데이트를 받으면서 네이티브 변경 사항은 일반적인 검토 경로에 남아 있습니다.

인간 지원은 마틴의 도움을 받습니다.

시작하기

최신 블로그 소식

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