← Back

週間React Native #4

2025-09-28 / #4

React Nativeから直接ネイティブのAPIを呼び出せるように

現在開発中のreact-native-node-apiを使い、React NativeからNativeScriptを介して、直接iOSのフレームワークのAPIを実行できるようになりました。 これによって、将来的にReact NativeのNative Modulesを利用せずにネイティブの機能を利用できるようになるかもしれません。

高速にデータフェッチが可能になる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スレッドがブロックされるのを防ぐことができます。

expo-sqliteのlocalStorage APIがExpo SDK 54で利用可能に

Expo SDK 54でのexpo-sqliteで、localStorage APIが追加されました。 これにより、AsyncStorageよりも扱いやすく、高いパフォーマンスで利用することができます。

Expo SDK 54で多くのパッケージマネージャーがサポートされるように

Expo AutolinkingがExpo SDK 54で進化しました。 npmやYarnに加え、pnpmやBunもサポートされるようになり、モノレポへの対応も強化されました。

HeroUI Native alpha 13

HeroUI Native alpha 13で新たなDialogコンポーネントが追加されました。 スワイプ可能で、背景でブラーも利用可能など、高機能なDialogコンポーネントのようです。

ShowCaseにLinearアプリのようなサンプルも追加されています。

その他

Expo Router、Reanimatedなどを使ったアニメーションのヘッダー

タブを切り替えたときにきれいに動くアニメーションのヘッダー例

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を直接呼び出すことを特徴としています。

https://nativescript.org/

そして、今年登場したNativeScript 8.9でNode-APIがサポートされ、React NativeにNode-APIをサポートするreact-native-node-apiが登場したことで、React Nativeの世界でも同様のことが可能になりつつあるという流れのようですね。

「React NativeでNode-APIを活用すると、どのようなメリットがあるのだろう?」と思っていましたが、まさかネイティブAPIへの直接アクセスという活用方法があるとは、大きな発見でした。