Przejdź do treści głównej

React Native Monthly #2

· 8 minut czytania
Tomislav Tenodi
Product Manager w Shoutem
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 →

Kontynuujemy miesięczne spotkania React Native! Tym razem dołączyli do nas przedstawiciele Infinite Red, twórcy konferencji Chain React poświęconej React Native. Ponieważ większość uczestników występowała na Chain React, przełożyliśmy spotkanie o tydzień. Nagrania prelekcji zostały opublikowane online i gorąco zachęcam do ich obejrzenia. Zobaczmy, co słychać u naszych zespołów.

Zespoły

Na drugim spotkaniu gościliśmy przedstawicieli 9 zespołów:

Notatki

Oto podsumowania od każdego zespołu:

Airbnb

Callstack

  • Mike Grabowski jak zwykle zarządza miesięcznymi wydaniami React Native, w tym kilkoma opublikowanymi wersjami beta. Szczególnie skupia się na publikacji builda v0.43.5 w npm, ponieważ to umożliwia korzystanie użytkownikom Windows!

  • Prace nad Haul postępują powoli, ale systematycznie. Trwa proces dodawania HMR przez pull request, a inne ulepszenia już zostały wdrożone. Ostatnio kilku liderów branży przyjęło to rozwiązanie. Prawdopodobnie planowane jest rozpoczęcie płatnej pracy na pełen etat w tym obszarze.

  • Michał Pierzchała z zespołu Jest dołączył w tym miesiącu do Callstack. Będzie pomagał w utrzymaniu Haul i prawdopodobnie pracował nad Metro Bundler oraz Jest.

  • Satyajit Sahoo jest teraz z nami, hurra!

  • Przygotowujemy kilka ciekawych rzeczy z naszego działu OSS. W szczególności pracujemy nad integracją Material Palette API z React Native. Planujemy wreszcie wydać nasz natywny zestaw dla iOS, który ma zapewnić wygląd i działanie identyczne jak natywnych komponentów.

Expo

  • Ostatnio uruchomiliśmy Native Directory, aby ułatwić odkrywanie i ocenę bibliotek w ekosystemie React Native. Problem: mnóstwo bibliotek, trudno je przetestować, konieczne ręczne stosowanie heurystyk i nie od razu wiadomo, które są po prostu najlepsze. Trudno też stwierdzić kompatybilność z CRNA/Expo. Native Directory próbuje rozwiązać te problemy. Sprawdź i dodaj swoją bibliotekę. Lista bibliotek jest tutaj. To dopiero nasza pierwsza wersja – chcemy, by to narzędzie należało do społeczności, nie tylko do ludzi z Expo. Pomóż, jeśli uważasz to za wartościowe!

  • Dodaliśmy wstępne wsparcie instalacji pakietów npm w Snack z Expos SDK 19. Daj znać o problemach – wciąż pracujemy nad błędami. Razem z Native Directory ułatwi to testowanie bibliotek zależnych tylko od JS lub zawartych w Expo SDK. Przetestuj:

  • Wydaliśmy Expo SDK19 z licznymi ulepszeniami oraz zaktualizowanym JSC dla Androida.

  • Pracujemy z Alexanderem Kotliarskyim nad poradnikiem w dokumentacji z listą wskazówek, jak poprawić UX aplikacji. Dołącz i dodaj swoje pomysły!

  • Kontynuujemy prace nad: audio/wideo, kamerą, gestami (ze Software Mansion, react-native-gesture-handler), integracją GL z kamerą. Planujemy wdrożenie części funkcji w SDK20 (sierpień) oraz znaczące ulepszenia innych. Rozpoczynamy też budowę infrastruktury w kliencie Expo do pracy w tle (geolokalizacja, audio, powiadomienia itp.).

  • Adam Miskiewicz poczynił postępy w imitacji przejść z UINavigationController w react-navigation. Zobacz wczesną wersję w jego tweecie – wkrótce premiera. Sprawdź też MaskedViewIOS, który włączył do głównego kodu. Jeśli masz umiejętności, zaimplementuj MaskedView dla Androida – byłoby świetnie!

Facebook

  • Facebook wewnętrznie eksperymentuje z osadzaniem natywnych komponentów ComponentKit i Litho wewnątrz React Native.

  • Wkład w React Native jest bardzo mile widziany! Jeśli zastanawiasz się, jak możesz się przyczynić, poradnik "Jak wnosić swój wkład" opisuje nasz proces rozwojowy i przedstawia kroki do wysłania swojego pierwszego pull requesta. Istnieją również inne sposoby wniesienia wkładu, które nie wymagają pisania kodu, jak np. triaż zgłoszeń (issues) lub aktualizacja dokumentacji.

    • W chwili pisania React Native ma 635 otwartych zgłoszeń i 249 otwartych pull requestów. To przytłacza naszych maintainerów, a gdy problemy są naprawiane wewnętrznie, trudno jest upewnić się, że odpowiednie zadania są aktualizowane.
    • Nie jesteśmy pewni, jakie podejście byłoby najlepsze, aby to ogarnąć przy jednoczesnym zadowoleniu społeczności. Niektóre (ale nie wszystkie!) opcje obejmują zamykanie nieaktualnych zgłoszeń, nadanie znacznie większej liczbie osób uprawnień do zarządzania zgłoszeniami oraz automatyczne zamykanie zgłoszeń niespełniających szablonu. Napisaliśmy przewodnik "Czego oczekiwać od maintainerów", aby ustalić oczekiwania i uniknąć niespodzianek. Jeśli masz pomysły, jak możemy ulepszyć to doświadczenie dla maintainerów, jednocześnie zapewniając, że osoby zgłaszające problemy i pull requesty czują się wysłuchane i docenione – daj nam znać!

