React Native 0.65 リリースのお知らせ
·3分で読めます
本日、新しいバージョンのHermes、アクセシビリティの向上、パッケージのアップグレードなどを搭載したReact Nativeバージョン0.65をリリースします。
Hermes 0.8の新機能とは?
React Native向けに最適化されたFacebookのオープンソースJavaScript VMであるHermesがバージョン0.8.1にアップグレードされました。このリリースの注目すべき機能は次のとおりです。
- 64ビットデバイスで最大30倍短いポーズ時間を実現する「Hades」という新しい並行ガベージコレクター。Facebookでは、これにより一部のCPU負荷の高いワークロードが20%〜50%改善されました。詳細はこちらでHadesの詳細をご確認ください。
- ECMAScript国際化API(ECMA-402、または
Intl
)がAndroidのHermesに組み込まれ、デフォルトで有効になりました。APIサイズあたりのオーバーヘッドはわずか57〜62Kです(JSCの6MiBと比較して)。この変更により、Hermesユーザーはロケールポリフィルを必要としなくなりました。この実装を推進して実現してくださった@mganandrajとマイクロソフトの他のパートナーに感謝します! - iOSのHermesがApple M1 MacとMac Catalystをサポートしました!
- JSヒープを30%縮小したSMI(Small Integers)とポインタ圧縮を含むメモリの改善。
- 不適切な機能検出によるパフォーマンス低下を修正し、ソースコード注入のユースケースをサポートする
Function.prototype.toString
への変更。
これらの新機能と改善を利用するために、まだHermesを有効にしていない場合は、こちらの手順に従ってアプリでHermesを有効にしてください!
アクセシビリティの修正と追加
昨年、FacebookはReact Native内のアクセシビリティを改善するためにGAADプレッジを表明しました。0.65には、このプレッジの結果とその他のアクセシビリティの成果が含まれています!注目すべき変更点は次のとおりです。
- iOSでハイコントラストのライト値とダーク値の指定を許可します。詳細については、ドキュメントを参照してください。
- Androidに
getRecommendedTimeoutMillis
APIを追加しました。これにより、Androidのアクセシビリティオプションで設定されたユーザーの推奨デフォルトタイムアウト値が公開されます。これは、コントロールの確認や到達などに余分な時間が必要なユーザー向けです。 - コンポーネントの
disabled
やunselected
などのUI状態をTalkBack/VoiceOverが適切にアナウンスするようにするための一般的な修正。
こちらの未解決のアクセシビリティ問題をフォローするか、貢献してください!
注目すべき依存関係のバージョンの更新と注意点
react-native-codegen
バージョン0.0.7
がpackage.json
のdevDependency
として必要になりました。- JCenterは廃止され、読み取り専用になりました。JCenterをmavenリポジトリとして削除し、MavenCentralとJitpackを使用するように依存関係を更新しました。
- OkHttpをv3からv4.9.1にアップグレードしました。変更の詳細については、OkHttp 4へのアップグレードを参照してください。
- Xcode 12.5をサポートするためにFlipper 0.93にアップグレードしました。Flipperの変更ログはこちらを参照してください。
- Android Gradle Plugin 7のサポート
- Apple Siliconにはリンカーの回避策が必要です。これに関する@mikehardyのメモを参照してください。
ありがとうございました!
このリリースには、61人のコントリビューターからの1100を超えるコミットが含まれています。このリリースに貢献し、サポートしてくださった皆様に感謝いたします!完全な変更ログはこちらにあります。