RxSwift i coroutines w Kotlinie - przedmiot do wyboru w zakresie programowania mobilnego od AGIMA i GeekBrains

RxSwift i coroutines w Kotlinie - przedmiot do wyboru w zakresie programowania mobilnego od AGIMA i GeekBrains

Wiedza jest dobra, po prostu świetna. Ale potrzebna jest także praktyka, aby móc wykorzystać otrzymane dane, przenosząc je ze statusu „pasywnego przechowywania” do statusu „aktywnego wykorzystania”. Niezależnie od tego, jak dobre jest wykształcenie teoretyczne, nadal wymagana jest praca „w terenie”. Powyższe dotyczy niemal każdego kierunku studiów, w tym oczywiście tworzenia oprogramowania.

W tym roku GeekBrains w ramach wydziału rozwoju mobilnego uczelni internetowej GeekUniversity rozpoczął współpracę z agencją interaktywną AGIMA, której zespół tworzą profesjonalni programiści (tworzą złożone projekty o dużym obciążeniu, portale korporacyjne i aplikacje mobilne i to wszystko). AGIMA i GeekBrains stworzyły przedmiot do wyboru umożliwiający głębokie zgłębienie praktycznych zagadnień związanych z tworzeniem aplikacji mobilnych.

Któregoś dnia rozmawialiśmy z Igorem Vedeneevem, specjalistą od iOS, i Alexandrem Tizikiem, specjalizującym się w Androidzie. Dzięki nim zajęcia fakultatywne z zakresu rozwoju mobilnego zostały wzbogacone o zajęcia praktyczne specjalny kurs na frameworku RxSwift и współprogramy w Kotlinie. W tym artykule programiści mówią o znaczeniu każdego obszaru dla programistów.

Programowanie reaktywne w iOS na przykładzie RxSwift

RxSwift i coroutines w Kotlinie - przedmiot do wyboru w zakresie programowania mobilnego od AGIMA i GeekBrains
Nauczyciel wybieralny Igor Vedeneev: „Dzięki RxSwift Twoja aplikacja będzie działać”

Jakie informacje otrzymują studenci w trakcie zajęć fakultatywnych?

Opowiadamy nie tylko o możliwościach frameworka, ale także pokazujemy jak go wykorzystać w klasycznej kombinacji MVVM + RxSwift. Omówiono także kilka praktycznych przykładów. Aby skonsolidować uzyskane dane, piszemy aplikację możliwie najbardziej zbliżoną do terenowych warunków pracy. Będzie to aplikacja do wyszukiwania muzyki Interfejs API wyszukiwania w iTunes. Tam zastosujemy wszystkie najlepsze praktyki, a także rozważymy prostszą opcję użycia RxSwift w paradygmacie MVC.

RxSwift - po co programiście iOS potrzebny jest ten framework, jak ułatwia życie programiście?

RxSwift usprawnia pracę ze strumieniami zdarzeń i połączeniami między obiektami. Najprostszym i najbardziej oczywistym przykładem są wiązania: na przykład możesz zaktualizować interfejs, po prostu ustawiając nowe wartości w zmiennej w viewModelu. W ten sposób interfejs staje się oparty na danych. Dodatkowo RxSwift umożliwia opisanie systemu w stylu deklaratywnym, co pozwala uporządkować kod i zwiększyć jego czytelność. Wszystko to pomaga efektywniej rozwijać aplikacje.

Dla programisty znajomość frameworka jest również dobrym plusem w CV, ponieważ na rynku ceniona jest znajomość programowania reaktywnego, a zwłaszcza doświadczenie z RxSwift.

Dlaczego warto wybrać tę konkretną platformę, a nie inne?

Największą społeczność ma RxSwift. Oznacza to, że istnieje większa szansa, że ​​problem, przed którym stoi programista, został już przez kogoś rozwiązany. Do tego duża ilość wiązań od razu po wyjęciu z pudełka. Co więcej, RxSwift jest częścią ReactiveX. Oznacza to, że istnieje analogia np. dla Androida (RxJava, RxKotlin), a współpracownicy w warsztacie mogą rozmawiać ze sobą tym samym językiem, mimo że jedni pracują na iOS, inni na Androidzie.

Framework jest na bieżąco aktualizowany, poprawiane są drobne błędy, dodawana jest obsługa funkcji z nowych wersji Swifta oraz dodawane są nowe wiązania. Ponieważ RxSwift jest oprogramowaniem typu open source, możesz śledzić wszystkie zmiany. Co więcej, istnieje możliwość ich samodzielnego dodania.

