週間React Native #4
React Nativeから直接ネイティブのAPIを呼び出せるように
現在開発中のreact-native-node-apiを使い、React NativeからNativeScriptを介して、直接iOSのフレームワークのAPIを実行できるようになりました。 これによって、将来的にReact NativeのNative Modulesを利用せずにネイティブの機能を利用できるようになるかもしれません。
https://twitter.com/birch_js/status/1971619696991740259
高速にデータフェッチが可能になるreact-native-nitro-fetchが登場
Nitro Moduleを利用し、AndroidではCronet、iOSではURLSessionを使用して、高速にデータフェッチができる
Nitro Moduleを利用し、AndroidではCronet、iOSではURLSessionを使用して、高速にデータフェッチができるreact-native-nitro-fetchが登場しました。 プリフェッチ機構やディスクキャッシュ、HTTP2、QUIC、Brotilなどにより、標準的なReact Nativeのfetchと比べてパフォーマンスが向上しています。 また、Workletsをサポートしており、JSONのパース処理などで負荷がかかる処理をバックグランドスレッドで行うことで、UIスレッドがブロックされるのを防ぐことができます。
が登場しました。 プリフェッチ機構やディスクキャッシュ、HTTP2、QUIC、Brotliなどにより、標準的なReact Nativeのfetchと比べてパフォーマンスが向上しています。 また、Workletsをサポートしており、JSONのパース処理などで負荷がかかる処理をバックグラウンドスレッドで行うことで、UIスレッドがブロックされるのを防ぐことができます。
https://twitter.com/margelo_com/status/1970140025766420560
expo-sqliteのlocalStorage APIがExpo SDK 54で利用可能に
Expo SDK 54でのexpo-sqliteで、localStorage APIが追加されました。 これにより、AsyncStorageよりも扱いやすく、高いパフォーマンスで利用することができます。
https://twitter.com/Baconbrix/status/1969095303417520165
Expo SDK 54で多くのパッケージマネージャーがサポートされるように
Expo AutolinkingがExpo SDK 54で進化しました。 npmやYarnに加え、pnpmやBunもサポートされるようになり、モノレポへの対応も強化されました。
https://twitter.com/expo/status/1970254811410112536
HeroUI Native alpha 13
HeroUI Native alpha 13で新たなDialogコンポーネントが追加されました。 スワイプ可能で、背景でブラーも利用可能など、高機能なDialogコンポーネントのようです。
ShowCaseにLinearアプリのようなサンプルも追加されています。
https://twitter.com/hero_ui/status/1970499601363866010
その他
Expo Router、Reanimatedなどを使ったアニメーションのヘッダー
タブを切り替えたときにきれいに動くアニメーションのヘッダー例
https://twitter.com/makeitanimated/status/1970081790183522376
React Native 0.72→0.76へのアップデートを行った教訓
React Native 0.72のプロジェクトを、Android API 35をサポートするために0.76以上にする必要がありました。
現在のReact Nativeは0.81ですが、0.72からいきなり0.81に移行するのは大きな変更が必要になるため、まずは0.76にアップデートすることにしたとのことです。
そのときに行った対応や得られた教訓が述べられています。
https://medium.com/@abijith.b/react-native-0-72-0-76-lessons-from-the-trenches-0a548ba6b83f
今週のひとこと
Jamie Birchさんが試されている、React Nativeから直接ネイティブAPIを呼び出す試みは興味深いですね!
この技術は、NativeScriptというフレームワークをReact Nativeから呼び出すことで実現しています。 NativeScriptは、もともとJavaScriptからネイティブAPIを直接呼び出すことを特徴としています。
そして、今年登場したNativeScript 8.9でNode-APIがサポートされ、React NativeにNode-APIをサポートするreact-native-node-apiが登場したことで、React Nativeの世界でも同様のことが可能になりつつあるという流れのようですね。
「React NativeでNode-APIを活用すると、どのようなメリットがあるのだろう?」と思っていましたが、まさかネイティブAPIへの直接アクセスという活用方法があるとは、大きな発見でした。