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.
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.
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.
Komentarze
Prześlij komentarz