Gdzie należy stosować RxSwift?

  1. Wiązania. Z reguły mówimy o interfejsie użytkownika, możliwości zmiany interfejsu użytkownika, tak jakby reagował na zmiany danych, a nie informował bezpośrednio interfejsu, że nadszedł czas na aktualizację.
  2. Zależności pomiędzy komponentami i operacjami. Tylko przykład. Musimy uzyskać listę danych z sieci. W rzeczywistości nie jest to taka prosta operacja. Aby to zrobić, musisz wysłać żądanie, zmapować odpowiedź na tablicę obiektów, zapisać je w bazie danych i wysłać do interfejsu użytkownika. Z reguły za wykonanie tych operacji odpowiadają różne komponenty (kochamy i przestrzegamy zasad SOLID?). Mając pod ręką narzędzie takie jak RxSwift, możliwe staje się opisanie CO system zrobi i JAK to zrobi, będzie w innych miejscach. Dzięki temu osiąga się lepszą organizację kodu i zwiększa się jego czytelność. Relatywnie rzecz biorąc, kod można podzielić na spis treści i samą książkę.

Współprogramy w Kotlinie

RxSwift i coroutines w Kotlinie - przedmiot do wyboru w zakresie programowania mobilnego od AGIMA i GeekBrains
Nauczyciel zajęć fakultatywnych Alexander Tizik: „Nowoczesny rozwój wymaga nowoczesnych środków technicznych”

Czego będzie się uczyć na wydziale GeekBrains w ramach markowego kwartału?

Teoria, porównania z innymi podejściami, praktyczne przykłady w czystym Kotlinie i modelu aplikacji na Androida. Jeśli chodzi o praktykę, studentom zostanie pokazana aplikacja, w której wszystko jest powiązane z współprogramami. Faktem jest, że większość aplikacji to obliczenia całkowicie asynchroniczne i równoległe. Ale współprogramy Kotlina pozwalają na zredukowanie mylącego, heterogenicznego lub zbyt złożonego i wymagającego wydajności kodu do jednego, łatwego do zrozumienia stylu, zyskując korzyści w zakresie prawidłowego wykonania i wydajności.

Nauczymy się pisać idiomatyczny kod w współprogramach, który rozwiązuje praktyczne problemy i jest zrozumiały na pierwszy rzut oka nawet bez głębokiej wiedzy o działaniu współprogramów (czego nie można powiedzieć o bibliotekach takich jak RxJava). Zrozumiemy także, jak wykorzystać bardziej złożone koncepcje, takie jak model aktora, do rozwiązywania bardziej złożonych problemów, takich jak hurtownia danych w koncepcji MVI.

Swoją drogą, kolejne dobre wieści. Podczas nagrywania zajęć do wyboru wydano aktualizację biblioteki Kotlin Coroutines, w której pojawiły się te zajęcia Flow - analogia typów Flowable и Observable z RxJava. Aktualizacja zasadniczo sprawia, że ​​funkcje współprogramów są kompletne z punktu widzenia twórcy aplikacji. To prawda, że ​​jest jeszcze sporo do poprawy: pomimo tego, że dzięki obsłudze współprogramów w kotlin/native, można już pisać wieloplatformowe aplikacje w Kotlinie i nie cierpieć na brak RxJava czy analogów w czystym Kotlinie, obsługa współprogramów w kotlin/native nie jest jeszcze ukończona. Na przykład nie ma koncepcji aktorów. Ogólnie rzecz biorąc, zespół Kotlina planuje wspierać bardziej złożone aktorów na wszystkich platformach.

Kotlin Coroutines - jak pomagają programiście Kotlin?

Współprogramy zapewniają doskonałą możliwość pisania kodu, który jest czytelny, łatwy w utrzymaniu i bezpieczny, asynchroniczny i współbieżny. Można także tworzyć adaptery dla innych asynchronicznych platform i podejść, które mogą być już używane w bazie kodu.

Czym Coroutines różnią się od wątków?

Zespół Kotlina nazywa lekkimi wątkami współprogramów. Ponadto współprogram może zwrócić pewną wartość, ponieważ w swej istocie współprogram jest zawieszonym obliczeniem. Nie zależy to bezpośrednio od wątków systemowych; wątki wykonują tylko współprogramy.

Jakie praktyczne problemy można rozwiązać za pomocą Coroutine, których nie można lub są trudne do rozwiązania przy użyciu „czystego” Kotlina?

Wszelkie asynchroniczne, równoległe, „konkurencyjne” zadania można dobrze rozwiązać za pomocą współprogramów - niezależnie od tego, czy chodzi o przetwarzanie kliknięć użytkowników, przejście do trybu online, czy subskrybowanie aktualizacji z bazy danych.

W czystym Kotlinie problemy te rozwiązuje się w taki sam sposób, jak w Javie - za pomocą tysięcy frameworków, z których każdy ma swoje zalety i wady, ale żaden z nich nie obsługuje poziomu językowego.

Podsumowując, warto stwierdzić, że oba przedmioty do wyboru (a także przedmioty główne) są aktualizowane zgodnie ze zmianami warunków zewnętrznych. Jeśli w językach lub frameworkach pojawią się ważne aktualizacje, nauczyciele biorą to pod uwagę i modyfikują program. Wszystko to pozwala, że ​​tak powiem, trzymać rękę na pulsie procesu rozwoju.

Źródło: www.habr.com

Dodaj komentarz