Ogłaszamy React Native 0.70
Ta strona została przetłumaczona przez PageTurner AI (beta). Nie jest oficjalnie zatwierdzona przez projekt. Znalazłeś błąd? Zgłoś problem →
Z przyjemnością prezentujemy nową wersję React Native 0.70.0. Ta wersja wprowadza kilka ulepszeń, takich jak ujednolicona konfiguracja dla Codegen, Hermes jako domyślny silnik oraz pełne wsparcie CMake dla kompilacji Android, a także odświeżoną dokumentację Nowej Architektury. Czytaj dalej, aby dowiedzieć się więcej!
Sekcje
Nowa dokumentacja Nowej Architektury
Przez ostatnie miesiące pracowaliśmy nad rozbudową sekcji Nowa Architektura w dokumentacji. W nowej sekcji znajdziesz przewodniki migracyjne, przykłady i tutoriale, które pomogą ci szybko się wdrożyć.
Dodatkowo dodaliśmy nowe dokumenty wyjaśniające dlaczego Nowa Architektura oraz jej kluczowe elementy. Mamy nadzieję, że pomogą ci lepiej zrozumieć założenia stojące za nowymi API.
Wszelkie uwagi są mile widziane - prosimy o informację w repozytorium react-native-website.
Hermes jako domyślny silnik
React Native 0.70 to pierwsza wersja, w której Hermes - nasz własny silnik JavaScript - jest domyślnie włączony.
To efekt współpracy zespołów Hermes i React Native oraz bezcennego wkładu społeczności. Poprawiliśmy i dostroiliśmy Hermesa, by działał wydajniej i dostarczał funkcji najczęściej żądanych przez społeczność.
Więcej informacji znajdziesz w oficjalnym wpisie na blogu.
Ujednolicona konfiguracja dla Codegen
W wersji 0.70 wprowadziliśmy ujednolicony sposób definiowania specyfikacji Codegen dla iOS i Androida. Wcześniej konfigurację dla Androida trzeba było umieszczać w osobnym pliku build.gradle.
Teraz możesz zdefiniować ją bezpośrednio w package.json za pomocą:
"codegenConfig": {
"name": "CustomAnimationView",
"type": "components",
"jsSrcsDir": "./src",
"android": {
"javaPackageName": "com.custom.animation"
}
}
Ta poprawka zapewnia bardziej spójne doświadczenie dla twórców bibliotek migrujących swoje projekty do Nowej Architektury.
Jeśli tworzysz biblioteki, daj nam znać o swoich doświadczeniach w tej dyskusji w grupie roboczej Nowej Architektury React Native.
Automatyczne linkowanie bibliotek Nowej Architektury dla Androida
W wersji 0.70 użytkownicy Nowej Architektury mogą automatycznie linkować biblioteki bez dodatkowej konfiguracji w plikach Android.mk czy CMake.
Autołączanie to kluczowa część środowiska React Native. Pozwala ono dołączać zewnętrzne biblioteki za pomocą polecenia yarn add, bez konieczności konfigurowania CocoaPods czy Gradle.
Nowa Architektura wymusiła dostosowanie funkcji autołączania, aby obsługiwała biblioteki korzystające z Codegen i udostępniające natywny kod deweloperom aplikacji.
Podczas gdy autołączanie dobrze działało z bibliotekami Nowej Architektury na iOS, to samo nie było prawdą dla Androida. W wersji 0.70 usunęliśmy tę różnicę i teraz możesz nadal dołączać biblioteki za pomocą yarn add do swojego projektu: będą one poprawnie łączone niezależnie od architektury.
Pełne wsparcie CMake dla kompilacji Androida
Od wersji 0.70 użytkownicy mogą używać CMake do konfigurowania swoich natywnych kompilacji. Choć nie oczekujemy, że użytkownicy aplikacji będą bezpośrednio pisać kod w C++, to nadal potrzebny jest punkt wejścia dla kompilacji natywnej.
Od teraz możesz używać pliku CMakeLists.txt zamiast Android.mk do wszystkiego, co związane z Androidem i kodem natywnym w twoim projekcie.
Ta zmiana przynosi korzyści zarówno użytkownikom aplikacji, jak i bibliotek w Nowej Architekturze:
-
Plik CMake tworzony w twojej aplikacji jest znacznie mniejszy (3 linie kodu vs 50+ dla plików Android.mk). Ułatwia to aktualizację między wersjami React Native w przyszłości i zmniejsza ilość kodu do utrzymania po twojej stronie.
-
Codegen generuje teraz zarówno
Android.mk, jak iCMakeLists.txt, więc biblioteki nie muszą się martwić o dodatkowe czynności, jeśli korzystają z domyślnej konfiguracji, którą zapewniamy dla bibliotek Nowej Architektury. -
Wspomniane wcześniej autołączanie będzie działać z plikami CMake i Android.mk bez dodatkowej konfiguracji.
-
Mimo że aplikacje mogą swobodnie używać plików
Android.mklub CMake, to zalecanym rozwiązaniem w przyszłości będą pliki CMake (ze względu na lepszą dokumentację, narzędzia i ekosystem wokół CMake).
Najważniejsze zmiany w wersji 0.70
Jak wspomniano powyżej, niektóre z ważniejszych ulepszeń w tym wydaniu skupiają się wokół doświadczeń z Nową Architekturą. Jednak zaszły również inne godne uwagi zmiany, w tym:
-
Naprawa dla Catalysta jest dostępna — ustaw
mac_catalyst_enablednatruew pliku Podfile (szczegóły w diffie upgrade-helper). -
Zaktualizowano Metro do wersji 0.72.0, co umożliwi nową transformację JSX w React: reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html.
-
Usunięto
reactnativeutilsjni, ponieważ jest on budowany z tych samych źródeł coreactnativejni, co pozwala zaoszczędzić około 220 KB w każdej kompilacji APK dla Androida. (https://github.com/facebook/react-native/pull/34339).
Zmiany łamiące kompatybilność
Wystąpiły również pewne zmiany łamiące kompatybilność:
-
Usunięto jest/preprocessor z pakietu react-native (0301cb285b autorstwa @motiz88)
-
Usunięcie niestandardowej metody
Promise.prototype.done(018d5cf985 przez @motiz88)
Należy również zauważyć, że wersja Metro została podniesiona do 0.72, która wprowadza 5 zmian łamiących kompatybilność.
Aktualizacje
Zaktualizowaliśmy także niektóre zależności:
-
Podniesienie wersji RN CLI do v9.0.0
-
Podniesienie wersji Android Gradle Plugin do 7.2.1
-
Podniesienie wersji Gradle do 7.5.1
-
Podniesienie wersji RCT-Folly do 2021-07-22
-
Podniesienie wersji Metro do 0.72
-
Podniesienie wersji SoLoader do 0.10.4
Pełną listę zmian można znaleźć w dzienniku zmian.
Podziękowania
88 współtwórców z 493 commitami pomogło w realizacji tego wydania — dziękujemy wszystkim! Jesteśmy również wdzięczni wszystkim, którzy przekazali swoje opinie, aby to wydanie było jak najbardziej stabilne.



