Przejdź do treści głównej

Wydanie wersji 0.56

· 5 minut czytania
Lorenzo Sciandra
Główny opiekun i programista React Native w Drivetribe
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 →

Długo wyczekiwana wersja 0.56 React Native jest już dostępna 🎉. W tym poście na blogu przedstawiamy niektóre zmiany wprowadzone w tym wydaniu. Chcemy też wyjaśnić, czym zajmowaliśmy się od marca.

Dylemat zmian łamiących kompatybilność, czyli "kiedy wydać?"

Przewodnik dla współtwórców opisuje proces integracji, przez który przechodzą wszystkie zmiany w React Native. Projekt składa się z wielu różnych narzędzi, wymagających koordynacji i stałego wsparcia, aby wszystko działało poprawnie. Dodaj do tego żywą społeczność open source, która przyczynia się do projektu, a zrozumiesz ogromną skalę tego przedsięwzięcia.

Przy imponującym przyjęciu React Native, zmiany łamiące kompatybilność muszą być wprowadzane z dużą ostrożnością, a proces nie jest tak płynny, jakbyśmy chcieli. Podjęto decyzję o pominięciu wydań z kwietnia i maja, aby umożliwić zespołowi głównemu integrację i testowanie nowego zestawu zmian łamiących kompatybilność. Po drodze wykorzystano dedykowane kanały komunikacji ze społecznością, aby zapewnić, że wydanie z czerwca 2018 (0.56.0) będzie jak najłatwiejsze do przyjęcia dla tych, którzy cierpliwie czekali na stabilną wersję.

Czy 0.56.0 jest idealne? Nie, jak każdy inny kawałek oprogramowania: ale osiągnęliśmy punkt, w którym kompromis między "czekaniem na większą stabilność" a "testowanie dało pozytywne wyniki, więc możemy iść do przodu" sprawił, że czujemy się gotowi do wydania. Ponadto wiemy o kilku problemach nie rozwiązanych w końcowym wydaniu 0.56.0. Większość programistów nie powinna mieć problemów z aktualizacją do 0.56.0. Dla tych, których blokują wspomniane problemy, mamy nadzieję zobaczyć was w naszych dyskusjach i z niecierpliwością czekamy na współpracę z wami nad rozwiązaniem tych kwestii.

Możecie uznać 0.56.0 za fundamentalny element budujący bardziej stabilny framework: minie prawdopodobnie tydzień lub dwa powszechnego użytkowania, zanim wszystkie skrajne przypadki zostaną wygładzone, ale doprowadzi to do jeszcze lepszego wydania z lipca 2018 (0.57.0).

Chcielibyśmy zakończyć tę sekcję, dziękując wszystkim 67 współtwórcom, którzy pracowali nad łącznie 818 commitami (!), co pomoże uczynić wasze aplikacje jeszcze lepszymi 👏.

A teraz, bez zbędnych ceregieli...

Najważniejsze zmiany

Babel 7

Jak zapewne wiecie, narzędzie transpilujące, które pozwala nam wszystkim korzystać z najnowszych i najlepszych funkcji JavaScriptu, Babel, przenosi się wkrótce do wersji 7. Ponieważ ta nowa wersja wprowadza ważne zmiany, uznaliśmy, że teraz jest dobry moment na aktualizację, umożliwiając Metro wykorzystanie jego ulepszeń.

Jeśli napotkacie problemy podczas aktualizacji, zapoznajcie się z odpowiednią sekcją dokumentacji.

Modernizacja wsparcia dla Androida

Na Androida zmieniło się wiele wokół narzędzi. Zaktualizowaliśmy do Gradle 3.5, Android SDK 26, Fresco do 1.9.0 oraz OkHttp do 3.10.0, a nawet cel NDK do API 16. Te zmiany powinny przejść bezproblemowo i przyspieszyć budowanie. Co ważniejsze, pomogą spełnić nowe wymagania Sklepu Play, które wchodzą w życie w przyszłym miesiącu.

W związku z tym szczególnie dziękujemy Dulmandakh za liczne PR-y, które to umożliwiły 👏.

W tym kierunku trzeba jeszcze podjąć pewne kroki, a przyszłe plany i dyskusje o aktualizacji wsparcia dla Androida możecie śledzić w dedykowanym wątku (oraz w osobnym dotyczącym JSC).

Nowy Node, Xcode, React i Flow – ach, co za różnorodność!

Node 8 stał się teraz standardem dla React Native. Już wcześniej był testowany, ale postawiliśmy na niego pełną parą, gdy Node 6 wszedł w tryb utrzymania. React również zaktualizowaliśmy do wersji 16.4, która przynosi mnóstwo poprawek.

Wycofujemy wsparcie dla iOS 8, ustawiając iOS 9 jako najstarszą obsługiwaną wersję. Nie przewidujemy problemów, ponieważ każde urządzenie z iOS 8 można zaktualizować do iOS 9. Ta zmiana pozwoliła nam usunąć rzadko używany kod obejść dla starszych urządzeń z iOS 8.

Łańcuch narzędzi CI został zaktualizowany do Xcode 9.4, co zapewnia uruchamianie testów iOS na najnowszych narzędziach deweloperskich Apple.

Zaktualizowaliśmy do Flow 0.75 dla nowego formatu błędów, cenionego przez wielu deweloperów. Dodaliśmy też typy dla wielu kolejnych komponentów. Jeśli jeszcze nie wymuszasz typowania statycznego, rozważ użycie Flow do wykrywania problemów podczas kodowania zamiast w runtime.

I wiele innych rzeczy...

Na przykład YellowBox został zastąpiony nową implementacją znacznie ułatwiającą debugowanie.

Pełną listę zmian znajdziesz w changelogu. Pamiętaj też o sprawdzeniu przewodnika aktualizacji przed migracją do nowej wersji.


Na koniec: od tego tygodnia zespół React Native wznawia comiesięczne spotkania. Będziemy na bieżąco informować o poruszanych tematach i uwzględniać wasze opinie w przyszłych dyskusjach.

Miłego kodowania wszystkim!

Lorenzo, Ryan i cały zespół React Native

PS: jak zawsze, przypominamy że React Native nadal ma wersję 0.x ze względu na wiele trwających zmian - więc pamiętajcie przy aktualizacji, że coś może nadal się wywrócić lub nie działać. Pomagajcie sobie nawzajem przy zgłaszaniu issue i wysyłaniu PR-ów - i pamiętajcie o przestrzeganiu Kodeksu Postępowania: po drugiej stronie ekranu zawsze stoi człowiek.