메인 콘텐츠로 바로가기
튜토리얼

Capgo를 사용하여 Capacitor을 Native 앱으로 변환하세요.

이미 존재하는 프로그레시브 웹 앱을 iOS 및 Android용 Native Capacitor 앱으로 변환하는 방법에 대한 실용적인 가이드입니다. 이 가이드에서는 PWA를 최소한의 code 변경으로 패키징하는 방법을 설명합니다.

마틴 도나디유

마틴 도나디유

콘텐츠 마케터

웹 앱을 네이티브 앱으로 변환하세요. Capacitor

소개

이미 프로그레시브 웹 앱을 가지고 있습니다. 브라우저에서 작동하고 매니페스트가 있고, 오프라인 지원을 위해 서비스 워커를 사용하는 경우가 있습니다. 이제 앱 스토어 배포, 네이티브 디바이스 API, 또는 온보딩 파이프라인 개선이 필요하다면, Capacitor 앱으로 마이그레이션하는 것이 프론트엔드 다시 작성하는 것보다 일반적으로 더 빠릅니다.

가장 큰 장점은 거의 모든 기존 웹 code를 유지하는 것입니다. 대부분의 경우에, 다음만 필요합니다:

  • 프로덕션 웹 자산 빌드
  • Capacitor를 올바른 webDir,
  • iOS 및 Android 프로젝트 추가
  • 필요한 경우 네이티브 플러그인만 연결

웹 앱이 깨끗한 경로와 컴포넌트 로직을 가지고 있다면, 이 작업은 몇 시간 만에 끝낼 수 있습니다.

필요한 전제 조건

추정 시간: 2-5 시간, 플랫폼에 따라 다름.

  • Node.js 18 이상 Bun
  • code (React, Vue, Angular, Svelte, 등)가 있는 기존 PWA 소스
  • Xcode (iOS, macOS 전용)
  • Android Studio (Android 전용)
  • iOS 배포를 위해 Apple Developer 계정
  • Android 배포를 위해 Google Play Developer 계정

1단계: PWA를 네이티브로 wrapping하기 전에 확인하세요.

앱을 실행하기 전에 bunx cap init웹 앱이 프로덕션 준비가 되었는지 확인하세요:

  1. 프로덕션 빌드 스크립트가 있는지 확인하세요 (예를 들어 bun run build).
  2. 웹 출력 폴더가 결정적이도록 (많은 경우 dist, build, 또는 out).
  3. 브라우저 전용 컨텍스트를 가정하는 절대적인 리다이렉트를 제거하세요.
  4. 웹뷰 내장된 웹뷰와 호환되는 서비스 워커 동작을 확인하세요:
    • 사용자에게 도움이 되는 경우 오프라인 지원을 유지하세요.
    • 브라우저 전용 API를 피하세요. 이 API는 내장된 웹뷰에서 사용할 수 없습니다.
  5. PWA 설치提示 및 브라우저 전용 UX가 여전히 의미가 있는지 확인하세요. Capacitor 앱에서 앱 설치提示는 일반적으로 필요하지 않습니다.

2단계: 웹 전용 동작을 적응하세요.

앱 UI를 유지하고 브라우저 전용 논리를 게이트합니다.

설치 및 푸시 프로모션 주변에 간단한 플랫폼 체크를 사용하십시오.

import { Capacitor } from '@capacitor/core'

const isNative = Capacitor.isNativePlatform()

function registerInstallPrompt() {
  if (isNative) return
  // existing browser-only install or Web Push code
}

이것은 네이티브 컨테이너 내부에서 브라우저 전용 논리가 실행되지 않도록 합니다.

3단계: Capacitor을 PWA 폴더에서 초기화하십시오.

기존 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 설정을 추가하십시오.

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

4단계: 네이티브 플랫폼 추가

코어 네이티브 패키지를 설치하고 프로젝트 폴더를 생성하십시오.

bun add @capacitor/ios @capacitor/android
bunx cap add ios
bunx cap add android

이 시점에서 Capacitor은 ios/ 및 폴더가 생성되었습니다. android/ Syncing은 빌드된 웹 자산을 두 플랫폼 모두에 복사합니다.

5단계: 웹 앱을 빌드하고 Sync

PWA를 빌드하고 웹 자산을 Sync:

bun run build
bunx cap sync

현재 네이티브 프로젝트를 열어보세요:

bunx cap open ios
bunx cap open android

Xcode 또는 Android Studio에서 장치 또는 에뮬레이터를 연결하고 실행하세요.

6단계: 마이그레이션 후 네이티브 향상

이것은 웹 전용 기능을 필요한 곳에서 네이티브 API로 대체하는 곳입니다:

  • 푸시 알림 -> @capacitor/push-notifications
  • 보안 키/값 저장소 -> @capacitor/preferences
  • 카메라 / 미디어 -> @capacitor/camera
  • 바이омет릭 인증 @capacitor-community/native-biometric (또는 사용자의 선택한 플러그인)

새로운 네이티브 플러그인에 대해:

  1. 플러그인 패키지를 설치하세요
  2. 플러그인별 설정을 구성하세요
  3. 실행:
bunx cap sync

그 다음에 다시 빌드하고 실행하세요.

7단계: 앱스토어 일치성 검사

제출하기 전에:

  • 테스트 하이퍼링크 및 라우팅 (/ 모바일 및 데스크톱 플랫폼에서 모두 지원하는 깊은 경로를 제공합니다.
  • 화면의 상태栏, 안전 영역, 및 방향이 올바른지 확인합니다.
  • 사용하지 않는 웹 전용 메타데이터를 제거하여 앱 동작과 충돌하지 않도록 합니다 (예를 들어, 설치 프롬프트).
  • __CAPGO_KEEP_0__
  • 앱의 전송 보안 및 개인 정보 보호 설정을 정책에 맞게 유지합니다.

각 플랫폼에 대한 앱 아이콘/스플래시 자산을 추가합니다. Capgo __CAPGO_KEEP_0__

최종 체크리스트

  • 웹 앱 빌드는 깨끗하게 (bun run build)
  • Capacitor webDir
  • bunx cap add iosbunx cap add android 완료
  • 실제 장치에서 Native 앱이 실행됩니다
  • 브라우저 전용 code 경로들은 네이티브 동작을 위해 게이트웨이됩니다.
  • 업데이트 채널과 앱 스토어 자산은 구성됩니다.

브라우저 전용 앱을 만들 때 이미 많은 노력을 기울였습니다. Capacitor로.wrap하면 다음과 같은 이점이 있습니다.

  • 스토어 배포
  • 네이티브 API에 대한 접근
  • 전체 code 재작성 없이 빠른 반복
  • 웹 및 모바일 팀에 대한 단일 배포 경로

이 흐름에서 시작하여 분석 및 사용자 피드백에 따라 네이티브로 반복하세요.

Capacitor 앱에 대한 Live 업데이트

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

시작하기

최신 블로그 게시물

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