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

React Nativeマンスリー #2

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

React Nativeの月例会議は引き続き開催されています!今回のセッションでは、React NativeカンファレンスであるChain Reactの立役者であるInfinite Redの素晴らしい頭脳の持ち主たちが参加してくれました。参加者のほとんどがChain Reactで講演をしていたため、会議を1週間遅らせました。カンファレンスでの講演はオンラインで公開されているので、ぜひご覧ください。それでは、各チームの活動を見ていきましょう。

チーム

第2回となるこのミーティングには、9つのチームが参加しました。

ノート

以下は各チームからの議事録です。

Airbnb

Callstack

  • Mike Grabowskiは、いつものようにReact Nativeの月次リリースを管理しており、いくつかのベータ版もリリースされました。特に、Windowsユーザーのブロックを解除するv0.43.5ビルドをnpmに公開することに取り組んでいます!
  • Haulでは、ゆっくりではありますが着実な作業が進んでいます。HMRを追加するプルリクエストがあり、その他の改善も実施されました。最近、いくつかの業界リーダーに採用されました。この分野でのフルタイムの有給作業を開始する計画も検討しています。
  • JestチームのMichał Pierzchałaが今月、Callstackに参加してくれました。彼はHaulのメンテナンスを手伝い、おそらくMetro BundlerJestにも取り組む予定です。
  • Satyajit Sahooが私たちのチームに加わりました!イェイ!
  • 私たちのOSS部門から、たくさんのクールなものが登場予定です。特に、Material Palette APIをReact Nativeに導入する作業に取り組んでいます。ネイティブコンポーネントと1:1のルック&フィールを提供することを目的とした、ネイティブiOSキットを最終的にリリースする予定です。

Expo

  • React Nativeエコシステムにおけるライブラリの発見と評価を支援するために、最近Native Directoryを立ち上げました。問題点:多くのライブラリがあり、テストが難しく、手動でヒューリスティックを適用する必要があり、どれが最適なのかがすぐにわかりません。また、CRNA/Expoと互換性があるかどうかも判断が難しいです。そこで、Native Directoryはこれらの問題を解決しようとします。ぜひチェックして、あなたのライブラリを追加してください。ライブラリのリストはこちらにあります。これは私たちの最初の試みであり、Expoのメンバーだけでなく、コミュニティ全体で所有・運営されることを望んでいます。もしこれが価値があり、改善したいと思うのであれば、ぜひご協力ください!
  • Expo SDK 19のSnackにnpmパッケージをインストールするための初期サポートが追加されました。問題が発生した場合はお知らせください。現在もいくつかのバグに取り組んでいます。Native Directoryと合わせて、これによりJS依存関係のみ、またはExpo SDKに含まれる依存関係を持つライブラリのテストが容易になるはずです。試してみてください。
  • 全体的に多くの改善が施されたExpo SDK19をリリースしました。現在は更新されたAndroid JSCを使用しています。
  • Alexander Kotliarskyiとともに、アプリのユーザーエクスペリエンスを向上させるためのヒントリストをドキュメントのガイドとして作成しています。ぜひ参加してリストに追加したり、執筆を手伝ったりしてください!
  • 引き続き取り組んでいること:オーディオ/ビデオ、カメラ、ジェスチャー(Software Mansionとの協力、react-native-gesture-handler)、GLカメラ統合。これらのいくつかをSDK20(8月)で初めて導入し、他の機能もそれまでに大幅に改善することを目指しています。バックグラウンド作業(位置情報、オーディオ、通知処理など)のためのインフラストラクチャをExpoクライアントに構築し始めたばかりです。
  • Adam Miskiewiczは、UINavigationControllerのトランジションをreact-navigationで模倣することに素晴らしい進展を見せました。初期バージョンは彼のツイートで確認できます。まもなくリリースされます。彼がアップストリームしたMaskedViewIOSもチェックしてください。もしあなたがAndroid用のMaskedViewを実装するスキルと意欲があれば、素晴らしいことです!

