투표 : react-native navigation(router) 컴포넌트

react-native에서 navigation을 어떤걸 쓸까하고 awsome-react-naitve를 보다가 다른 분들은 어떤걸 좋아하시는지 궁금해서 올려봅니다.

제 나름대로 별이 많은 것만 추려봤습니다.

0 투표자

사용해보신 것들이 있다면 어떤지 공유해주시면 감사하겠습니다.
저는 일단 react-community 저장소에 있는 react-navigation을 써볼까 합니다. 이제야 써보려고 하는거라 어떻다하고 말씀드릴 상황은 아니고요. 이를 선택한 이유는 react로 웹을 만들 때도 사용가능하다하니 같은 방법으로 navigation 처리를 하면 편할 것 같아서 입니다.

1개의 좋아요

react-navigation을 가장 많이 사용하고 계시네요.^^

그럼 한가지만 더 묻겠습니다.

react-navigation을 사용할 때 redux integration하고 사용하시나요? 아니면 navigation은 그냥 함수 호출로 관리하시나요?

  • navigation을 redux integration하여 관리
  • 그냥 navigation함수 호출로 관리

0 투표자

@originerd @g6ling @kyo504 @Hoon_Ko @Hyunbo_Sim @e2goon @Juwon_Jeong @mavriel @sanguneo @Sj_Kim

투표에 참여해주신 분들 모두 감사합니다.
바로 위에 있는 추가 질문에도 답변해주시면 감사하겠습니다. :slight_smile:

titanium을 하다가 rn을 사용하고 있는데 react-navigation은 native의 uiwinodw나 activity 안쓰고 다 흉내내기식으로 만든게 아쉽네요.

titanium을 하면서 얻었던 교훈중에 하나가 ui 컴포넌트 만큼음 흉내내서 그리는 것보다는 그냥 네이티브 ui 컴포넌트를 그대로 쓰는게 바람직하다라는 점이었어요.

그래서 이번에는 wix의 예제를 돌려보니 여기는 uiwindow와 activity를 쓰고 있는 것 같네요. @sanguneo @mavriel 님 react-native-navigation 을 쓰신다고 투표하셨는데 어떠한 장단점이 있었는지 알려주시면 감사하겠습니다.^^

react-navigation으로 만들어 왔었는데 그냥 wix의 react-native-navigation으로 바꾸는 것이 좋을까 고민되네요.

퍼포먼스 때문인가요? 어떤 점이 부족하게 느꼈는지 궁금합니다. 저는 지금 나름 잘 쓰고 있는 편이라서요.
제가 쓰는 유스케이스는 일반적이라서.

저는 react-navigation 쓸 때 늘 header에 버튼 넣을 때 좀 이상합니다. static으로 되어 있어서, 해당 스크린이 생성되지(instantiate)않으면 접근이 안되니깐 답답하더라구요. this.functionA() 이런걸 하고 싶을 때는 결국 props로 넘겨서 받아야 하는 복잡함(이상함)이 남죠. 저만 그런가요? ^^

@choipd 님은 둘다 써보셨군요.^^ 저는 이제야 RN으로 제품 만들기 시작한지 얼마 안되서 navigation은 react-navigation만을 써보고 있었어요.

react-navigation에서 이런 저런 어려움이 있었는데 제가 방법을 몰라 그랬던 것들이 대부분인 것 같고요. 그 외에 기억나는 문제는 다음과 같습니다.

  • drawerLock : 물론 PR이 있는데 오랜기간 merge가 되지 않아 많은 개발자들이 아우성(?)중이에요. 저는 이걸 포함하도록 fork해서 쓰고 있긴합니다. (관련 PR #793)
  • drawerNavigation 안에 StackNavigation을 둘 경우 StackNavigation의 screen들이 componentWillUnMount가 호출되지 않습니다. 전부 화면에 들고 있음. (관련이슈 #1056)

아직 둘다 써보지 않은 상태라 저는 둘의 비교를 할 수 있는 상황은 아닌것 같아요.^^. 다만 Native UI 컴포넌트를 그대로 활용한다는 점이 끌리는 거에요. Titanium 사용하면 겪은 경험으로는 따로 흉내내서 그린 것들은 퍼포먼스도 문제가 자주되고 버전 업데이트 할 때마다 오히려 더 애를 먹더라고요.

예를 들어 stack이 많이 쌓이는 경우를 생각해보면…

  • Ti에서 제가 경험하기로는 UINavigationController 기반인 Ti의 NavigationWindow 같은 경우 stack이 아무리 쌓여도 OS가 알아서 적당히(?) 리소스 관리를 잘 해줘서 별 걱정없이 쓰는게 좋았어요.
  • RN을 저보다 먼저 쓰고 있는 친구에게 듣기로는 오래된 android기기에서는 stack이 쌓이면 많이 느려진다고 하던데 한 activity안에서 다 들고 있다보니 더 그런게 아닌가 하는 생각이 들었어요.

혹시 두가지에 대해 나눠주실 경험있으면 알려주세요.^^ :slight_smile: :pray:

그렇다고 react-native-navigation이 다 좋아보인다는건 아니에요.
react-navigation의 경우 iOS drawer가 화면 뒤에 깔리는 방식밖에 없는것 같던데 저는 이거 너무 싫어요.ㅎㅎ
drawer는 화면 위에 깔려야 제맛이죠. :wink:

결국 wix의 react-native-navigation으로 갈아타고 있습니다. 완전히 바꾸게 되면 한번 정리해서 공유해보겠습니다.
wix의 react-native-navigation 이미 쓰고 계신분들은 어떤 것을 장점/단점으로 느끼셨는지 공유해주시면 감사하겠습니다.