Hotwire Native v1.2는 모바일 애플리케이션 개발의 유연성과 효율성을 높이는 여러 중요한 기능 개선을 포함합니다.
주요 개선 사항
- RouteDecisionHandler 도입:
- 이전에는 Hotwire Native 앱에서 내부 URL을 앱 화면으로, 외부 URL을 기기 브라우저로 라우팅하는 기본 동작을 사용자 정의하기 어려웠습니다.
- v1.2에서는 iOS에 RouteDecisionHandler 개념이 도입되어(안드로이드에는 이미 존재), 앱 내에서 URL 라우팅 방식을 유연하게 결정할 수 있게 되었습니다.
- 기본적으로 AppNavigationRouteDecisionHandler, SafariViewControllerRouteDecisionHandler(iOS), BrowserTabRouteDecisionHandler(Android), SystemNavigationRouteDecisionHandler 등이 등록되어 URL 라우팅을 제어하며, 개발자는 필요에 따라 자신만의 RouteDecisionHandler를 구현하여 등록할 수 있습니다.
- 서버 기반 히스토리컬 위치 URL 지원:
- Ruby on Rails 사용자를 위해
turbo-rails
gem이 제공하는recede_or_redirect_to
,refresh_or_redirect_to
,resume_or_redirect_to
와 같은 히스토리컬 위치 라우트가 Hotwire Native 앱에서 별도의 경로 설정 없이 내장 지원됩니다. - 이 기능들은 내비게이션 스택을 조작하고 모달 화면 자동 해제를 처리하는 등 앱의 흐름 제어를 용이하게 합니다.
- Ruby on Rails 사용자를 위해
- 하단 탭 내비게이션:
- Hotwire Native 개발자들이 가장 많이 요청했던 네이티브 하단 탭 내비게이션 기능이 공식적으로 추가되었습니다.
- iOS용 HotwireTabBarController와 Android용 HotwireBottomNavigationController가 도입되었으며, 새로운 데모 앱에서 설정 방법을 확인할 수 있습니다.
새로운 데모 앱
- Hotwire Native의 모든 기능을 효과적으로 보여주기 위해 iOS 및 Android용 새 데모 앱과 이를 활용할 수 있는 새로운 Rails 웹 앱이 개발되었습니다.
- GitHub 저장소를 클론하여 데모 앱을 빌드하고 실행해 볼 수 있으며, Joe Masilotti는 데모 앱 개선에 크게 기여했고 Hotwire Native for Rails Developers 책도 저술했습니다.
기타 개선 사항
- v1.2에는 두 플랫폼에 걸쳐 수십 가지의 다른 개선 사항과 버그 수정이 포함되어 있으며, 전체 변경 사항은 릴리스 노트를 통해 확인할 수 있습니다.