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 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 플러그인이 제공하지 않는 기능을 사용하기 위해, 사용자가 커스텀 플러그인을 만들 수 있습니다. 방법은 다음과 같습니다.
-
플러그인 정의
@Plugin({ name: 'CustomFeature', platforms: ['ios', 'android'] }) -
Code
@PluginMethod() async customFunction(): Promise<void> { if (Capacitor.getPlatform() === 'ios') { // Add iOS-specific code } else { // Add Android-specific code } } -
플랫폼 차이處理
-
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_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 네이티브 네비게이션을 위한 네이티브 기능을 위해.