Facebook

  • Facebookは内部的に、React Native内にネイティブのComponentKitLithoコンポーネントを埋め込むことを検討しています。
  • React Nativeへの貢献は大歓迎です!どのように貢献できるか疑問に思っている場合は、「貢献方法」ガイドで開発プロセスが説明されており、最初のプルリクエストを送信する手順が示されています。コードを書く必要のない貢献方法もあります。例えば、問題をトリアージしたり、ドキュメントを更新したりすることです。
    • 執筆時点では、React Nativeには635未解決の問題249未解決のプルリクエストがあります。これは私たちのメンテナーにとって非常に多いため、内部で修正された場合でも、関連するタスクが更新されていることを確認するのが困難です。
    • コミュニティを満足させつつ、これをどう処理するのが最善か、私たちにはまだ確信がありません。いくつかの(ただし全てではありません!)選択肢としては、古い問題をクローズする、より多くの人に問題管理の権限を与える、問題テンプレートに従わない問題を自動的にクローズする、などがあります。私たちは、期待を設定し、サプライズを避けるために「メンテナーに期待すること」ガイドを作成しました。メンテナーにとってこの経験をより良くし、問題を提起する人やプルリクエストを作成する人が、意見を聞かれ、評価されていると感じられるようにする方法についてアイデアがあれば、ぜひお知らせください!

GeekyAnts

  • Chain ReactでReact Nativeファイルに対応したデザイナーツールのデモを行いました。多くの参加者がウェイティングリストに登録してくれました。
  • また、React Native全体のパフォーマンスを向上させるために、アーキテクチャの違いやそこから学べることを理解するため、Google Flutter(主要な比較が控えています)、Kotlin NativeApache Weexなどの他のクロスプラットフォームソリューションも検討しています。
  • ほとんどのアプリでreact-navigationに切り替え、全体的なパフォーマンスが向上しました。
  • また、NativeBase Marketを発表しました。これはReact Nativeのコンポーネントとアプリのマーケットプレイスです(開発者のための、開発者による)。

Infinite Red

Microsoft

  • CodePushMobile Centerに統合されました。既存のユーザーのワークフローに変更はありません。
    • 一部の方から、アプリが重複しているという問題が報告されています。彼らはすでにMobile Centerにアプリを持っていました。これらの問題を解決するために取り組んでいますが、もし2つのアプリがある場合はお知らせください。こちらでマージすることができます。
  • Mobile Centerは現在、CodePushのプッシュ通知をサポートしています。また、通知とCodePushを組み合わせてアプリのA/Bテストを行う方法も紹介しました。これはReactNativeアーキテクチャに特有のものです。
  • VS CodeにはReactNativeに関する既知のデバッグの問題があります。数日中にリリースされる拡張機能の次のバージョンで、この問題が修正される予定です。
  • Microsoft内にはReact Nativeに取り組んでいる他の多くのチームもあるため、次回のミーティングではすべてのグループからより良い代表者を得られるよう努めます。

Shoutem

  • ShoutemでのReact Native開発を容易にするプロセスを完了しました。Shoutemでアプリを開発する際には、すべての標準的なreact-nativeコマンドを使用できます。
  • React Nativeでのプロファイリングに最適なアプローチを見つけるために、多くの作業を行いました。ドキュメントの大部分は古くなっており、公式ドキュメントにプルリクエストを作成するか、少なくともブログ投稿で私たちの結論を書き出すために最善を尽くします。
  • ナビゲーションソリューションをreact-navigationに切り替えているので、近々フィードバックがあるかもしれません。
  • ツールキットに新しいHTMLコンポーネントをリリースしました。これは生のHTMLをReact Nativeコンポーネントツリーに変換するものです。

Wix

  • react-native-repackagerの機能を備えたMetro Bundlerへのプルリクエストの作業を開始しました。react-native-repackagerを更新して、RN 44(本番環境で使用しています)をサポートするようにしました。これは、detox用のモックインフラストラクチャに使用しています。
  • Wixアプリでは、過去3週間Detoxテストを実施してきました。この規模(40人以上のエンジニア)のアプリで手動QAを減らす方法について、素晴らしい学習経験となりました。その結果、Detoxに関するいくつかの問題を解決し、新しいバージョンがリリースされたばかりです。これまでのところ、「ゼロ不安定性ポリシー」を順守しており、テストは一貫して合格していることを報告できて嬉しく思います。
  • Detox for Androidは順調に進んでいます。コミュニティから大きな助けを得ています。約2週間で初期バージョンが期待されます。
  • 私たちのパフォーマンステストツールであるDetoxInstrumentsは、当初の意図よりも少し大きくなっています。現在、Detoxと密接に連携しないスタンドアロンツールにすることを目指しています。これにより、一般的なiOSアプリのパフォーマンスを調査できるようになります。また、Detoxとも統合され、パフォーマンスメトリクスに関する自動テストを実行できるようになります。

次回のセッション

次回のセッションは2017年8月16日に予定されています。今回がまだ2回目の会議であるため、これらのメモがReact Nativeコミュニティにどのように役立っているかを知りたいと考えています。会議のアウトプットを改善するための提案があれば、お気軽にTwitterで私に連絡してください。