Skip to main content

React Native Monthly #1

· 11 min read
Tomislav Tenodi
Shoutem 제품 관리자

Shoutem에서는 React Native가 처음 등장했을 때부터 함께 작업할 기회를 얻었다. 우리는 이 놀라운 커뮤니티의 일원이 되기로 결심했다. 하지만 곧 커뮤니티가 성장하고 개선되는 속도를 따라잡는 것이 거의 불가능하다는 것을 깨달았다. 그래서 우리는 주요 React Native 기여자들이 자신들의 노력과 계획을 간단히 발표할 수 있는 월간 모임을 조직하기로 결정했다.

월간 회의

2017년 6월 14일, 첫 번째 월간 회의를 진행했다. React Native 월간 회의의 목표는 간단하고 명확하다: React Native 커뮤니티를 개선하는 것. 각 팀의 노력을 공유하면 오프라인에서 이루어지는 팀 간 협업이 더 원활해진다.

팀 소개

첫 번째 모임에는 8개 팀이 참여했다:

앞으로 더 많은 핵심 기여자들이 다음 세션에 참여하기를 기대한다!

공유 자료

팀의 계획이 더 많은 독자들에게 유용할 수 있다고 판단해, React Native 블로그를 통해 공유한다. 아래 내용을 확인해 보자:

Airbnb

  • ViewAccessibilityInfo 네이티브 모듈에 접근성(A11y) API를 추가할 계획이다.
  • 안드로이드 네이티브 모듈에 스레드를 지정해 실행할 수 있는 API를 추가하는 방안을 검토 중이다.
  • 초기화 성능 향상을 위한 가능성을 연구 중이다.
  • "unbundle" 위에 적용할 더 정교한 번들링 전략을 탐구 중이다.

콜스택

  • Detox를 E2E 테스트에 활용해 릴리스 프로세스를 개선하는 방안을 검토 중이다. 곧 풀 리퀘스트가 적용될 예정이다.
  • 작업 중이던 Blob 풀 리퀘스트가 머지되었고, 관련 후속 풀 리퀘스트가 곧 올라올 예정이다.
  • Haul을 내부 프로젝트에 점차 도입하며 Metro Bundler와의 성능 비교를 진행 중이다. 웹팩 팀과 협력해 멀티스레드 성능을 개선하는 작업도 진행 중이다.
  • 내부적으로 오픈소스 프로젝트를 관리하기 위한 더 나은 인프라를 구축했다. 앞으로 몇 주 안에 더 많은 내용을 공개할 계획이다.
  • React Native Europe 컨퍼런스가 다가오고 있지만, 아직 특별한 소식은 없다. 모두 초대한다!
  • 잠시 react-navigation에서 한 발 물러나 다른 네비게이션 솔루션(특히 네이티브 네비게이션)을 조사 중이다.

Expo

  • Snack에서 npm 모듈을 설치할 수 있도록 작업 중이다. 이 기능은 라이브러리 문서에 예제를 추가하는 데 유용할 것이다.
  • KrzysztofSoftware Mansion의 다른 사람들과 함께 Android에서 JSC 업데이트와 제스처 처리 라이브러리를 개발 중이다.
  • Adam Miskiewiczreact-navigation에 집중하기 위해 전환 중이다.
  • Create React Native App이 문서의 시작하기 가이드에 포함되었다. Expo는 라이브러리 작성자들이 자신들의 라이브러리가 CRNA와 호환되는지 명확히 설명하고, 호환된다면 설정 방법을 설명하도록 권장한다.

Facebook

  • React Native의 패키저가 이제 Metro Bundler로 독립된 리포지토리에서 관리된다. 런던에 위치한 Metro Bundler 팀은 커뮤니티의 요구를 해결하고, React Native 외의 다양한 사용 사례를 위한 모듈성을 개선하며, 이슈와 PR에 대한 응답성을 높이기 위해 노력하고 있다.
  • 앞으로 몇 달 동안 React Native 팀은 기본 컴포넌트의 API를 개선할 예정이다. 레이아웃 문제, 접근성, Flow 타이핑 등에서 개선이 이뤄질 것이다.
  • React Native 팀은 올해 코어 모듈성을 개선할 계획이다. Windows와 macOS와 같은 타사 플랫폼을 완벽히 지원하기 위해 리팩토링 작업을 진행할 것이다.

