本文へ移動

React Native Monthly #1

·読了時間6分
Tomislav Tenodi
Shoutemのプロダクトマネージャー

Shoutemでは、React Nativeの最初の頃から幸運にも携わってきました。私たちは最初からこの素晴らしいコミュニティの一員になりたかったのです。すぐに、コミュニティの成長と改善のペースについていくのがほぼ不可能であることに気づきました。そのため、主要なReact Nativeコントリビューターが自分の努力と計画を簡単に発表できる月次ミーティングを開催することにしました。

月次ミーティング

2017年6月14日に最初の月次ミーティングを開催しました。React Native Monthlyのミッションはシンプルで明確です:**React Nativeコミュニティを改善する**ことです。チームの取り組みを発表することで、オフラインで行われたチーム間の協調が容易になります。

チーム

最初のミーティングには、8つのチームが参加しました。

今後のセッションには、より多くのコアコントリビューターが参加してくれることを願っています!

ノート

チームの計画はより広いオーディエンスの関心事となる可能性があるため、それらをReact Nativeブログで共有します。以下にそれらを記載します。

Airbnb

  • ViewAccessibilityInfoネイティブモジュールにいくつかのA11y(アクセシビリティ)APIを追加する計画。
  • AndroidのネイティブモジュールにいくつかのAPIを追加して、実行するスレッドを指定できるように調査しています。
  • 初期化パフォーマンスの改善の可能性を調査しています。
  • "unbundle"の上に使用する、より高度なバンドリング戦略を調査しています。

Callstack

  • E2EテストにDetoxを使用することにより、リリースプロセスを改善することを検討しています。プルリクエストはすぐにマージされる予定です。
  • 取り組んできたBlobのプルリクエストがマージされました。それに続くプルリクエストが進行中です。
  • Haulの内部プロジェクトでの採用を増やし、Metro Bundlerと比較してパフォーマンスを評価します。Webpackチームとマルチスレッドパフォーマンスの改善に取り組んでいます。
  • 内部的には、オープンソースプロジェクトを管理するためのより良いインフラストラクチャを実装しました。今後数週間でより多くの成果を出す計画です。
  • React Native Europeカンファレンスが開催されます。まだ興味深いことはありませんが、皆さんを招待します!
  • 代替案(特にネイティブナビゲーション)を調査するために、しばらくの間react-navigationから離れていました。

Expo

  • Snackにnpmモジュールをインストールできるように取り組んでいます。ライブラリがドキュメントに例を追加するのに役立ちます。
  • Krzysztof氏とSoftware Mansionの他のメンバーと協力して、AndroidでのJSCアップデートとジェスチャー処理ライブラリに取り組んでいます。
  • Adam Miskiewicz氏は、react-navigationに焦点を移行しています。
  • Create React Native Appは、ドキュメントの入門ガイドに掲載されています。Expoは、ライブラリアーザーが自分のライブラリがCRNAで動作するかどうかを明確に説明し、動作する場合は設定方法を説明することを推奨しています。

Facebook

  • React Nativeのパッケージャーは、独立したリポジトリにあるMetro Bundlerになりました。ロンドンのMetro Bundlerチームは、コミュニティのニーズに対応し、React Nativeを超えた追加のユースケースのためにモジュール性を向上させ、問題とPRへの対応を迅速化することに取り組んでいます。
  • 今後数か月で、React NativeチームはプリミティブコンポーネントのAPIを洗練することに取り組む予定です。レイアウトの癖、アクセシビリティ、フロータイピングの改善が期待されます。
  • React Nativeチームは、WindowsやmacOSなどのサードパーティプラットフォームを完全にサポートするためにリファクタリングすることで、今年中にコアモジュール性を向上させる計画もあります。

GeekyAnts

  • チームは、.jsファイルで直接動作するUI/UXデザインアプリ(コードネーム:Builder)に取り組んでいます。現時点では、React Nativeのみをサポートしています。Adobe XDやSketchに似ています。
  • チームは、既存のReact Nativeアプリをエディターに読み込み、(デザイナーとして視覚的に)変更を行い、変更をJSファイルに直接保存できるように懸命に取り組んでいます。
  • デザイナーと開発者の間のギャップを埋め、同じリポジトリに集めることを目指しています。
  • また、NativeBaseは最近、GitHubスター数が5,000に達しました。

Microsoft

  • CodePushMobile Centerに統合されました。これは、配布、分析、その他のサービスとの統合されたエクスペリエンスを提供するための最初のステップです。こちらで発表をご覧ください。
  • VS Codeにはデバッグに関するバグがあり、現在修正に取り組んでおり、新しいビルドをリリースする予定です。
  • 統合テストのためにDetoxを調査し、クラッシュレポートと共に変数を取得するためにJSCコンテキストを検討しています。

Shoutem

  • Shoutemアプリ開発をReact Nativeコミュニティのツールでより容易にする取り組みについて。 Shoutemで作成されたアプリに対して、すべてのReact Nativeコマンドを使用できるようになります。
  • React Nativeのプロファイリングツールの調査。設定に多くの問題があり、その過程で発見した知見の一部を記述します。
  • Shoutemは、React Nativeと既存のネイティブアプリの統合を容易にする取り組みを進めています。社内で開発した概念についてドキュメント化し、コミュニティからのフィードバックを得る予定です。

Wix

  • Wixアプリの重要な部分を「手動QAゼロ」に移行するために、Detoxの導入を進めています。その結果、Detoxは数十人の開発者によって本番環境で幅広く使用されており、急速に成熟しています。
  • Metro Bundlerに、ビルド時の任意のファイル拡張子のオーバーライドをサポートする機能を追加する取り組み。単に"ios"や"android"だけでなく、"e2e"や"detox"のようなカスタム拡張子をサポートします。E2Eモックでの利用を計画しています。react-native-repackagerというライブラリが既に存在し、現在PRに取り組んでいます。
  • パフォーマンステストの自動化の調査。これはDetoxInstrumentsという新しいリポジトリです。オープンソースで開発されているので、ご覧ください。
  • KPNの貢献者と協力して、Android向けのDetoxと実機対応をサポートしています。
  • シミュレータ/デバイスの自動化を必要とする他のツールの構築を可能にする「Detox as a platform」について検討中。例としては、React Native用のStorybookや、Ramによる統合テストに関するアイデアなどがあります。

次回のセッション

会議は4週間ごとに開催されます。次回のセッションは2017年7月12日に予定されています。今回が最初の会議であるため、これらのノートがReact Nativeコミュニティにどのように役立つのかを知りたいと考えています。今後のセッションで取り上げるべきトピックや、会議の成果の改善方法についてご提案がありましたら、Twitterで気軽にご連絡ください。