週間React Native #8
Solito 5の登場
Expo Router (React Navigation)とNext.jsのrouter(画面遷移処理)を共通化するSolitoのバージョン5が公開されました。 react-native-webの依存がなくなり、これまでnext/linkをラップされたLinkコンポーネントが提供されていましたが、純粋なnext/linkが提供されるようになりました。 これにより、これまでWebでのLinkコンポーネントのPropsは制限されたものになっていましたが、next/linkでサポートしているPropsのすべてが利用できるようになりました。
https://twitter.com/FernandoTheRojo/status/1980785213170209002
https://twitter.com/FernandoTheRojo/status/1980785627936543142
こちらのアプローチはライブラリのAPIとしてWebファーストでの(index.tsxをWebとし、ネイティブ向けにはindex.native.tsxとしている)実装が行われた結果になっています。 ネイティブとWebの両方に対応するライブラリ/アプリケーションを開発する方は、こちらの考えを読んでおくと良さそうです。
@callstack/liquid-glassの0.5.0が公開
React NativeでLiquid Glassの効果を利用することができる@callstack/liquid-glassの0.5.0が公開されました。 iOS 26 API の新しいボーダーラディウスを利用して、Zeegoというコンテキストメニューのライブラリと互換性のある表示ができます。
https://twitter.com/o_kwasniewski/status/1981343093573013587
react-native-live-activityが開発中?
おなじみcallstackの開発者の方が、React NativeでLive Activityを扱える新たなライブラリを開発しているようです。 これまでReact NativeでLive Activityのようなアプリ外のUIを実装する際、SwiftUIで実装する必要がありました。 こちらのライブラリではSwiftUIを使わず、React NativeでLive ActivityのUIを構築することができ、さらにファストリフレッシュも可能とのことです。 こちらが公開されれば、React NativeでLive Activityを実装するのもかなり簡単になりそうですね!
https://twitter.com/ChmalSzymon/status/1981412246572998916
React NativeのModalにdetentsが設定できるように?
React NativeのModalコンポーネントで、detentsを設定して、シートモーダルを任意の高さを指定できるようにするPull Requestが行われました。 以前も同様のPRが行われていましたが、パフォーマンスの問題により閉じられたようです。 最近のReact NativeのAPIの改善により、それが改善されて再度開かれたようです。
https://twitter.com/o_kwasniewski/status/1982049398332006567
React Native Gesture Handler 2.29.0
React Nativeでジェスチャー処理などを行うReact Native Gesture Handlerの2.29.0が公開されました。 今回は主に不具合修正となっています。
https://twitter.com/swmansion/status/1981736303428284626
expo-drawpad 0.3.0が公開
お絵かきツールのようなUIを提供するexpo-drawpad 0.3.0が公開されました。 グラデーション、ブラシ、SVGエクスポート、滑らかな曲線の対応などが行われいます。
https://twitter.com/S0LARIN/status/1981755648103821416
react-native-get-random-values v2.0.0
crypto.getRandomValuesをReact Nativeでも行えるreact-native-get-random-valuesのv2.0.0が公開されました。 New Architectureのみがサポートするようになりました。 また、visionOSについてのサポートも追加されました。
https://twitter.com/thiagobrez/status/1981721066432074103
Expo Moduleを作る際のCLAUDE.md例
Expo開発者のEvan Bacon氏が、Expo Modulesを開発する際のiOSについてのCLAUDE.mdの例を公開しています。 これを使うことで、react-native-view-shotを置き換えるためのモジュールを2分以下で作成することができたとのことです。
https://twitter.com/Baconbrix/status/1982180394297393257
Expo UIの使い所
自分の話で恐縮ですが、Expo UIについての紹介と、どういったところで使ったらよいかの記事を会社のテックブログに投稿しました。 Expo UIに興味のある方は読んでみてください!
https://zenn.dev/tellernovel_inc/articles/71e7cc922f6869
今週のひとこと
個人的にはSolito5の話が勉強になりました。 普段React NativeとWebをモノレポで扱い、コンポーネントなどを共通化していますが、Webファーストのindex.tsをつくることで、バンドラーがWeb用に特別に設定しなくても済むというのは確かに…と思いました。