Przejdź do treści głównej

Pomoc w migracji bibliotek React Native do Nowej Architektury

· 7 minut czytania
Riccardo Cipolleschi
Riccardo Cipolleschi
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 →

tl; dr: Pracujemy nad ulepszeniem zasobów wspierających Nową Architekturę React Native. Udostępniliśmy już repozytorium pomagające w migracji aplikacji (RNNewArchitectureApp) oraz bibliotek (RNNewArchitectureLibraries). Aktualizujemy też przewodnik po Nowej Architekturze na stronie dokumentacji oraz powołaliśmy GitHub Working Group do odpowiadania na pytania związane z Nową Architekturą.

Wprowadzenie

W tym poście dzielimy się aktualizacjami narzędzi i zasobów pomagających w migracji Native Modules i Native Components do ich odpowiedników w Nowej Architekturze - TurboModule i Fabric Components.

Użytkownicy React Native korzystają z ogromnej liczby bibliotek open source do budowania aplikacji. Dla spójnego i kompletnego ekosystemu konieczne jest, by te biblioteki zostały zmigrowane – tak aby wszyscy mogli korzystać z nowych możliwości i poprawy wydajności oferowanych przez Nową Architekturę.

Oto co przygotowujemy, by wesprzeć twórców bibliotek w migracji do Nowej Architektury:

  • Dokumentacja: Rozbudowujemy przewodnik po Nowej Architekturze na stronie dokumentacji, by obejmował więcej koncepcji związanych z Nową Architekturą oraz tworzeniem komponentów.

  • Przykłady migracji: Przygotowaliśmy dwa repozytoria demonstrujące migrację aplikacji React Native do Nowej Architektury (RNNewArchitectureApp) oraz tworzenie Fabric Component i TurboModule działających z obiema architekturami (RNNewArchitectureLibraries).

  • Wsparcie: Wcześniej w tym roku utworzyliśmy GitHub Working Group dedykowane dyskusjom i pytaniom dotyczącym Nowej Architektury.

W tym poście szczegółowo omówimy te zasoby i wyjaśnimy, jak możesz wykorzystać je najefektywniej. Przedstawimy też aktualny stan migracji najpopularniejszych bibliotek React Native.

Dokumentacja

W ciągu ostatnich 6 miesięcy dodaliśmy przewodnik dotyczący przyjmowania Nowej Architektury i szczegółowe omówienie architektury dotyczące Fabric. Planujemy rozszerzyć to o więcej przewodników i dokumentacji na temat tworzenia TurboModules, zrozumienia Codegen i innych zagadnień. Planujemy udostępnić aktualizacje do wydania wersji 0.70.

Obecnie przewodnik po Nowej Architekturze obejmuje jak zmigrować aplikację i biblioteki do poprawnego działania z Nową Architekturą.

Jeśli śledzisz rozwój tego przewodnika lub masz uwagi, możesz obserwować to pull request.

Przykłady migracji

Dla deweloperów wolących śledzić przykłady w kodzie przygotowaliśmy dwa przykładowe repozytoria.

RNNewArchitectureApp

To repozytorium pokazuje jak zmigrować aplikację, natywne moduły i natywne komponenty z architektury legacy w React Native 0.67 do Nowej Architektury i najnowszej wersji React Native. Każdy commit odpowiada odrębnemu etapowi migracji.

Example steps to migrate an app
Commit list for a migration in the RNNewArchitectureApp repository

Struktura repozytorium:

  • Gałąź main zawiera tylko plik README.md reklamujący inne gałęzie.

  • Kilka gałęzi migracyjnych pokazujących migrację z konkretnej wersji React Native na inną.

Niektóre gałęzie migracyjne zawierają też plik RUN.md, który w bardziej przystępny sposób opisuje dokładne kroki zastosowane w każdym commicie.

