🔖

【RN Update 2024年1月】Expo v50がリリース 他

2024/01/31に公開

はじめに

こんにちは!
犬専用の音楽アプリ オトとりっぷでエンジニアしています、足立です。

https://www.oto-trip.com/

この記事では、今月の React Native に関連するニュースを紹介します。

目次

  • ライブラリ情報
    • 【Expo】 v50 がリリース
    • 【Storybook】 v7.6 がリリース
  • React Native 関連情報
    • Expo CLI での Webpack サポート終了

ライブラリ情報

【Expo】 v50 がリリース

ついに v50 がリリースです!

https://expo.dev/changelog/2024/01-18-sdk-50

主なアップデートは以下のとおりです。

  • Expo Dev Tools
  • Camera などの 一部 API の刷新
  • Expo Router v3 のリリース

Expo Dev Tools

アプリ開発者向けに Dev Tool プラグインが公開されました。
記事中では Apollo Client、TanStack Query、TinyBase、React Native Async Storage、React Navigation のプラグインに言及されています。
例えば React Navigation は以下のように利用するようで、デモ画像から想像するに Navigation 中に利用する変数の確認などが容易になるみたいです。

import {
  NavigationContainer,
  useNavigationContainerRef,
} from '@react-navigation/native';
import { useReactNavigationDevTools } from '@dev-plugins/react-navigation';

export default function App() {
  const navigationRef = useNavigationContainerRef();

  useReactNavigationDevTools(navigationRef);

  return (
    <NavigationContainer ref={navigationRef}>{/* ... */}</NavigationContainer>
  );
}

bare での利用方法には言及されていないので、利用できることを期待したいと思います。

Camera などの 一部 API の刷新

Camera や expo-sqlite など、一部の API が内部的に新しいものへ移行するための準備が進められています。
例えば、Camera は新たなドキュメントも公開されていますが、import 方法の変更以外は目立った変更はないようです。

- import { Camera } from 'expo-camera';
+ import { CameraView } from 'expo-camera/next';

とはいえ、

> For more advanced use cases (such as frame processors), react-native-vision-camera is a fantastic option.

と言及されている通り、より広がったカメラの活用が可能になるのかもしれません。

Expo Router v3 のリリース

Expo v50 のリリースの中に丸められるのは勿体無いぐらいのアップデートです。
目玉は、API Routesという機能のベータ版が公開されたことです。

https://expo.dev/changelog/2024/01-23-router-3#introducing-api-routes

これは、Next.js App Router で言うところの route.ts に相当する機能で、サーバサイドでのデータフェッチを担うコンポーネントを[ファイル名]+api.tsと記載すると作れるようです。

Next.js と同じような、Web / Mobile とバックエンドの結合に関する進化は今後も目が離せないですね。

【Storybook】 v7.6 がリリース

React Native Storybook がついに本家 Storybook のバージョンに追いつきました!
変更として Storage に async storage/mmkv などが選べるようになったそうです。
(むしろ今まで mmkv 使えなかったんですか?ご存知の方教えてください)

もちろん、マイグレーションガイドが出されています。

https://github.com/storybookjs/react-native/blob/next/MIGRATION.md#from-version-65x-to-76x

「ウッ」ってなってしまいそうなぐらいの変更量ですが、時間がある時にボチボチ進めていきたいですね。

React Native 関連情報

Expo CLI での Webpack サポート終了

こちらの記事の紹介です。

https://blog.expo.dev/webpack-support-in-expo-cli-is-now-deprecated-e9831d7eb631

Webpack は言わずと知れたバンドルツールですが、事実上開発が終了しているらしくその波が Expo に及んでいるようです。
記事中で Expo Router の作者である Evan Bacon 氏は、

The choice to use Metro for all platforms was driven by our mission to create a fully universal React framework — Expo Router.

と、Expo Router の進化のためと述べています。
これは、Expo および Expo Router がますます Web とのシームレスなアプリケーション体験提供を目指していくということで、とても楽しみですね。

最後に

ここまで読んでいただきありがとうございました。

もし犬専用の音楽アプリに興味を持っていただけたら、ぜひダウンロードしてみてください!

https://www.oto-trip.com/

Discussion