本文へ移動

React Nativeマンスリー #2

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

React Nativeの月例会議が続きます!今回のセッションには、Infinite RedReact NativeカンファレンスのChain Reactの立役者である素晴らしい人材が参加しました。参加者の多くがChain Reactで講演を行っていたため、会議は1週間延期されました。カンファレンスの講演はオンラインで公開されており、ぜひご覧ください。それでは、各チームの活動を見ていきましょう。

チーム

2回目の会議には、9つのチームが参加しました。

ノート

各チームからのノートを以下に示します。

Airbnb

Callstack

  • Mike Grabowskiはこれまで通り、React Nativeの毎月のリリースを管理しており、いくつかのベータ版もリリースしています。特に、Windowsユーザーのブロックを解除するために、v0.43.5ビルドをnpmに公開することに取り組んでいます!
  • Haulでは、着実な作業が続けられています。HMRを追加するプルリクエストがあり、他の改善も出荷されています。最近、業界のリーダーがいくつか採用しました。その分野でフルタイムの有償作業を開始する可能性があります。
  • Michał Pierzchała(Jestチーム)が今月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では、ネイティブのComponentKitLithoコンポーネントをReact Native内に埋め込む方法を社内で検討しています。
  • React Nativeへの貢献は大歓迎です!貢献方法にご興味のある方は、「貢献方法」ガイドで開発プロセスと最初のプルリクエストを送信する手順について説明しています。問題のトリアージやドキュメントの更新など、コードを書かなくても貢献できる方法もあります。
    • 執筆時点では、React Nativeには635件未解決のissue249件未解決のプルリクエストがあります。これはメンテナにとって負担が大きく、内部で修正が行われた場合でも、関連タスクが更新される保証はありません。
    • コミュニティの満足度を維持しながら、この問題にどのように対処するのが最善の方法なのか、まだ確信がありません。いくつかの(すべてではありませんが!)選択肢としては、古いissueをクローズすること、issue管理の権限を持つ人を大幅に増やすこと、issueテンプレートに従っていないissueを自動的にクローズすることなどがあります。「メンテナから期待すること」ガイドを作成し、期待値を設定し、予期せぬ事態を避けるようにしました。メンテナにとっての体験を向上させると同時に、issueやプルリクエストを作成した人が自分の意見が聞き入れられ、尊重されていると感じられるようにするためのアイデアがありましたら、ぜひお知らせください!

GeekyAnts

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

Infinite Red

Microsoft

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

Shoutem

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

Wix

  • Metro Bundlerへのプルリクエストをreact-native-repackager機能で開始しました。 react-native-repackagerを更新してRN 44(本番環境で使用)をサポートしました。detoxのモックインフラストラクチャで使用しています。
  • 過去3週間、detoxテストでWixアプリを網羅してきました。この規模のアプリ(40人以上のエンジニア)で手動QAを削減する方法を学ぶ素晴らしい経験でした。その結果、detoxのいくつかの問題を解決し、新しいバージョンが公開されました。「ゼロ・フレイクネス・ポリシー」を順守しており、テストはこれまで一貫して合格していることを喜んで報告できます。
  • Android向けDetoxは順調に進んでいます。コミュニティから大きな助けを得ています。約2週間後に最初のバージョンをリリース予定です。
  • DetoxInstruments(パフォーマンステストツール)は、当初の予定よりも少し大きくなっています。現在は、detoxと緊密に結合されていないスタンドアロンツールにすることを計画しています。これにより、iOSアプリのパフォーマンス全般を調査できます。また、detoxと統合されるため、パフォーマンス指標に関する自動テストを実行できます。

次回のセッション

次回のセッションは2017年8月16日に開催予定です。これは2回目のミーティングなので、これらのメモがReact Nativeコミュニティにどのように役立つのかを知りたいです。改善方法に関するご提案がありましたら、Twitterで私に連絡してください。