Switch to bardzo charakterystyczny element interfejsu Androida, który służy do przełączania między dwoma stanami, np. włącz/wyłącz, tak/nie. Na screenie wyraźnie widać typowy suwak z okrągłym przyciskiem, który przemieszcza się na boki – dokładnie tak działa Switch. W kodzie XML także pojawiają się atrybuty takie jak text, textOff, textOn – one są właściwe właśnie dla komponentu Switch, bo pozwalają podpisać każdy ze stanów na przełączniku. Praktycznie w każdej nowoczesnej aplikacji spotyka się Switcha do wyrażania zgody, akceptacji regulaminu albo przełączania opcji (np. tryb ciemny). Z mojego doświadczenia to jest dużo wygodniejsze dla użytkownika niż klasyczne checkboxy, bo od razu widać, który stan jest aktywny – a UX-owcy też bardzo to chwalą. Warto pamiętać, że Switch ma swoje domyślne style zgodne z Material Design, więc aplikacja wygląda nowocześnie bez dodatkowej pracy. Dobrą praktyką jest wykorzystywanie Switcha właśnie wtedy, gdy potrzebujemy zmiany binarnej, a nie kilku opcji do wyboru. Jeśli ktoś myśli o bardziej zaawansowanych interfejsach, to Switch pozwala łatwo reagować na zmianę stanu w kodzie Java/Kotlin poprzez listener OnCheckedChangeListener. No i jest to jeden z tych komponentów, które naprawdę warto znać, bo są podstawą w każdym projekcie mobilnym.
W tym przykładzie można łatwo pomylić niektóre elementy interfejsu Androida, bo każdy z nich na pierwszy rzut oka wydaje się być jakimś rodzajem suwaka albo przełącznika. Jednak warto przyjrzeć się szczegółom. SeekBar służy do wyboru wartości w zakresie – najczęściej spotyka się go przy ustawianiu głośności czy jasności, posiada linię i przesuwany wskaźnik, ale nie ma opcji podpisania stanów typu „TAK” i „NIE”, więc zupełnie nie pasuje do binarnego wyboru. Spinner natomiast to coś jak rozwijana lista – pojawia się strzałka w dół i umożliwia wybór spośród wielu opcji, a nie przełączanie się tylko pomiędzy dwoma wartościami. RatingBar to już całkiem inna bajka – służy do oceniania, na przykład w postaci gwiazdek, i nie występuje tam przełącznik w prawo/lewo, więc nie da się uzyskać efektu widocznego na obrazku. Najczęstszym błędem przy takich pytaniach jest kierowanie się tylko nazwą komponentu – SeekBar kojarzy się z przesuwaniem, ale nie chodzi tu o zakres. Czasem też Spinner myli się z przełącznikiem, jeśli ktoś nie kojarzy dokładnej ikonki. Warto zawsze sprawdzać, jakie atrybuty dostępne są dla danego komponentu i w jakich scenariuszach zaleca się ich używanie zgodnie z dokumentacją Androida. Branżowe standardy mówią jasno: Switch stosujemy do prostych zmian stanu, a inne elementy dobieramy odpowiednio do liczby możliwych wyborów. Z mojego punktu widzenia, dobre osadzenie elementu interfejsu wynika z poznania ich przeznaczenia i typowych zastosowań – to naprawdę pomaga uniknąć takich pomyłek w przyszłości.