Przejdź do treści głównej

Ogłaszamy React Native 0.70

· 6 minut czytania
Dmytro Rykun
Dmytro Rykun
Software Engineer @ Meta
Thibault Malbranche
Thibault Malbranche
Lead Mobile Engineer @ Brigad
Nicola Corti
Nicola Corti
Software Engineer @ Meta
Lorenzo Sciandra
Lorenzo Sciandra
Senior Software Engineer @ Microsoft
Nieoficjalne Tłumaczenie Beta

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 i CMakeLists.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.mk lub 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:

Zmiany łamiące kompatybilność

Wystąpiły również pewne zmiany łamiące kompatybilność:

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.