Aplikacja na iOS i Android posiada wg. mnie nieco denerwującą przypadłość. Mianowicie we wszystkich dialogach gdzie ustawia się czas aplikacja po kliknięciu na pole zawierające godzinę pokazuje (na Android w okienku tzw. Time Picker; na iOS bodajże UIDatePicker) czas odczytany z telefonu zamiast z pola na ekranie.
Utarło się, że edycja pól w osobnych okienkach dialogowych wyświetla aktualną wartość danego pola a nie wartość domyślną. Aplikacja ExtaLife natomiast za każdym razem umieszcza w dialogu edycyjnym wartość domyślną odczytaną z zegara telefonu. Jest to o tyle denerwujące, że przy re konfiguracji pól z godziną, aby zmienić ustawiony wcześniej czas nawet o jedną minutę - trzeba znowu od początku time pickerem przewinąć godziny i minuty do pożądanej.
Propozycja zmiany: aby aplikacja była bardziej user friendly i zachowywała się jak standardy w branży wyznaczają - należy w dialogach edycji czasu podawać domyślnie wartość która aktualnie jest zapisana w polu. Ta wartość i tak jest już odczytana z kontrolera, ponieważ jest wyświetlana na ekranie aplikacji.
Nie widzę więc problemu, aby zmienić domyślną wartość (aktualna godzina) na wartość odczytaną z kontrolera.
Aby nie psuć zanadto user-experience dla wprowadzania wartości do pola po raz pierwszy - można zrobić prosty warunek - jeśli pole ma wartość inicjalną tzn. pustą lub umówioną inicjalną (dla czasu np godzina 0:00) - to pobieramy aktualną godzinę. Jeśli pole już zawiera wartość nieinicjalną - podajemy tą wartość do Time Pickera.
To samo zachowanie można przenieść na pola z datami, a najlepiej na wszystkie pola w aplikacji, ale najbardziej zależy mi jednak na czasie i dacie, ponieważ rekonfiguracja wymaga przewijania paluchami długiej listy wartości za każdym razem gdy chcemy zrobić nawet drobną zmianę wartości.
Zmiana dla godziny i daty nie wydaje się zbyt skomplikowana po przyjrzeniu się kodowi źródłowemu. Programisto Android - challenge accepted?