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

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は、react-navigationUINavigationControllerのトランジションを模倣する上で素晴らしい進歩を遂げました。彼のツイートで初期バージョンをチェックしてください。近々リリース予定です。また、彼がアップストリームしたMaskedViewIOSもチェックしてください。もしAndroid用のMaskedViewを実装するスキルと意欲があれば、素晴らしいことです!

Facebook

  • Facebookは社内で、ネイティブのComponentKitコンポーネントやLithoコンポーネントをReact Native内に埋め込むことを検討しています。
  • React Nativeへの貢献を大歓迎します!どうすれば貢献できるか知りたい方は、「コントリビュート方法」ガイドで、私たちの開発プロセスと最初のプルリクエストを送る手順を説明しています。Issueのトリアージやドキュメントの更新など、コードを書かなくても貢献できる方法は他にもあります。
    • この記事の執筆時点で、React Nativeには635件オープンなIssue249件オープンなプルリクエストがあります。これはメンテナーにとって非常に大きな負担であり、内部で問題が修正されたとしても、関連するタスクが更新されているかを確認するのは困難です。
    • コミュニティを満足させながらこれを処理するための最善のアプローチが何か、私たちはまだ確信が持てません。いくつかの(全てではありませんが!)選択肢としては、古いIssueをクローズする、Issueを管理する権限をより多くの人に与える、Issueテンプレートに従わないIssueを自動的にクローズするなどがあります。私たちは期待値を設定し、予期せぬ事態を避けるために「メンテナーに期待すること」というガイドを作成しました。メンテナーにとってこの経験をより良くし、Issueやプルリクエストを作成する人々が尊重されていると感じられるようにするためのアイデアがあれば、ぜひお知らせください!

GeekyAnts

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

Infinite Red

Microsoft

  • CodePushは現在Mobile 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のモックインフラストラクチャに使用しています。
  • 過去3週間、Wixアプリをdetoxテストでカバーしてきました。この規模のアプリ(40人以上のエンジニア)で手動QAを減らす方法を学ぶ素晴らしい経験です。その結果、detoxのいくつかの問題を解決し、新しいバージョンが公開されました。「フレイキネスゼロポリシー」を遵守しており、これまでのところテストは一貫してパスしていることを報告できることを嬉しく思います。
  • Detox for Androidは順調に進んでいます。コミュニティから大きな助けを得ています。約2週間で初期バージョンが期待されます。
  • 私たちのパフォーマンステストツールであるDetoxInstrumentsは、当初の意図よりも少し大きくなっています。現在はdetoxと密結合しないスタンドアロンツールにすることを計画しています。これにより、iOSアプリ全般のパフォーマンスを調査できるようになります。また、detoxと統合され、パフォーマンスメトリクスに関する自動テストを実行できるようになります。

次回のセッション

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