Ogłaszamy React Native 0.65
Ta strona została przetłumaczona przez PageTurner AI (beta). Nie jest oficjalnie zatwierdzona przez projekt. Znalazłeś błąd? Zgłoś problem →
Dzisiaj udostępniamy React Native w wersji 0.65 z nową wersją Hermesa, ulepszeniami dostępności, aktualizacjami pakietów i innymi poprawkami.
Co nowego w Hermesie 0.8?
Hermes, otwartoźródłowa maszyna wirtualna JavaScript od Facebooka zoptymalizowana pod React Native, został zaktualizowany do wersji 0.8.1. Najważniejsze funkcje w tym wydaniu to:
-
Nowy współbieżny odśmiecacz pamięci o nazwie "Hades" zapewniający nawet 30-krotnie krótsze przerwy na urządzeniach 64-bitowych. W Facebooku zaobserwowaliśmy wzrost wydajności o 20%-50% w wymagających zadaniach CPU. Więcej o Hadesie znajdziesz tutaj.
-
ECMAScript Internationalization API (ECMA-402, czyli
Intl) jest teraz wbudowany w Hermesa na Androida i domyślnie włączony, dodając tylko 57-62K narzutu na API (w porównaniu do 6MiB w JSC). Dzięki tej zmianie użytkownicy Hermesa nie potrzebują już polyfilli dla lokalizacji. Serdeczne podziękowania dla @mganandraj i partnerów z Microsoftu za doprowadzenie tej implementacji! -
Hermes na iOS obsługuje teraz komputery Apple M1 i Mac Catalyst!
-
Optymalizacje pamięci obejmujące SMI (małe liczby całkowite) i kompresję wskaźników, które zmniejszyły stertę JS o 30%.
-
Zmiany w
Function.prototype.toString, które naprawiły spadek wydajności spowodowany nieprawidłowym wykrywaniem funkcji oraz dodają obsługę wstrzykiwania kodu źródłowego.
Pełną listę zmian w Hermesie znajdziesz w dzienniku zmian.
Jeśli jeszcze tego nie zrobiłeś, włącz Hermesa w swojej aplikacji, aby skorzystać z tych nowych funkcji i ulepszeń!
Poprawki i nowości w dostępności
W zeszłym roku Facebook zobowiązał się w ramach GAAD do poprawy dostępności w React Native. Wersja 0.65 prezentuje efekty tego zobowiązania i inne ulepszenia! Do znaczących zmian należą:
-
Możliwość definiowania wartości wysokiego kontrastu dla trybów jasnego i ciemnego w iOS. Szczegóły w dokumentacji.
-
Dodano interfejs
getRecommendedTimeoutMillisna Androida. Udostępnia on preferowaną domyślną wartość limitu czasu ustawioną w opcjach dostępności Androida, przeznaczoną dla użytkowników potrzebujących dodatkowego czasu na zapoznanie się z interfejsem. -
Ogólne poprawki zapewniające poprawne czytanie stanów UI (jak
disabledczyunselected) przez TalkBack/VoiceOver.
Możesz śledzić lub współtworzyć rozwiązanie otwartych problemów z dostępnością!
Ważne aktualizacje zależności i pułapki
-
W
package.jsonwymagana jest teraz wersja0.0.7pakietureact-native-codegenjakodevDependency. -
JCenter został wycofany i jest tylko do odczytu. Usunęliśmy JCenter jako repozytorium Maven i zaktualizowaliśmy zależności do korzystania z MavenCentral i Jitpack.
-
Zaktualizowano OkHttp z wersji v3 do v4.9.1. Szczegółowe informacje o zmianach znajdziesz w artykule Upgrading to OkHttp 4.
-
Aktualizacja Flippera do wersji 0.93 z obsługą Xcode 12.5. Listę zmian znajdziesz w dzienniku zmian Flippera.
-
Obsługa Android Gradle Plugin 7
-
Apple Silicon wymaga obejścia w linkerze. Szczegóły znajdziesz w notatce @mikehardy.
Podziękowania
To wydanie zawiera ponad 1100 commitów od 61 współtwórców. Dziękujemy wszystkim, którzy przyczynili się do tej wersji! Pełny dziennik zmian znajdziesz tutaj.