GeekyAnts

  • 팀은 .js 파일과 직접 연동되는 UI/UX 디자인 앱(코드명: Builder)을 개발 중이다. 현재는 React Native만 지원하며, Adobe XD나 Sketch와 유사한 기능을 제공한다.
  • 팀은 기존 React Native 앱을 에디터에서 불러와 디자이너가 시각적으로 수정한 뒤, 변경 사항을 바로 JS 파일에 저장할 수 있도록 열심히 작업 중이다.
  • 디자이너와 개발자 간의 간극을 줄이고, 두 팀이 동일한 레포지토리에서 협업할 수 있도록 노력하고 있다.
  • 또한 NativeBase가 최근 GitHub에서 5,000 스타를 달성했다.

마이크로소프트

  • CodePush가 이제 Mobile Center에 통합되었다. 이는 배포, 분석 및 기타 서비스와 더욱 통합된 환경을 제공하기 위한 첫 번째 단계다. 자세한 내용은 여기에서 확인할 수 있다.
  • VS Code에는 디버깅 관련 버그가 있으며, 현재 이를 수정 중이며 새로운 빌드를 출시할 예정이다.
  • 통합 테스트를 위해 Detox를 검토 중이며, JSC Context를 통해 크래시 리포트와 함께 변수를 확인하는 방법을 연구하고 있다.

Shoutem

  • 리액트 네이티브 커뮤니티의 도구를 활용해 Shoutem 앱 작업을 더 쉽게 만든다. Shoutem에서 생성한 앱을 실행하기 위해 모든 리액트 네이티브 커맨드를 사용할 수 있다.

  • 리액트 네이티브 프로파일링 도구를 연구 중이다. 설정 과정에서 많은 문제를 겪었고, 이를 해결하며 얻은 인사이트를 공유할 예정이다.

  • Shoutem은 기존 네이티브 앱과 리액트 네이티브를 더 쉽게 통합하는 방법을 개발 중이다. 회사 내부에서 구축한 개념을 문서화해 커뮤니티의 피드백을 받을 계획이다.

Wix

  • 내부적으로 Detox를 도입해 Wix 앱의 상당 부분을 "수동 QA 없이" 운영하는 방향으로 전환 중이다. 그 결과, 수십 명의 개발자가 프로덕션 환경에서 Detox를 활발히 사용하며 빠르게 성숙해지고 있다.
  • Metro Bundler에 빌드 중 파일 확장자를 오버라이드할 수 있는 기능을 추가 중이다. 기존의 "ios"와 "android"뿐만 아니라 "e2e"나 "detox"와 같은 커스텀 확장자도 지원할 예정이다. 이를 E2E 모킹에 활용할 계획이다. 이미 react-native-repackager라는 라이브러리가 있으며, 현재 PR 작업을 진행 중이다.
  • 성능 테스트 자동화를 연구 중이다. DetoxInstruments라는 새로운 저장소를 오픈소스로 개발 중이다. 관심 있다면 확인해 볼 수 있다.
  • KPN의 기여자와 함께 Detox의 Android 지원 및 실제 기기에서의 동작을 개선 중이다.
  • "Detox를 플랫폼으로 활용"해 시뮬레이터/기기를 자동화해야 하는 다른 도구를 구축할 수 있는 방안을 고민 중이다. 예를 들어 React Native용 Storybook이나 Ram의 통합 테스트 아이디어가 있다.

다음 모임

모임은 매 4주마다 진행된다. 다음 모임은 2017년 7월 12일로 예정되어 있다. 이번 모임을 시작으로, 여러분이 이 모임 기록이 React Native 커뮤니티에 어떻게 도움이 되는지 알고 싶다. 앞으로 다룰 주제나 모임 결과물을 개선할 방법에 대한 제안이 있다면 트위터를 통해 언제든지 연락해 주길 바란다.