이번 Hotwire Native Live 첫 번째 에피소드에서는 Joe Maselotti가 Hotwire Native를 활용하여 기존 Rails 웹 애플리케이션을 iOS 및 Android 네이티브 앱으로 변환하는 기초 과정을 시연하고 관련 질문에 답변합니다. 본 세션은 Rails 개발자가 웹 개발 경험을 활용하여 모바일 앱을 효율적으로 구축할 수 있는 방법을 제시합니다.
본 세션의 시연은 간단한 Rails 블로그 CRUD 앱을 기반으로 진행되었습니다. 우선 iOS 앱 구축 과정이 소개되었습니다. Xcode에서 새 프로젝트를 생성하고, Swift Package Manager를 통해 Hotwire Native iOS 라이브러리를 추가하는 기본적인 설정 단계를 거쳤습니다. SceneDelegate
에서 Navigator
를 설정하고 웹 애플리케이션의 시작 URL을 지정하여 웹 콘텐츠를 네이티브 앱 내에서 로드하는 방법을 보여주었습니다. 이어서 Android 앱 구축 과정이 설명되었습니다. Android Studio에서 Empty Views Activity 프로젝트를 생성한 후, Gradle 파일을 수정하여 Hotwire Core 및 Navigation Fragments 종속성을 추가했습니다. Android 에뮬레이터 환경에서 로컬호스트 접근 시 발생하는 네트워크 이슈(10.0.2.2 사용 필요)와 인터넷 권한 및 Cleartext Traffic 설정 등 안드로이드 개발 시 유의해야 할 디버깅 과정을 상세히 다루었습니다. 이러한 기본적인 설정만으로도 최소한의 코드 변경을 통해 웹 애플리케이션의 화면이 iOS 및 Android 네이티브 앱에서 성공적으로 표시되는 것을 확인했습니다. 특히, 서버 측 코드 변경(예: 블로그 글 내용 수정)이 앱 재배포 과정 없이 풀다운 리프레시 또는 화면 전환만으로 네이티브 앱에 즉시 반영되는 하이브리드 앱의 강력한 장점이 시연을 통해 확인되었습니다. 이어지는 Q&A 세션에서는 다양한 실무적인 주제에 대한 논의가 이루어졌습니다. App Store 검수 통과를 위해 네이티브 탭 바, 푸시 알림 등 최소 하나 이상의 네이티브 기능 추가가 필요하다는 점이 강조되었습니다. 네이티브 로그인 화면을 구현하고 Hotwire 화면과 자연스럽게 전환하며, 네이티브 요청으로 얻은 인증 쿠키를 웹뷰와 공유하는 기술적인 접근 방식에 대한 의사 코드가 제시되었습니다. 오프라인 기능 지원에 대한 질문에는 Hotwire Native가 오프라인 우선 앱에는 최적화되어 있지 않으며, 일부 제한적인 오프라인 기능(예: 특정 화면만 네이티브로 구현하여 캐시된 데이터 표시)을 위해서는 별도의 네이티브 코드 구현이 필요하다는 현실적인 답변이 제공되었습니다. 네이티브 알림, 버튼 등 공통적인 네이티브 기능을 쉽게 추가할 수 있도록 돕는 Bridge Components 라이브러리가 소개되었으며, 여러 앱에서 이러한 컴포넌트를 효율적으로 관리하기 위한 심볼릭 링크 활용 방안이 언급되었습니다. 또한, Hotwire Native 학습을 위한 추가 리소스로서 연사의 저서 “Hotwire Native for Rails Developers”와 learnhotwire.com 강좌가 소개되었습니다. 프레임워크의 향후 발전 방향으로는 설정 간소화, 오프라인 및 인증 기능 강화 등이 기대된다는 전망이 제시되었습니다. 현재 Turbo Frames의 Data Turbo Action Advance와 관련된 일부 알려진 이슈에 대한 논의도 있었습니다. View Controller의 배경색 변경이나 네이티브 타이틀 바 숨김 등 UI 커스터마이징 방법도 간단히 시연되었습니다. 마지막으로 결제 기능 구현의 경우, App Store 정책에 따라 네이티브 인앱 결제 코드가 필요하다는 점이 강조되었습니다.
결론적으로, 본 세션을 통해 Hotwire Native가 Rails 개발자가 기존 웹 개발 기술과 경험을 활용하여 iOS 및 Android 네이티브 앱을 빠르고 효율적으로 구축할 수 있는 매우 유용한 도구임을 다시 한번 확인할 수 있었습니다. 기본적인 웹 화면 통합부터 네이티브 기능 연동, 그리고 실제 개발 과정에서 마주칠 수 있는 다양한 이슈에 대한 해결책까지 폭넓게 다루어지며, Hotwire Native의 현재와 미래 활용 가능성에 대한 이해를 높이는 기회가 되었습니다.