소개
Progressive Web App이 이미 있습니다. 브라우저에서 작동하고 매니페스트가 있으며 오프라인 지원을 위해 서비스 워커를 사용하는 경우가 있습니다. 이제 앱 스토어 배포, 네이티브 디바이스 API 또는 보다 나은 온보딩 파이프라인이 필요하다면 Capacitor 앱으로 마이그레이션하는 것이 프론트 엔드 다시 작성하는 것보다 일반적으로 더 빠릅니다.
code에서 대부분의 경우에만 다음을 수행하면 됩니다:
- __CAPGO_KEEP_0__ 프로덕션 웹 자산을 빌드합니다.
- Capacitor를 올바른 것으로 초기화합니다.
webDir, - iOS 및 Android 프로젝트를 추가합니다.
- 필요한 경우 네이티브 플러그인을 연결합니다.
PWA가 깨끗한 경로와 컴포넌트 논리 구조를 가지고 있다면 이 작업은 몇 시간 만에 완료될 수 있습니다.
필요 조건
예상 시간: 2-5 시간, 플랫폼별 특성에 따라 달라집니다.
- Node.js 18세 이상과 Bun
- code의 기존 PWA 소스 (React, Vue, Angular, Svelte, etc.)
- Xcode (iOS, macOS 전용)
- Android Studio (Android 전용)
- iOS를 배포하려면 Apple Developer 계정이 필요합니다.
- Android 배포를 위해 Google Play Developer 계정이 필요합니다.
1단계: PWA를 네이티브로 wrapping하기 전에 확인하세요.
실행하기 전에 bunx cap init, 프로덕션 준비가 완료되었는지 확인하세요:
- 웹 앱을 네이티브 앱으로 변환하는 방법
bun run build). - 웹 앱의 빌드 스크립트가 프로덕션 빌드 스크립트인지 확인하세요 (예를 들어)
dist,build웹 앱의 출력 폴더가 결정적인지 확인하세요 (많은 경우)out). - 절대적인 리다이렉트를 제거하세요. 이 리다이렉트는 브라우저 전용 컨텍스트를 가정합니다.
- 서비스 워커의 동작이 모바일 웹 뷰와 호환되는지 확인하세요:
- 오프라인 지원을 유지하세요. 이 오프라인 지원이 사용자에게 도움이 된다면.
- 브라우저 전용 API를 사용하지 마세요. 이 API는 임베디드 웹 뷰에서 사용할 수 없습니다.
- 웹 앱 설치提示와 브라우저 전용 UX가 여전히 의미가 있는지 확인하세요. Capacitor 앱에서, 앱 설치提示는 일반적으로 필요하지 않습니다.
Step 2: 웹 전용 동작을 적응하세요
앱 UI를 유지하세요. 브라우저 전용 논리를 게이트하세요.
설치 및 푸시提示를 위한 플랫폼 체크를 사용하세요:
import { Capacitor } from '@capacitor/core'
const isNative = Capacitor.isNativePlatform()
function registerInstallPrompt() {
if (isNative) return
// existing browser-only install or Web Push code
}
이것은 네이티브 컨테이너 내부에서 브라우저 전용 논리가 실행되는 것을 피합니다.
Step 3: Capacitor 초기화
기존 PWA 루트에서:
bun add @capacitor/core
bun add -D @capacitor/cli
Capacitor init 명령어를 실행하여 앱 이름, 번들 ID, 웹 출력 디렉토리를 지정합니다.
bunx cap init MyPWAApp com.example.my-pwa-app --web-dir dist
빌드 폴더가 build (Create React App) 또는 out (Next.js 정적 내보내기), dist.
Capacitor config 기본 설정을 추가합니다.
import type { CapacitorConfig } from '@capacitor/cli'
const config: CapacitorConfig = {
appId: 'com.example.my-pwa-app',
appName: 'MyPWAApp',
webDir: 'dist',
server: {
iosScheme: 'https',
},
}
export default config
Step 4: 네이티브 플랫폼 추가
네이티브 코어 패키지를 설치하고 프로젝트 폴더를 생성합니다.
bun add @capacitor/ios @capacitor/android
bunx cap add ios
bunx cap add android
Capacitor은 ios/ 폴더를 생성하고, 빌드된 웹 자산을 두 플랫폼에同步합니다. android/ 폴더를 생성하고,
Step 5: 웹 앱을 빌드하고 동기화
PWA를 빌드하고 웹 자산 동기화:
bun run build
bunx cap sync
현재 네이티브 프로젝트를 열어보세요:
bunx cap open ios
bunx cap open android
Xcode 또는 Android Studio에서 장치 또는 에뮬레이터를 연결하고 실행하세요.
Step 6: 네이티브 앱으로의 마이그레이션 후
이제 웹 전용 기능을 네이티브 API로 대체해야 하는 곳입니다:
- 푸시 알림 ->
@capacitor/push-notifications - 보안 키/값 저장소 ->
@capacitor/preferences - 카메라/미디어 ->
@capacitor/camera - 생체 인증 ->
@capacitor-community/native-biometric(또는 선택한 플러그인)
새로운 네이티브 플러그인에 대해 각각:
- 설치 플러그인 패키지를 설치하세요.
- 플러그인에 대한 설정을 구성하세요.
- Run:
bunx cap sync
그런 다음 다시 빌드하고 실행하세요.
7단계: 앱 스토어 일치성 검사
제출하기 전에:
- 테스트 링크 및 라우팅 (
/및 깊은 경로) 두 플랫폼 모두에서. - 상태 바, 안전 영역 및 방향이 올바른지 확인하세요.
- 사용되지 않는 웹 전용 메타데이터를 제거하세요. (예: 설치提示).
- 앱 전송 보안 및 개인 정보 설정을 정책에 맞게 유지하세요.
- 각 플랫폼에 앱 아이콘/스플래시 자산을 추가하세요.
OTA 업데이트를 사용하는 앱이 있다면, 릴리스 PIPELINE을 Native-safe 업데이트 전략과 Pair하고 Consider하는 것을 고려하십시오. Capgo 제어된 롤아웃 및 롤백을 위해
최종 체크리스트
- 웹 앱 빌드는 깨끗하게 작동합니다 (
bun run build) - Capacitor이 올바르게 초기화된
webDir bunx cap add ios그리고bunx cap add android완료- 실제 기기에서 Native 앱이 작동합니다
- 브라우저 전용 code 경로는 Native 동작을 위해 게이트웨이됩니다
- 업데이트 채널 및 앱 스토어 자산은 구성되었습니다
PWA를 빌드한 대부분의 어려운 작업을 이미 수행했습니다. Capacitor으로 wrapping하면:
- 스토어 배포
- 자연어 API에 대한 접근
- 전체적인 code 재작성 없이 빠른 반복
- __CAPGO_KEEP_0__ 웹 및 모바일 팀을 위한 단일 배포 경로
__CAPGO_KEEP_0__ 플로우에서 시작하여 분석 및 사용자 피드백에 따라 네이티브로 반복
Capacitor를 사용하여 PWA를 네이티브 앱으로 변환
__CAPGO_KEEP_0__를 사용 중 Capacitor를 사용하여 PWA를 네이티브 앱으로 변환 __CAPGO_KEEP_0__ Enterprise와 연결하여 Capgo Enterprise Capgo Enterprise의 제품 워크플로 Ionic Enterprise 플러그인 대체품 Ionic Enterprise 플러그인 대체품 workflow를 위한 Capgo 대체품 for the product workflow in Capgo Alternatives, Capgo 컨설팅 Ionic Enterprise 플러그인 대체품 workflow를 위한 Capgo 컨설팅, 및 Capgo 프리미엄 지원 Ionic Enterprise 플러그인 대체품 workflow를 위한 Capgo 프리미엄 지원.