React Native Monthly #2
React Native 월간 미팅이 계속됩니다! 이번 세션에서는 Chain React, the React Native Conference를 주최한 Infinite Red가 함께했습니다. 대부분의 참가자들이 Chain React에서 발표를 준비 중이었기 때문에, 미팅을 일주일 뒤로 미뤘습니다. 컨퍼런스의 발표 내용은 온라인에 업로드되었으니, 꼭 확인해 보세요. 이제 각 팀이 어떤 일을 하고 있는지 살펴보겠습니다.
참여 팀
두 번째 미팅에는 총 9개 팀이 참여했다:
노트
각 팀의 노트는 다음과 같다:
Airbnb
- React Native 관련 프로젝트를 확인하려면 Airbnb 저장소를 방문한다.
콜스택 업데이트
-
Mike Grabowski는 여전히 React Native의 월별 릴리스를 관리하고 있으며, 몇 가지 베타 버전도 배포했다. 특히 Windows 사용자를 위한 v0.43.5 빌드를 npm에 출시하기 위해 노력 중이다.
-
Haul 프로젝트는 느리지만 꾸준히 진행 중이다. HMR(Hot Module Replacement)을 추가하는 풀 리퀘스트가 있으며, 다른 개선 사항도 적용되었다. 최근 몇몇 업계 리더들이 이를 도입했다. 해당 분야에서 풀타임 유료 작업을 시작할 계획도 있다.
-
Jest 팀의 Michał Pierzchała가 이번 달에 콜스택에 합류했다. 그는 Haul 유지보수를 도울 예정이며, Metro Bundler와 Jest 작업에도 참여할 가능성이 있다.
-
Satyajit Sahoo가 이제 우리와 함께하게 되었다!
-
OSS 부서에서 다양한 멋진 작업이 진행 중이다. 특히 Material Palette API를 React Native로 가져오는 작업을 진행하고 있다. 네이티브 iOS 컴포넌트와 1:1로 동일한 느낌을 제공하는 네이티브 iOS 키트를 마침내 출시할 계획이다.
Expo 최신 소식
- 최근 React Native 생태계 내 라이브러리의 발견과 평가를 돕기 위해 Native Directory를 출시했다. 문제는 많은 라이브러리가 존재하지만 테스트가 어렵고, 수동으로 휴리스틱을 적용해야 하며, 어떤 라이브러리가 가장 좋은지 즉시 알기 어렵다는 것이다. 또한 CRNA/Expo와 호환되는지 여부를 파악하기도 어렵다. Native Directory는 이러한 문제를 해결하려고 한다. 여기에서 라이브러리 목록을 확인할 수 있다. 이는 첫 번째 시도이며, Expo 팀뿐만 아니라 커뮤니티가 주도적으로 운영하길 바란다. 이 프로젝트가 가치 있다고 생각한다면 기여해 주길 바란다!
- Snack에서 Expo SDK 19와 함께 npm 패키지를 설치할 수 있는 초기 지원을 추가했다. 문제가 발생하면 알려주길 바란다. 아직 몇 가지 버그를 수정 중이다. Native Directory와 함께 JS 의존성만 있거나 Expo SDK에 포함된 의존성을 가진 라이브러리를 쉽게 테스트할 수 있어야 한다. 다음 예제를 시도해 보라:
- Expo SDK19를 출시하며 다양한 개선 사항을 적용했고, 업데이트된 Android JSC를 사용하고 있다.
- Alexander Kotliarskyi와 함께 앱의 사용자 경험을 개선하는 방법에 대한 팁 목록을 포함한 가이드를 작성 중이다. 이 목록에 추가하거나 작성에 도움을 주길 바란다!
- 오디오/비디오, 카메라, 제스처(Software Mansion의
react-native-gesture-handler
와 협력), GL 카메라 통합 작업을 계속 진행 중이며, SDK20(8월)에서 처음으로 이 기능들을 제공할 계획이다. 또한 이때까지 다른 기능들도 크게 개선할 예정이다. Expo 클라이언트에 백그라운드 작업(위치 정보, 오디오, 알림 처리 등)을 위한 인프라 구축을 시작했다. - Adam Miskiewicz가 react-navigation에서 UINavigationController의 트랜지션을 모방하는 데 큰 진전을 이루었다. 그의 트윗에서 초기 버전을 확인할 수 있다. 곧 출시될 예정이다. 또한 그가 업스트림한
MaskedViewIOS
도 확인해 보라.MaskedView
를 Android에 구현할 능력과 의지가 있다면 매우 환영한다!
Facebook
- Facebook은 내부적으로 React Native 안에 네이티브 ComponentKit과 Litho 컴포넌트를 임베드할 수 있는 방법을 연구하고 있다.
- React Native에 기여하는 것은 매우 환영한다! 기여 방법이 궁금하다면, "How to Contribute" 가이드를 참고해 개발 프로세스와 첫 풀 리퀘스트를 보내는 단계를 확인할 수 있다. 코드 작성 없이도 기여할 수 있는 방법이 있다. 이슈를 분류하거나 문서를 업데이트하는 것도 그 예시다.
- 현재 React Native에는 635개의 오픈 이슈와 249개의 오픈 풀 리퀘스트가 있다. 이는 관리자들에게 부담이 되며, 내부적으로 문제가 해결되더라도 관련 작업이 업데이트되기 어려운 상황이다.
- 커뮤니티를 만족시키면서 이 문제를 해결할 최선의 방법을 아직 확정하지 못했다. 몇 가지 옵션(모든 것이 아님!)으로는 오래된 이슈를 닫기, 더 많은 사람에게 이슈 관리 권한 부여하기, 이슈 템플릿을 따르지 않는 이슈를 자동으로 닫기 등이 있다. 관리자들이 기대하는 바를 명확히 하고 예상치 못한 상황을 피하기 위해 "What to Expect from Maintainers" 가이드를 작성했다. 관리자와 이슈 및 풀 리퀘스트를 열어주는 사람들이 모두 만족할 수 있는 방법에 대한 아이디어가 있다면 알려주기 바란다!
GeekyAnts
- Chain React에서 React Native 파일과 호환되는 디자이너 툴을 시연했다. 많은 참가자들이 대기자 명단에 등록했다.
- Google Flutter, Kotlin Native, Apache Weex와 같은 크로스 플랫폼 솔루션도 살펴보고 있다. 이들의 아키텍처 차이를 이해하고, React Native의 전반적인 성능을 개선할 수 있는 방법을 모색 중이다.
- 대부분의 앱에서 react-navigation으로 전환했고, 이로 인해 전반적인 성능이 향상되었다.
- 또한 NativeBase Market을 발표했다. 이는 React Native 컴포넌트와 앱을 위한 마켓플레이스로, 개발자들이 직접 참여하고 활용할 수 있는 플랫폼이다.
Infinite Red
- Reactotron을 소개한다. 소개 영상을 확인해 보자. 곧 더 많은 기능을 추가할 예정이다!
- Chain React 컨퍼런스를 주최했다. 모두가 참여해 주어서 정말 멋졌다! 영상이 이제 온라인에 공개됐다!
마이크로소프트
- CodePush가 이제 Mobile Center에 통합되었다. 기존 사용자는 작업 흐름에 변화가 없다.
- 일부 사용자가 중복 앱 문제를 보고했다. Mobile Center에 이미 앱이 존재하는 경우다. 이 문제를 해결 중이며, 두 개의 앱이 있다면 알려주면 병합해 줄 수 있다.
- Mobile Center는 이제 CodePush용 푸시 알림을 지원한다. 또한 알림과 CodePush를 조합해 A/B 테스트를 수행하는 방법을 보여주었다. 이는 ReactNative 아키텍처에서만 가능한 독특한 기능이다.
- VS Code에는 ReactNative 디버깅 문제가 알려져 있다. 며칠 내로 출시될 다음 확장 버전에서 이 문제가 해결될 예정이다.
- 마이크로소프트 내부에서도 여러 팀이 React Native를 개발하고 있다. 다음 회의에서는 모든 그룹의 참여를 더 잘 반영할 수 있도록 노력할 것이다.
Shoutem
- Shoutem에서 React Native 개발을 더 쉽게 만드는 과정을 완료했다. Shoutem에서 앱을 개발할 때 모든 표준
react-native
커맨드를 사용할 수 있다. - React Native에서 프로파일링을 최적으로 수행하는 방법을 찾기 위해 많은 노력을 기울였다. 문서의 상당 부분이 오래되어, 공식 문서에 풀 리퀘스트를 보내거나 최소한 블로그 포스트에 우리의 결론을 작성할 계획이다.
- 네비게이션 솔루션을 react-navigation으로 전환했으므로, 곧 피드백을 얻을 수 있을 것이다.
- 툴킷에 새로운 HTML 컴포넌트를 출시했다. 이 컴포넌트는 원시 HTML을 React Native 컴포넌트 트리로 변환한다.
Wix
- Metro Bundler에 react-native-repackager 기능을 추가하는 풀 리퀘스트 작업을 시작했다. 프로덕션에서 사용하는 RN 44를 지원하도록 react-native-repackager를 업데이트했다. 이를 detox의 모킹 인프라에 활용하고 있다.
- 지난 3주 동안 Wix 앱을 detox 테스트로 커버하고 있다. 40명 이상의 엔지니어가 참여하는 대규모 앱에서 수동 QA를 줄이는 방법에 대해 많은 것을 배울 수 있었다. 그 과정에서 detox의 여러 문제를 해결했고, 새로운 버전을 출시했다. "제로 불안정성 정책"을 충실히 지키고 있으며, 현재까지 테스트가 지속적으로 통과되고 있다는 점을 기쁘게 알린다.
- Detox for Android는 순조롭게 진행 중이다. 커뮤니티로부터 큰 도움을 받고 있다. 약 2주 내로 초기 버전을 출시할 예정이다.
- 성능 테스트 도구인 DetoxInstruments는 원래 계획보다 더 큰 규모로 발전하고 있다. 이제 이를 detox와 긴밀하게 결합되지 않은 독립형 도구로 전환할 계획이다. 이를 통해 iOS 앱의 성능을 일반적으로 조사할 수 있게 될 것이다. 또한 detox와 통합해 성능 지표에 대한 자동화 테스트를 실행할 수 있을 것이다.
다음 세션
다음 세션은 2017년 8월 16일로 예정되어 있다. 이번이 두 번째 모임이기 때문에, 이 회의록이 React Native 커뮤니티에 어떻게 도움이 되는지 알고 싶다. 회의 결과물을 개선할 방법에 대한 제안이 있다면 트위터를 통해 언제든지 연락해 주시기 바란다.