AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Turbo Native: React Native 없이 모바일 앱을 만든 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

앱 개발

대상자

  • Rails 기반 웹 개발자크로스플랫폼 앱 개발을 고려 중인 팀
  • React Native의 복잡성과 유지보수 부담을 피하고자 하는 프로젝트
  • 짧은 개발 주기빠른 출시가 필요한 내부 도구/CRUD 중심 앱 개발자

핵심 요약

  • Turbo Native는 기존 Rails 백엔드를 그대로 재사용하며, WKWebView/WebView를 기반으로 네이티브 UI를 제공
  • WKWebViewConfiguration, TurboNavigationController네이티브 코드 활용
  • 100% HTML 뷰 재사용 + 네이티브 탭바/스와이프 동작으로 90% 코드 재사용률 달성
  • 앱 스토어 승인 시간 24시간 + API 변경 없이 출시
  • 성능 희생: Animations 약한 점, 오프라인 지원 제한
  • Hybrid 접근: 결제 흐름, 카메라 화면 등 핵심 흐름은 100% 네이티브 구현

섹션별 세부 요약

1. Turbo Native의 핵심 원리

  • Rails 앱을 네이티브 쉘로 감싸기
  • iOS: WKWebView + Swift/ObjC 네이티브 네비게이션
  • Android: WebView + Kotlin/Java 네이티브 네비게이션
  • HTML 뷰 100% 재사용 + 네이티브 UI 요소(탭바, 스와이프) 추가
  • Stimulus 컨트롤러로 카메라/GPS 등 기기 기능 연동

```swift

func webView(_ webView: WKWebView, didReceive message: WKScriptMessage) {

if message.name == "requestCamera" {

presentCamera()

}

}

```

2. 성능/보안/유지보수성 비교

| 항목 | Turbo Native | React Native | Flutter | PWA |

|---|---|---|---|---|

| 코드 재사용률 | 90% | 50% | 100% | 100% |

| 네이티브 느낌 | 85% | 95% | 90% | 50% |

| 오프라인 지원 | 제한적 | 우수 | 우수 | 우수 |

| 최적화 권장 | 내부 도구, CRUD 앱 | 게임, 영상 앱 | 복잡한 애니메이션 | - |

3. 실무 적용 팁

  • 네이티브 UI 요소 추가: Skeleton Loading, Native Navigation Stack 사용
  • Hybrid 구조 적용: 결제/카메라 등 핵심 흐름은 100% 네이티브로 구현

```kotlin

if (path == "/checkout") {

presentNativeCheckout()

} else {

visit(path)

}

```

  • 테스트 전략: Safari의 "Request Mobile Site" 사용, required device APIs 명시

결론

  • Turbo Native는 Rails 기반 앱 출시의 효율성을 극대화하지만, 성능과 오프라인 지원에서 tradeoff 발생
  • Hybrid 접근을 통해 크리티컬 UI/UX 요소는 네이티브 구현, 나머지는 웹 기반으로 개발
  • 앱 스토어 승인 시간 단축API 변경 없이 출시 가능, 내부 도구/CRUD 앱에 적합
  • 성능 테스트Cold Start 1.2s, Memory 30% 증가 등을 고려해야 함