Android MVVM

 Dobrze Cię widzieć w kolejnym dniu świątecznej akcji "Rekrutacja bez stresu". Dzisiejsze pytanie jest następujące:

Jakie jest główne przeznaczenie architektury MVVM? Jakie płyną korzyści z jej stosowania?

Poziom: Regular

Omówienie tego zadania otrzymasz w kolejnym mailu.

Znasz odpowiedź?
Prześlij mi ją odpowiadając na tego maila, aby zdobyć punkty w zabawie!


Teraz pora na wyjaśnienie poprzedniego pytania:

Jak zabezpieczyć się przed NullPointerException w Kotlinie?

Poziom: Junior

Kotlin samodzielnie zabezpiecza nas przed NullPointerException i żeby otrzymać ten wyjątek pisząc program w tym właśnie języku, trzeba się naprawdę trochę postarać. Programiści Kotlina za jeden z głównych celów postawili sobie rozwiązanie problemu NPE i trzeba przyznać, że udało im się to całkiem nieźle. Typy zostały podzielone na non-null i nullable. Typ opcjonalny (mogący zwracać nulla) ma na końcu znak zapytania. Jeśli w kodzie nie mamy zrobionej odpowiednej obsługi na wypadek nulla, to kompilator powiadomi nas o tym zwracając błąd.

Jakie są sposoby na obsługę wartości nullable w Kotlinie?

Safe call
Aby bezpiecznie odwołać się do wartości, która może być nullem, należy skorzystać z symbolu ?.. Jeśli chcemy wykonać jakąś akcję tylko w przypadku, gdy dany obiekt nie jest nullem, możemy na nim wywołać funkcję let.

Safe call

Klasyczny blok if else
To co wcześniej sprawdzało się w Javie, również działa w Kotlinie. Wciąż mamy możliwość weryfikacji czy dana wartość jest nullem przy użyciu bloku if else i na tej podstawie możemy podjąć odpowiednie działanie.

Dwa wykrzykniki
Gdy jesteśmy pewni, że dany typ oznaczony jako nullable nigdy nie będzie nullem, możemy zaznaczyć to kompilatorowi przy pomocy symbolu !!. Należy jednak pamiętać, że jeśli z jakiegoś powodu pojawi się tam wartość null, to otrzymamy właśnie wspomniany wyżej NullPointerException i nasza aplikacja zakończy swoje działanie. Z tego też względu zaleca się korzystania z tego operatora z rozwagą.

Elvis operator
Gdy chcemy ustawić domyślną wartość w przypadku, gdy tak właściwa okaże się nullem, możemy posiłkować się operatorem Elvisa ?:. Jeśli to co znajduje się po lewej stronie tego operatora będzie równe null, to zostanie wykonany kod znajdujący się po jego prawej stronie.

Elvis operator

O tym warto pamiętać
Mimo, że niezwykle trudno otrzymać NPE w Kotlinie, to jednak jest to możliwe. Najczęstszym powodem występowania tego problemu jest niewłaściwa serializacja obiektów pochodzących z serwera. Wystarczy, że na oczekiwany typ not-null otrzymamy nulla i kłopoty gotowe! Implementując warstwę danych pamiętaj, aby dogadać się co do zwracanych typów z backendem.


Regulamin

Szczegółowy opis całej akcji "Rekrutacja bez stresu" wraz z informacją o sposobie zdobywania punktów znajduje się pod poniższym linkiem:
[Regulamin]

Dzięki wielkie za przeczytanie tego maila do końca i udział w całym wydarzeniu. Bardzo się cieszę, że jesteś z nami i chcesz rozwijać swoje umiejętności tworzenia aplikacji na Androida.


Zobacz też na stronę naszych partnerów:

Komentarze

Popularne posty z tego bloga

Nazwa i nowości w ich hostingu

CodeSandbox plans are changing!

Copymatic Gifts