Przejdź do treści głównej

Aktualizacja dotycząca wdrażania Nowej Architektury

· 6 minut czytania
Nicola Corti
Nicola Corti
Software Engineer @ Meta
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 →

Cześć wszystkim, Jak wcześniej zapowiadaliśmy:

informacja

2022 będzie rokiem Nowej Architektury w środowisku open source.

Jeśli jeszcze nie miałeś okazji zapoznać się z Nową Architekturą React Native (Fabric Renderer i system TurboModule), nie ma lepszego momentu niż teraz!

Chcielibyśmy podzielić się ze społecznością kilkoma inicjatywami i materiałami, które przygotowaliśmy, aby upewnić się, że wszyscy mogą w pełni uczestniczyć w tym przedsięwzięciu.

Grupa Robocza

Niedawno uruchomiliśmy React Native New Architecture Working Group na GitHubie - repozytorium tylko do dyskusji, które koordynuje i wspiera wdrażanie Nowej Architektury w całym ekosystemie.

Wyobrażamy sobie tę grupę jako przestrzeń, gdzie społeczność może się spotykać, dzielić pomysłami i dyskutować wyzwania związane z wdrażaniem Nowej Architektury. Dodatkowo wykorzystamy tę grupę do udostępniania informacji i aktualizacji szerszej społeczności dla zachowania przejrzystości.

Aby zachować skupienie dyskusji, zdecydowaliśmy, że grupa będzie publicznie dostępna do czytania, ale ograniczona do pisania tylko dla zatwierdzonych użytkowników.

Jeśli chcesz dołączyć do rozmowy, możesz wypełnić ten formularz, aby zgłosić siebie lub nominować kogoś, kto Twoim zdaniem wzbogaciłby dyskusję.

Każdy może zgłosić chęć udziału w dyskusji.

Jak w każdym forum dyskusyjnym, przypominamy o znaczeniu szacunku i otwartości na opinie innych. Prosimy o zapoznanie się z naszym kodeksem postępowania, jeśli jeszcze tego nie zrobiłeś.

Przewodnik migracji

Po kilku rundach recenzji i uwag, w końcu połączyliśmy Przewodnik migracji (dawniej Playbook). Znajdziesz go w grupie roboczej Nowej Architektury.

Ten przewodnik pokaże Ci jak stworzyć niestandardowy komponent Fabric lub TurboModule krok po kroku. Pomoże też dostosować istniejącą aplikację lub bibliotekę do korzystania z Nowej Architektury.

Przypominamy też o nowej sekcji Architektura na naszej stronie. Znajdziesz tam dogłębne artykuły wyjaśniające mechanizmy React Native. Szczególnie sekcja o Fabric pomoże zrozumieć proces renderowania w Nowej Architekturze.

Prosimy o podzielenie się opinią na temat tych materiałów w grupie roboczej. Zbieramy opinie developerów, aby dostarczać najbardziej przydatne treści.

W nadchodzących miesiącach będziemy udoskonalać i dodawać więcej dokumentacji.

Szablon Nowej Architektury

React Native 0.68.0 jest bliski wydania. Ta wersja oznacza kluczowy etap wdrażania Nowej Architektury, gdyż po raz pierwszy zawiera opcję włączenia w nowym szablonie aplikacji.

Oznacza to, że wypróbujesz Nową Architekturę zmieniając jedną linię w szablonie. Dodaliśmy też obszerną dokumentację i komentarze, abyś mógł używać go bez dodatkowej lektury. Mamy nadzieję, że pomoże to we wdrożeniu Nowej Architektury zmniejszając ilość potrzebnego kodu.

W kolejnych wydaniach będziemy kontynuować aktualizację szablonu, aby był jeszcze bardziej przejrzysty i prosty w użyciu.

Aby włączyć Nową Architekturę na dowolnej platformie, możesz:

  • Na iOS uruchom RCT_NEW_ARCH_ENABLED=1 bundle exec pod install wewnątrz folderu ios.

  • Na Androidzie ustaw właściwość newArchEnabled na true, wybierając jedną z opcji:

    • Zmieniając odpowiednią linię w pliku android/gradle.properties.
    • Ustawiając zmienną środowiskową ORG_GRADLE_PROJECT_newArchEnabled=true
    • Wywołując Gradle z parametrem -PnewArchEnabled=true

Następnie możesz uruchomić aplikację poleceniem yarn react-native run-android lub run-ios, a będzie działać z włączonymi Fabric i TurboModules.

Zachęcamy do wypróbowania nowego szablonu i zgłaszania błędów lub nieoczekiwanych zachowań. Przez ostatnie miesiące ciężko pracowaliśmy nad naprawą błędów i problemów z kompilacją, które byłyby trudne do wychwycenia bez ciągłych testów i opinii społeczności.

