はじめに
キッチハイクのエンジニアメンバーでReact Nativeの気になるニュースを持ち寄ってみました!
- はじめに
- KitchHike式 React Native 設計チェックポイント
- Wix のOSSプロジェクト運営
- React Native アプリの多言語対応もこれで楽になる?
- スケルトンUIを実装できるReact Native ライブラリ
- Inside the React Core team
- フロントエンドのツールチェインライブラリ Rome
- 個人開発者から見た React Native (2021)
- React Native を教えるプログラミングスクールが登場
- Reactの状態管理ライブラリRecoilの日本語記事
- さいごに
- We're Hiring
KitchHike式 React Native 設計チェックポイント
TECH STAND #3 クロスプラットフォーム開発 Flutter x React Native に、キッチハイクから @shoken0x がLT登壇しました。 KitchHike式 React Native 設計チェックポイント というタイトルで発表してきました。
React Native Advent Calendarで書いた2つの記事を元にしました。
コメント
- 「新規でReact Nativeアプリを作るときにめちゃくちゃ役に立つと思う」
- 「過去の選択をベストにすることはこれからも可能」
- 「何を使うかということもだけど、どのように使うかっていうことも同じくらい大事ですもんね」
Wix のOSSプロジェクト運営
Wixがmediumで8回に分けて連載される予定の第四弾。過去のRN Featureでも取り上げてます。
Wixが立ち上げたOSSプロジェクトに対して、サポートキャパシティを超えたときにTeslaチームから連絡があって共同開発に進んだ話や、プロジェクトの終了についてなど、OSSプロジェクトに関するリアルな話。
- OSSプロジェクトに取り組むメリットと課題
- Wixが開発しているOSSプロジェクトについて
- 成功したOSSプロジェクトの2つの共通点
- チーム全体で所有していること
- インフラストラクチャ指向
- OSSプロジェクトの終了について
- プロジェクトをオープンソース化することで、コードの品質やドキュメントの質など、あらゆる面でプロジェクトを向上させることができる
- メンテナンスにかかる時間が大幅に増加する。OSSプロジェクトに専念する開発者が十分でなければ、コミュニティの要求を満たすことができず、組織外の人にとってはプロジェクトの実行可能性が低くなってしまう。
以下、記事本文の一部を和訳
オープンソースにすればすべてがバラ色というわけではなく、オープンソースのコードが増えるにつれ、私たちの戦略が原因で困難に直面するようになりました。
コメント
- 「OSSのメリットだけでなく、OSSプロジェクトのメンテナンスコストやプロジェクトを閉じることについて触れられている記事は珍しいので読めてよかった」
- 「OSSプロジェクトの持続可能性についても記載されていますね」
- 「
Detox
やreact-native-calendars
にはお世話になってます」 - 「フリーライダーにならないように我々も活動していきたいですね」
- 「Detoxといえば、GitHubのissueがすごい勢いで立ってメンテナの人がすごい勢いでクローズしてます」
- 「LeoNatanさん、頑張ってメンテナンスしてくれているなあ」
React Native アプリの多言語対応もこれで楽になる?
- 世界で使用されるアプリを作るときは多言語対応が必要
- WOVN.app の SDK を使用すれば、言語ごとにアプリを開発しなくてよい
- アプリ内の翻訳作業などをエンジニア以外ができるようになるらしい(自動翻訳機能もあり)
- アプリを作るために必要な人数がどんどん少なくなるなという印象
コメント
- 「もともとWeb版のサービスがあって、「コード一行でWebを多言語化」みたいなキャッチコピーだった記憶があります」
- 「React Nativeアプリだとどのタイミングで翻訳を走らせているのか気になりますね」
スケルトンUIを実装できるReact Native ライブラリ
- 以前紹介したスケルトンUI
- React Native のライブラリとして、GitHub で公開されていた!
- ライブラリを使用してスケルトンUIを実装している動画も公開されている
コメント
- 「10月の記事で紹介した
rn-placeholder
の類似ライブラリ」 - 「ライブラリは類似のものをいくつか調べておくと、比較やメンテナンスされなくなったときに役にたちます」
Inside the React Core team
- ReactのAdvent Calendarからの抜粋
- React Coreチームは9人の少数精鋭チーム
- うちコンピューターサイエンス専攻なのは一人
- Reactも実はさまざまな失敗の上に成り立っている
- 2015年ごろ、Web Workerに処理を移行しようとして失敗した
- Prepackチームとの協力実験も失敗した
- これらの「失敗」は、Hooks や React Server Componentに繋がっている
コメント
- 「Reactチームは巨大に見えるけど、実はコアチームは9人なんですね〜」
- 「Reactのコアチームはパフォーマンス向上が大きなテーマなんですね。一時期のGoogle Chromeのパフォーマンスへの取り組みと近いのかな」
- 「Facebookのエンジニアリングチームは複数のチームでパフォーマンスとかの共通課題を研究しているのかもしれないですね、過去の pop というアニメーションライブラリも同じ文脈かも」
- 「facebookarchiveというリポジトリがあるのを知った」
- 「facebookexperimentalもありますね」
- 「React Server Component, 興味持って調べてます。実用になったら一部入れてみたいです」
- 「https://react.christmas/2020 には他にも面白そうな記事がいっぱいあります」
フロントエンドのツールチェインライブラリ Rome
- JavaScript界の著名人、
Sebastian McKenzie
氏が開発しているOSSツールチェイン - Babel, ESLint, webpack, Prettier, Jestなどのリプレイスを狙っている
- JavaScript, Typescript, はてはHTMLも包括するツールチェイン
コメント
- 「Sebastianは、BabelやYarnを作った本人ですね」
- 「名前の由来、全ての道はローマに通ずっていうこと?」
- 「本当に可能なのか...って思いますが、技術力とパワーがすごい」
個人開発者から見た React Native (2021)
- 以下のような組織にはReact Native が向いている
- iOS / Android 両方のアプリを開発したいと思っているが、ネイティブアプリエンジニアのリソースが不十分
- Web エンジニアのリソースには比較的余裕がある
- React 等のフレームワークに抵抗がない(もしくは既に使用している)
- Web の技術スタックで既に React を採用しているといった場合には、さらに学習コストは少なく、さらに(きちんと設計されている場合に限りますが)、JavaScript(TypeScript)コードの共有も見込めます(モデル層・特定の hooks・コンポーネント等)
コメント
- 「Flutterとの比較でどうしても語られてしまうんだな」
- 「記事の冒頭でも話題になったTECH STAND #3 の懇親会でも話題になってました」
- 「NaturalClarさんのコメントが参考になる」
この前、React NativeとFlutterの勉強会に出て気づいたことは、RN が Flutter と比べてディスられがちなのは、RNを触るのが Web 出身の人の方が多く、モバイル特有のログにエラーログに対して対応しづらい人が多いということ。Flutterはモバイル経験者が触るのでそこで詰まらない。エラーログは読もう
— Naturalclar(Jesse K.) #BlackLivesMatter (@natural_clar) 2021年1月27日
React Native を教えるプログラミングスクールが登場
- ついにプログラミングスクールにReact Native が登場! (他の事例を知らないだけかも)
コメント
- 「スクールで教えられるくらい広まってきているんですね〜」
- 「スクールで学ぶのもありですが、キッチハイクでインターンすればお金をもらいながらReact Nativeのコード書けますよ!」
- 「Udemyでワダタカヒコさんが講座も出していますね」
Reactの状態管理ライブラリRecoilの日本語記事
コメント
- 「Recoilはすごくシンプルに見えるけど、過去のRedux,Fluxなどからの流れは学ぶ必要があるね」
- 「Reduxは中央集権的だけど、Recoilは最小限の再計算でOK」
- 「React Core Teamの記事とも関連しますが、パフォーマンス改善に主眼があるのですかね」
さいごに
これからも社内で持ち寄った技術ネタを共有します!
We're Hiring
キッチハイクでは、React Native アプリエンジニアを募集中です!