Elementy budowania UI

Spójność

Jak utrzymujemy spójność danych w różnych częściach ekranu? Jak i kiedy uspójnić lokalne dane z tymi na serwerze i na odwrót?

Responsywność

Ludzie są w stanie tolerować brak wizualnej odpowiedzi na ich akcje przez ograniczony czas. (16ms, 100ms)

Latencja

Jak możemy “elegancko” rozwiązać kwestię latencji bez wyświetlania “kaskady” spinnerów albo pustych widoków? Jak uniknąć skakania layoutu?

Nawigacja

Jak zaprojektować aplikację tak, by radziła sobie z arbitralnym nawigowaniem bez utraty ważnego kontekstu?

Dezaktualizacja

caching powoduje także problemy. Cache się dezaktualizuje

Entropia

W każdym momencie nasza aplikacja może znajdować się w jednym z zaskakująco wysokiej liczby możliwych stanów.

Priorytety

W jaki sposób sprawić, aby niezależne widgety współpracowały, a nie rywalizowały ze sobą o zasoby? (chodzi o widoczność, miejsce we viewport)

Dostępność

Kontrast, nawigacja klawiaturą. Jak sprawić, żeby dostępność była domyślnym założeniem, a nie tylko pozostawała w sferze refleksji?

Internacjonalizacja

Jak wspierać różne języki bez poświęcenia latencji i responsywności?

Dostarczanie

Jak zdecydować, w którym momencie wprowadzić latencję? (Szybka odpowiedź + dociąganie danych i kodu)

Odporność

Jak pisać kod tak, aby błędy renderowania i pobierania danych były izolowane i pomimo ich pojawienia, reszta aplikacji mogła dalej działać?

Abstrakcja

Jak stworzyć abstrakcję, która ukrywa implementację szczegółów różnych części UI? Jak uniknąć ponownego pojawiania się, wraz z rozrostem aplikacji, problemów, które dopiero co rozwiązaliśmy?