Ekosystem bibliotek stron trzecich

Społeczność nie będzie mogła migrować do Nowej Architektury bez pełnego wsparcia twórców i opiekunów bibliotek stron trzecich.

Rozumiemy, że to żmudny proces i wagę wspierania użytkowników zarówno starej, jak i Nowej Architektury. W nadchodzących miesiącach skupimy się na pomocy twórcom bibliotek w migracji.

Jeśli jesteś twórcą biblioteki, zapraszamy do publikowania aktualizacji w grupie roboczej Nowej Architektury z statusem swoich bibliotek. To pomoże przyciągnąć wczesnych użytkowników i zidentyfikować ewentualne blokady.

Jeśli natomiast korzystasz z bibliotek, możesz zamieścić prośbę tutaj o migrację biblioteki. Gdy zidentyfikujemy bibliotekę blokującą wielu użytkowników, skontaktujemy się z jej opiekunem, by zrozumieć przyczyny braku migracji.

Specjalne podziękowania dla Software Mansion za wydanie nowej wersji react-native-screens z obsługą obu architektur. Opublikowali też wpis (Wprowadzenie Fabric do react-native-screens), gdzie dzielą się swoją migracją. Mamy nadzieję, że ta historia zainspiruje was do podjęcia własnej migracji.

Wydania

Prace nad wersją 0.68 w fazie przedpremierowej zrealizowały większość ulepszonego procesu wydawniczego zdefiniowanego w poprzednim półroczu.

Z radością informujemy, że w wersji 0.68 udało nam się:

  • Wdrożyć rotację prac wydawniczych wewnątrz zespołu. Wspiera to ulepszona dokumentacja procesu wydawniczego, która zmniejszy tzw. bus factor.

  • Rozpocząć dyskusje z partnerami o wsparciu rotacji Copilot. Liczymy, że to poprawi przejrzystość procesu i wskaże partnerom obszary inwestycji wspierających wydania React Native.

  • Włączyć kilku Wspierających Wydania i Testerów ze społeczności. Po naszym apelu o pomoc zgłosiło się wiele osób! Ich opinie pomogły nam naprawić kluczowe błędy i regresje, szczególnie w Nowej Architekturze. Dziękujemy wszystkim testerom!

Wraz z React Native 0.69 będziemy kontynuować udoskonalanie tego procesu, idealnie byłoby, gdyby partnerzy wcześniej zgłaszali gotowość do wdrożenia i dołączali osoby wspierające wdrażanie (co-pilots). Jak zawsze, każda opinia jest mile widziana. Jeśli chcesz dołączyć jako tester wersji lub osoba wspierająca, prosimy o rejestrację tutaj.

W kierunku Hermesa jako domyślnego silnika

Kluczowym elementem wdrażania Nowej Architektury jest adopcja nowego silnika JavaScript: Hermes.

W Nowej Architekturze React Native ustawimy Hermesa jako domyślny silnik. Oznacza to, że wszystkie nowe dokumentacje i szablony będą miały włączonego Hermesa.

Pamiętaj, że będziemy współpracować ze społecznością, aby zapewnić wsparcie dla innych silników, takich jak JSC (JavaScript Core). Nadal możesz używać preferowanego silnika, ale będzie trzeba jawnie wyłączyć Hermesa.

Aby poprawić stabilność Hermesa, pracujemy nad zmianą modelu dystrybucji. Konkretnie planujemy, aby proces wydawania Hermesa był bliższy procesowi wydawania React Native.

To pozwoli nam dostarczać wersję React Native z dołączonym silnikiem JS, który jest w pełni kompatybilny. Nie będziesz musiał radzić sobie z awariami podczas działania i problemami z kompatybilnością Hermesa, które są bardzo trudne do debugowania.

Co więcej, skróci to cykl wdrażania ulepszeń i poprawek błędów w Hermesie, co pozwoli nam szybciej reagować na potrzeby użytkowników React Native.

Będziemy dzielić się więcej na ten temat w nadchodzących miesiącach. Tymczasem zapraszamy do dołączenia do dyskusji w Grupie Roboczej.

Jeśli jeszcze nie próbowałeś Hermesa, teraz jest idealny moment. I prosimy o zgłaszanie wszelkich problemów lub przeszkód, na które możesz natrafić.

Na tym zamykamy.

Chciałbym podziękować Andrei, Aleksandrowi, Dmitry'emu, Eli, Lunie, Héctorowi i Neilowi za przejrzenie tego posta i cenny wkład w te działania.

Z niecierpliwością czekam na Wasze relacje z migracji.