고객이 가장 많이 사용하며 상대적으로 안정성을 요구하는 기능들은 Native로 개발하고, 보다 빠른 변화를 요구하며 확장성을 고려하는 기능들은 Hybrid로 개발한다
그리고 Hybrid가 React를 사용한다는 문구를 보고 하이브리드 앱과 웹뷰에 대해서 알아보기로 했다
Android 네이티브 개발 경험/React 개발경험 둘다 있다보니.. 이참에 정확히 어떤 건지 알아보려고 하는 중에 괜찮은 영상을 찾았다
Unity를 sdk로 Android에 얹는 프로젝트는 해봤지만 React를 왜 얹어야할까 했는데 확장성에서는 확실히 웹뷰로 관리하는게 유리해보인다.
https://youtu.be/hsh8BS7gyrY?si=vXnqRf3BQoYcBuSW
리액트 네이티브 + nextjs 영상이지만...
웹앱이 웹 컨텐츠를 표시하는데 사용할 수 있는 내장형 브라우저

웹뷰 내에서 실행되는 JS는 기본 시스템 api를 호출할 수 있다
이 통신방법을 브릿지라고 함
(...벌써부터 토큰관리를 어느 딴에서 관리하는게 맞을지 궁금해졌다)
웹뷰에게 메시지를 전달하기 위한 함수 작성(브릿지 이용)
웹뷰 여부를 판단해서 별도 핸들링 : 웹뷰면 메시지를 보내고/아니라면 router.push
중첩 네비게이션 : 다른 네비게이션에 중첩 렌더링, 상위 네비게이터에서 하위 네비게이터로 디스패치 가능
정보 저장 : react-native-async-storage (React Native)사용, 키-값 저장소로 비동기 동작
(키-값 저장소라고 하니 이거 android sharedpreference일까?)
HTTP 요청으로 구현(expo-notifications)
FCM은 써봤는데 이런 방법도 있구나 Android에서도 자주 쓰이는지 모르겠다
결국 일단 먼저 알아가야하는 핵심 요소는 bridge가 아닐까
+준비지옥의 추억이 되살아난다...

심지어 네이티브 기능을 충분히 활용하지 않으면 심사 거절 메일도 온다고 한다..
안드로이드 버전
https://www.youtube.com/watch?v=BBhtymzw5L4&list=PLGeojcNAoQP4aHRB2KrU6v2XJUg2hWhZT&index=7