Przejdź do treści głównej

Ogłaszamy React Native 0.62 z obsługą Flippera

· 5 minut czytania
Rick Hanlon
React Native Core w Facebooku
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 →

Dziś wydajemy React Native w wersji 0.62, która domyślnie zawiera obsługę Flippera.

To wydanie następuje w trakcie globalnej pandemii. Publikujemy tę wersję dziś, aby docenić pracę setek współtwórców, którzy umożliwili to wydanie, i zapobiec zbytniemu odsunięciu się od gałęzi głównej. Prosimy o wyrozumiałość dla ograniczonej dostępności współtwórców do pomocy przy problemach i rozważenie przełożenia aktualizacji, jeśli to konieczne.

Flipper domyślnie

Flipper to narzędzie dla deweloperów do debugowania aplikacji mobilnych. Cieszy się popularnością w społecznościach Androida i iOS, a w tym wydaniu domyślnie włączyliśmy jego obsługę dla nowych i istniejących aplikacji React Native.

Zrzut ekranu Flippera dla React Native

Flipper oferuje następujące funkcje od ręki:

  • Metro Actions: Przeładuj aplikację i wywołaj menu deweloperskie bezpośrednio z paska narzędzi.

  • Crash Reporter: Przeglądaj raporty o awariach z urządzeń Android i iOS.

  • React DevTools: Korzystaj z najnowszej wersji React DevTools obok innych narzędzi.

  • Network Inspector: Przeglądaj wszystkie żądania sieciowe wysyłane przez aplikacje na urządzeniu.

  • Metro and Device Logs: Przeglądaj, wyszukuj i filtruj logi z Metro oraz urządzenia.

  • Native Layout Inspector: Przeglądaj i edytuj natywny układ generowany przez renderer React Native.

  • Database and Preference Inspectors: Przeglądaj i edytuj bazy danych oraz preferencje urządzenia.

Dodatkowo, ponieważ Flipper to rozszerzalna platforma, zapewnia marketplace pobierający wtyczki z NPM, co umożliwia publikowanie i instalację niestandardowych wtyczek dopasowanych do Twoich workflow. Zobacz dostępne wtyczki tutaj.

Więcej informacji znajdziesz w dokumentacji Flippera.

Nowe funkcje trybu ciemnego

Dodaliśmy nowy moduł Appearance zapewniający dostęp do preferencji wyglądu użytkownika, takich jak preferowany schemat kolorów (jasny lub ciemny).

const colorScheme = Appearance.getColorScheme();
if (colorScheme === 'dark') {
// Use dark color scheme
}

Dodaliśmy także hook do subskrybowania aktualizacji stanu preferencji użytkownika:

import {Text, useColorScheme} from 'react-native';

const MyComponent = () => {
const colorScheme = useColorScheme();
return <Text>useColorScheme(): {colorScheme}</Text>;
};

Więcej informacji znajdziesz w dokumentacji Appearance i useColorScheme.

Przeniesienie Apple TV do react-native-tvos

W ramach naszej inicjatywy Lean Core i aby dostosować Apple TV do innych platform takich jak React Native Windows i React Native macOS, zaczęliśmy usuwać kod specyficzny dla Apple TV z rdzenia.

Od teraz obsługa Apple TV w React Native będzie utrzymywana w repozytorium react-native-community/react-native-tvos wraz z odpowiadającym pakietem NPM react-native-tvos. To pełny fork głównego repozytorium zawierający wyłącznie zmiany potrzebne do obsługi Apple TV.

Wydania react-native-tvos będą oparte na publicznych wydaniach React Native. Dla wydania 0.62 react-native prosimy o aktualizację projektów Apple TV do wersji react-native-tvos 0.62.

Większe wsparcie przy aktualizacji

Gdy wydano wersję 0.61, społeczność wprowadziła nowe narzędzie Upgrade Helper wspierające programistów w aktualizowaniu React Native. Upgrade Helper pokazuje różnice między twoją obecną wersją a docelową, co pozwala zobaczyć zmiany potrzebne do przeprowadzenia aktualizacji.

Nawet z tym narzędziem podczas aktualizacji mogą pojawić się problemy. Dlatego dziś wprowadzamy dedykowane wsparcie ogłaszając Upgrade-Support. To tracker GitHub, gdzie użytkownicy mogą zgłaszać problemy związane z aktualizacją projektów, aby otrzymać pomoc od społeczności.

Stale pracujemy nad poprawą procesu aktualizacji i mamy nadzieję, że te narzędzia zapewnią użytkownikom wsparcie w nietypowych przypadkach, których jeszcze nie przewidzieliśmy.

Inne ulepszenia

  • LogBox: Nowe środowisko błędów i ostrzeżeń w LogBox dodajemy jako opcję do włączenia; by je aktywować, dodaj require('react-native').unstable_enableLogBox() do pliku index.js.

  • React DevTools v4: Ta zmiana obejmuje aktualizację do najnowszych React DevTools, które oferują znaczną poprawę wydajności, lepszą nawigację i pełne wsparcie dla React Hooks.

  • Ulepszenia dostępności: Wprowadziliśmy poprawki w dostępności, w tym dodanie accessibilityValue, brakujących właściwości w Touchables, onSlidingComplete zdarzeń dostępności oraz zmianę domyślnej roli komponentu Switch z "button" na "switch".

Zmiany łamiące kompatybilność

  • Usunięcie PropTypes: Usuwamy propTypes z podstawowych komponentów, aby zmniejszyć wpływ React Native core na rozmiar aplikacji i promować statyczne systemy typów sprawdzane podczas kompilacji zamiast w czasie wykonania.

  • Usunięcie accessibilityStates: Usunęliśmy przestarzałą właściwość accessibilityStates na rzecz nowej właściwości accessibilityState, która semantycznie bogatszym sposobem przekazywania informacji o stanie komponentu do usług dostępności.

  • Zmiany w TextInput: Usunęliśmy onTextInput z TextInput, ponieważ jest rzadko używane, niezgodne ze standardem W3C i trudne do implementacji w Fabric. Usunęliśmy także nieudokumentowaną właściwość inputView oraz selectionState.

Przestarzałe funkcje

  • AccessibilityInfo.fetch było już przestarzałe, ale w tej wersji dodaliśmy ostrzeżenie.

  • Ustawienie useNativeDriver jest teraz wymagane, aby umożliwić zmianę domyślnej wartości w przyszłości.

  • Referencja (ref) komponentu Animated jest teraz jego wewnętrznym komponentem, a getNode zostało oznaczone jako przestarzałe.

Podziękowania

Dziękujemy setkom współtwórców, którzy pomogli stworzyć wersję 0.62!

Aby zobaczyć wszystkie aktualizacje, zajrzyj do changeloga dla wersji 0.62.