GeekyAnts

  • Zaprezentowaliśmy Designer Tool współpracujący z plikami React Native na Chain React. Wielu uczestników zapisało się na listę oczekujących.

  • Przyglądamy się również innym rozwiązaniom cross-platformowym jak Google Flutter (nadchodzi poważne porównanie), Kotlin Native i Apache Weex, aby zrozumieć różnice architektoniczne i co możemy się od nich nauczyć, by poprawić ogólną wydajność React Native.

  • Przeszliśmy na react-navigation w większości naszych aplikacji, co poprawiło ogólną wydajność.

  • Ogłosiliśmy również NativeBase Market – platformę z komponentami i aplikacjami React Native (dla developerów i przez developerów).

Infinite Red

Microsoft

  • CodePush został zintegrowany z Mobile Center. Obecni użytkownicy nie zauważą zmian w swoim workflow.

    • Niektórzy zgłaszali problem z duplikowaniem aplikacji – mieli już aplikację w Mobile Center. Pracujemy nad rozwiązaniem, ale jeśli masz dwie aplikacje, daj nam znać, a połączymy je dla Ciebie.
  • Mobile Center obsługuje teraz powiadomienia push (Push Notifications) dla CodePush. Pokazaliśmy też, jak kombinacja Powiadomień i CodePush może być użyta do testów A/B aplikacji – coś unikalnego dla architektury ReactNative.

  • VS Code ma znany problem z debugowaniem ReactNative – następna wersja rozszerzenia, która ukaże się za kilka dni, naprawi ten błąd.

  • Ponieważ wiele innych zespołów w Microsoft również pracuje nad React Native, postaramy się o lepszą reprezentację wszystkich grup na następnym spotkaniu.

Shoutem

  • Zakończyliśmy proces upraszczania rozwoju React Native na Shoutem. Możesz używać wszystkich standardowych komend react-native podczas tworzenia aplikacji na Shoutem.

  • Włożyliśmy dużo pracy w ustalenie najlepszego podejścia do profilowania w React Native. Duża część dokumentacji jest nieaktualna, więc postaramy się przygotować pull request do oficjalnej dokumentacji lub przynajmniej opisać nasze wnioski w poście na blogu.

  • Przestawiamy nasze rozwiązanie nawigacyjne na react-navigation, więc wkrótce możemy podzielić się uwagami.

  • Wydaliśmy nowy komponent HTML w naszym zestawie narzędzi, który przekształca surowy HTML w drzewo komponentów React Native.

Wix

  • Rozpoczęliśmy pracę nad pull requestem do Metro Bundler z funkcjami react-native-repackager. Zaktualizowaliśmy react-native-repackager do obsługi RN 44 (którego używamy w produkcji). Wykorzystujemy go w naszej infrastrukturze mockującej dla detox.

  • Przez ostatnie trzy tygodnie pokrywaliśmy aplikację Wix testami detox. To niesamowite doświadczenie pokazujące, jak redukować manualne QA w aplikacji tej skali (ponad 40 inżynierów). Naprawiliśmy kilka problemów z detoxem - właśnie opublikowaliśmy nową wersję. Z przyjemnością donoszę, że spełniamy założenia "polityki zerowej flakiness" i testy konsekwentnie przechodzą.

  • Detox dla Androida posuwa się naprzód. Otrzymujemy znaczącą pomoc od społeczności. Spodziewamy się wstępnej wersji za około dwa tygodnie.

  • DetoxInstruments, nasze narzędzie do testowania wydajności, rozrosło się bardziej niż pierwotnie planowaliśmy. Planujemy przekształcić je w samodzielne narzędzie niepowiązane ściśle z detoxem. Pozwoli ono analizować wydajność aplikacji iOS w ogóle. Będzie też zintegrowane z detoxem, co umożliwi automatyzację testów metryk wydajności.

Kolejne spotkanie

Następne spotkanie odbędzie się 16 sierpnia 2017 roku. Ponieważ to dopiero nasze drugie spotkanie, chcielibyśmy wiedzieć, czy te notatki przynoszą korzyść społeczności React Native. Zachęcamy do kontaktu na Twitterze z sugestiami, jak możemy ulepszyć rezultaty tych spotkań.