Rails World 2024 개최를 앞두고, Hotwire 생태계에 중요한 변화를 가져올 하이브리드 모바일 앱 개발 프레임워크인 Hotwire Native가 공식 발표되었습니다. 이 발표는 기존 Hotwire 라이브러리(Turbo, Stimulus, Strada) 간의 혼란스러운 관계 및 Turbo Native 앱 개발 시 명확한 문서화와 마케팅 부족 문제에 대한 사용자 피드백을 적극적으로 반영한 결과입니다. 특히, Turbo Native 앱에 고품질 네이티브 기능을 추가할 수 있도록 작년에 오픈 소스화된 Strada가 Turbo Native와 혼란스럽게 엮여 있어 개발자들이 통합에 어려움을 겪는다는 의견이 많았습니다. 이러한 배경 속에서, Hotwire Native는 라이브러리 간의 관계를 명확히 하고 개발자들에게 즉시 사용 가능한 새로운 기능 레이어를 더 쉽게 제공하기 위해 탄생했습니다.
Hotwire Native는 기존 Turbo Native 및 Strada 라이브러리를 iOS와 Android를 위한 단일 통합 프레임워크로 재편한 결과물입니다. 이로써 Hotwire 라이브러리 스택은 이제 Turbo, Stimulus, 그리고 Native로 간결하게 구성됩니다. Hotwire Native 앱은 소규모 팀이 개발을 진행할 때 고유한 ‘웹 우선(web-first)’ 접근 방식을 채택할 수 있도록 지원합니다. 이는 기존 웹 앱의 화면을 최대한 활용하고, 필요에 따라 Bridge Components(이전 Strada 컴포넌트)를 사용하여 웹 화면에 고품질 네이티브 기능을 추가하며, 앱의 가장 중요한 영역에는 완전한 네이티브 화면을 구축할 수 있게 합니다. 특히, Hotwire Native의 웹 우선 접근 방식은 네이티브 기능으로의 전환이 ‘전부 아니면 전무’ 방식이 아님을 의미합니다. 개발자는 준비가 되었을 때 특정 화면이나 컴포넌트만을 Swift 또는 Kotlin으로 네이티브하게 작성할 수 있어, 진정한 의미의 점진적 개선(progressive enhancement)을 실현합니다.
단순한 라이브러리 통합을 넘어, Hotwire Native는 여러 핵심 영역에서 상당한 개선을 이루었습니다. 새로운 iOS 또는 Android 앱을 시작하는 데 필요한 코드가 몇 줄로 대폭 줄어들어 초기 설정을 간소화했습니다. 또한, 네이티브 앱을 쉽게 사용자 정의할 수 있는 완전히 새로운 구성 옵션 세트가 추가되었습니다. 복잡한 내비게이션 스택 상황을 처리하는 새로운 내비게이션 레이어는 사용자 경험을 향상시켰으며, iOS와 Android 전반에 걸쳐 일관된 포괄적인 Path Configuration 규칙이 도입되었습니다. 특히, Bridge Components는 추가적인 통합 노력 없이 즉시 사용 가능하며, 웹 화면을 네이티브 화면으로 교체하고 URL을 통해 라우팅하는 과정이 그 어느 때보다 쉬워졌습니다. 이러한 광범위한 개선은 native.hotwired.dev에서 제공되는 상세한 문서와 예제를 통해 확인할 수 있습니다. 이 모든 작업은 Joe Masilotti의 엄청난 도움 없이는 불가능했습니다. 그는 Turbo Native 앱 개발의 오랜 지지자이자 교육자였으며, 그의 강력한 TurboNavigator 라이브러리가 새로운 Hotwire Native iOS 라이브러리의 내비게이션 기반이 되어 Android와의 내비게이션 동등성을 확보하는 데 결정적인 역할을 했습니다.
새로운 Hotwire Native 라이브러리의 출시로 인해, 기존의 Turbo Native 및 Strada 라이브러리(iOS 및 Android용)는 가까운 시일 내에 사용 중단될 예정입니다. 이들 기존 라이브러리의 코드는 Hotwire Native의 새로운 기반으로 활용되며, 향후 모든 개발은 Hotwire Native에 집중될 것입니다. 개발자들은 준비가 되는 대로 새로운 라이브러리로 전환하여 모든 새로운 기본 제공 기능을 활용할 수 있습니다.
결론적으로, Hotwire Native는 기존 웹 자산을 효과적으로 활용하면서도 고품질의 네이티브 경험을 점진적으로 구축하고자 하는 개발자들에게 최적화된 강력한 솔루션입니다. Turbo Native와 Strada의 장점을 통합하고 주요 기능을 개선함으로써, 하이브리드 앱 개발의 복잡성을 줄이고 효율성을 극대화합니다. 개발자들은 native.hotwired.dev에서 모든 관련 자료를 확인하고 새로운 앱을 구축하며, Hotwire 팀은 사용자들의 피드백과 기여를 적극적으로 기대하고 있습니다.