メインコンテンツへスキップ

React Nativeマンスリー #1

·6分で読めます
Tomislav Tenodi
Shoutem プロダクトマネージャー

Shoutemでは、幸運なことにReact Nativeの黎明期から携わることができました。私たちは初日からこの素晴らしいコミュニティの一員になりたいと決めていました。しかし、コミュニティが成長し改善していくペースに追いつくことがほぼ不可能であることにすぐに気づきました。そこで、React Nativeの主要なコントリビューターがそれぞれの取り組みや計画を簡潔に発表できる月例ミーティングを開催することにしました。

月例ミーティング

2017年6月14日に、月例ミーティングの第1回セッションを開催しました。React Native Monthlyのミッションはシンプルかつ明確です。それは、React Nativeコミュニティを改善することです。各チームの取り組みを発表することで、オフラインで行われるチーム間の連携が容易になります。

参加チーム

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

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

議事録

各チームの計画は、より広い層の関心事となる可能性があるため、ここReact Nativeブログで共有します。以下がその内容です。

Airbnb

  • ViewAccessibilityInfoネイティブモジュールにA11y (アクセシビリティ) APIを追加する予定です。
  • Androidのネイティブモジュールに、実行スレッドを指定できるAPIを追加することを検討します。
  • 初期化パフォーマンスを改善する可能性について調査を進めています。
  • 「unbundle」の上に、さらに洗練されたバンドル戦略をいくつか検討しています。

Callstack

  • E2EテストにDetoxを使用することで、リリースプロセスの改善を検討しています。プルリクエストは間もなく提出される予定です。
  • 取り組んできたBlobのプルリクエストがマージされ、後続のプルリクエストも準備中です。
  • Metro Bundlerと比較してHaulがどのように機能するかを確認するため、社内プロジェクトでの採用を増やしています。webpackチームと協力して、より良いマルチスレッドパフォーマンスに取り組んでいます。
  • 社内で、オープンソースプロジェクトを管理するためのより良いインフラを実装しました。今後数週間で、より多くのものを公開する予定です。
  • React Native Europeカンファレンスが近づいていますが、まだ特筆すべきことはありません。皆さん、ぜひご参加ください!
  • 代替案(特にネイティブナビゲーション)を調査するため、react-navigationから一時的に離れています。

Expo

  • Snackでnpmモジュールをインストールできるようにする作業を進めています。これはライブラリがドキュメントにサンプルを追加する際に役立つでしょう。
  • Krzysztof氏やSoftware Mansionの他のメンバーと協力して、AndroidでのJSCアップデートとジェスチャーハンドリングライブラリに取り組んでいます。
  • Adam Miskiewicz氏は、react-navigationに注力するようになっています。
  • Create React Native AppはドキュメントのGetting Startedガイドに掲載されました。Expoはライブラリ作者に対し、そのライブラリがCRNAで動作するかどうか、動作する場合はその設定方法を明確に説明することを奨励したいと考えています。

Facebook

  • React Nativeのパッケージャーは、独立したリポジトリのMetro Bundlerになりました。ロンドンのMetro Bundlerチームは、コミュニティのニーズに応え、React Native以外のユースケース向けにモジュール性を向上させ、Issueや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に達しました。

Microsoft

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

Shoutem

  • React Nativeコミュニティのツールを使ってShoutemアプリでの作業を容易にします。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」を構想しています。例として、React Native用のStorybookや、Ram氏の統合テストのアイデアなどが挙げられます。

次回のセッション

ミーティングは4週間ごとに開催されます。次回のセッションは2017年7月12日に予定されています。このミーティングは始まったばかりなので、これらの議事録がReact Nativeコミュニティにどのように役立つかを知りたいと思っています。次回のセッションで取り上げるべき内容や、ミーティングのアウトプットを改善する方法についてご提案があれば、Twitterでお気軽に私までご連絡ください。