Planujemy utrzymywać ten przykład aktualnym względem najnowszych stabilnych wydań, dodając migracje dla każdej pomniejszej wersji React Native. Jeśli zauważysz problem z którymkolwiek krokiem, zgłoś issue w repozytorium. Będziemy to kontynuować, dopóki nie uznamy, że większość użytkowników React Native przeszła na Nową Architekturę.

RNNewArchitectureLibraries

Podobnie to repozytorium zawiera przewodnik krok po kroku tworzenia TurboModule i komponentu Fabric. Skupia się na zapewnieniu kompatybilności wstecznej między Nową Architekturą a starszą wersją.

Repozytorium jest zorganizowane podobnie do poprzedniego:

  • Gałąź main zawiera tylko plik README.md reklamujący inne gałęzie.

  • Inne gałęzie pokazują jak tworzyć TurboModules i komponenty Fabric.

Planujemy aktualizować ten przykład przy nowych wydaniach React Native (szczególnie tych wpływających na biblioteki) oraz dodawać więcej przykładów użycia zaawansowanych funkcji (np. implementacji komend, emiterów zdarzeń, niestandardowego stanu). Jeśli zauważysz błędy, zgłoś issue w repozytorium przykładów.

Wsparcie

Utworzyliśmy dedykowaną grupę roboczą, gdzie społeczność może zadawać pytania i otrzymywać aktualizacje o Nowej Architekturze. Jeśli jesteś maintainerem biblioteki, to cenne źródło odpowiedzi. Dołącz, postępując zgodnie z instrukcjami. Zapraszamy wszystkich.

Grupa robocza jest podzielona na sekcje:

  • Ogłoszenia: Miejsce na ważne aktualizacje o wdrażaniu Nowej Architektury

  • Deep Dive: Dyskusje techniczne i szczegółowe analizy

  • Dokumentacja: Dyskusje o dokumentacji i materiałach migracyjnych

  • Biblioteki: Dyskusje o bibliotekach stron trzecich i ich migracji

  • Q&A: Miejsce na pytania o Nową Architekturę

  • Wydania: Dyskusje o błędach w wydaniach i problemach z buildami

Skuteczne korzystanie z grupy:

  • Dodaj swoją bibliotekę w sekcji Biblioteki. Pomoże nam to śledzić postępy migracji i zrozumieć wyzwania, aby lepiej wspierać autorów.

  • Korzystaj z sekcji Q&A w przypadku blokujących problemów. Nasz zespół i eksperci społeczności monitorują tę sekcję.

  • Śledź inne sekcje pod kątem istotnych tematów. Nowe wydanie może wprowadzać potrzebne Ci funkcje. Subskrybuj dyskusje przez GitHub.

Planujemy wspierać tę grupę aż do momentu, gdy Nowa Architektura stanie się domyślnie włączona, a wszystkie główne biblioteki zostaną do niej zmigrowane.

Stan migracji popularnych bibliotek

Twórcy bibliotek dzielili się z nami w grupie roboczej postępami w migracji. Oto krótkie podsumowanie:

Kolejne kroki

Jesteśmy zaangażowani we wspieranie społeczności React Native w adopcji Nowej Architektury. Konkretnie:

  • Oferujemy wsparcie w grupie roboczej w miarę naszych możliwości

  • Udostępniamy więcej przykładów osiągania świetnych wyników z Nową Architekturą w repozytoriach RNNewArchitecture

  • Zapewniamy jasną i aktualną dokumentację dot. Nowej Architektury

  • Śledzimy postępy migracji kluczowych bibliotek w grupie roboczej

  • Upraszczamy proces migracji dla deweloperów

Dodatkowo, React Native 0.69 zawiera ulepszenia dla deweloperów aplikacji i bibliotek wdrażających Nową Architekturę. Więcej informacji o wydaniu 0.69.0 znajdziesz tutaj.

Jesteśmy podekscytowani tym, co wspólnie zbudujemy dzięki Nowej Architekturze!