Postaw na użyteczność - Helion
Tłumaczenie: Anna Magiera
ISBN: 9788301207809
stron: 420, Format: ebook
Data wydania: 2019-09-24
Księgarnia: Helion
Cena książki: 84,00 zł
To, że jakaś aplikacja istnieje i działa nie oznacza, że ludzie od razu będą jej używać. Ważna jest użyteczność! Większość programistów aplikacji mobilnych staje się do pewnego stopnia projektantami. Opanowując zaledwie kilka podstawowych zasad tworzenia interfejsu użytkownika, może zadecydować o tym, czy aplikacja mobilna jest użyteczna, czy też nie. Postaw na użyteczność to przewodnik dla programistów zmagających się z projektowaniem aplikacji mobilnych. Popierając przykładami z własnej, wieloletniej praktyki, Matt Lacey, programista i projektant, opisuje łatwe do zastosowania techniki poprawiające użyteczność aplikacji. Unikając przeintelektualizowanych teorii projektowania, mówi, jak radzić sobie z przerwanym dostępem do sieci czy jak sprawić, aby wprowadzanie danych było intuicyjne. Przeczytaj tę książkę, a twoje aplikacje będą miały lepszy wygląd, twoi użytkownicy będą bardziej zadowoleni, a ty będziesz mógł przybić piątkę z kolegami z zespołu projektowego. O czym jest ta książka? - Rozumieniu użytkowników - Optymalizowaniu wejścia i wyjścia - Tworzeniu szybkich, responsywnych aplikacji - Rozwiązywaniu problemów z niestabilnym łączem - Zarządzaniu energią i zasobami Książka jest przeznaczona dla programistów pracujących nad aplikacjami natywnymi lub webowymi.
Osoby które kupowały "Postaw na użyteczność", wybierały także:
- Wzorce projektowe. Kurs video. Schematy rozwi 119,00 zł, (53,55 zł -55%)
- Wzorce komunikacji. Przewodnik dla programist 69,00 zł, (34,50 zł -50%)
- Uporz 49,90 zł, (24,95 zł -50%)
- Wzorce projektowe dla programist 67,00 zł, (33,50 zł -50%)
- Certyfikowany in 69,00 zł, (34,50 zł -50%)
Spis treści
Postaw na użyteczność eBook -- spis treści
- Okładka
- Strona tytułowa
- Strona redakcyjna
- Spis treści
- przedmowa
- podziękowania
- o książce
- 1. Wprowadzenie
- 1.1 Czym jest użyteczność i dlaczego ma znaczenie?
- 1.1.1 Użyteczność ma znaczenie dla każdego
- 1.1.2 Użyteczność, UX i projektowanie
- 1.1.3 Przepis na sukces
- 1.1.4 Użyteczność a intuicyjność
- 1.2 Lista sześciu komponentów wpływających na dobry odbiór aplikacji
- 1.2.1 Kontekst użycia podstawą projektowania aplikacji
- 1.2.2 Wejście obejmuje wszystkie sposoby, w jakie dane i informacje dostają się do aplikacji
- 1.2.3 Wyjście obejmuje to, co jest wyświetlane na ekranie, i to, co nie jest widoczne
- 1.2.4 Responsywność: sposób postrzegania danych wyjściowych
- 1.2.5 Łączność jest zmienna i nie zawsze gwarantowana
- 1.2.6 Zasoby są ograniczone i należy nimi zarządzać
- 1.3 Jak wykorzystać listę sześciu komponentów, żeby wpłynąć na tworzenie lepszych aplikacji
- 1.3.1 Przykład 1: klient poczty
- 1.3.2 Przykład 2: aplikacja informacyjna
- 1.3.3 Przykład 3: gra Obrona wieży (Tower defense) gra strategiczna
- 1.4 Dlaczego w aplikacji trzeba uwzględnić listę sześciu komponentów?
- 1.4.1 Doświadczenia są ważnym czynnikiem różnicującym
- 1.4.2 Wyjdź naprzeciw oczekiwaniom użytkowników
- 1.4.3 Planowanie drogą do sukcesu
- 1.1 Czym jest użyteczność i dlaczego ma znaczenie?
- Część I. Kontekst
- 2. Kto używa aplikacji?
- 2.1 To nie ty jesteś użytkownikiem swojej aplikacji
- 2.1.1 Co odróżnia cię od użytkowników
- 2.1.2 Nie jesteś przeciętnym użytkownikiem
- 2.1.3 Bądź świadom tego, co wpływa na twoje myślenie
- 2.2 Dla kogo jest aplikacja?
- 2.2.1 Dla kogo aplikacja będzie stanowiła wartość?
- 2.2.2 Zrozumienie docelowej grupy odbiorców
- 2.2.3 Czy wystarczająca liczba użytkowników będzie zainteresowana aplikacją?
- 2.2.4 Dopasowywanie do oczekiwań określonych grup
- 2.2.5 Persona
- 2.2.6 Wykorzystanie aplikacji w przedsiębiorstwie
- 2.3 Każdy jest inny
- 2.3.1 Weź pod uwagę różne możliwości
- 2.3.2 Weź pod uwagę różne oczekiwania
- 2.3.3 Weź pod uwagę różne cele
- 2.4 Co robią użytkownicy?
- 2.4.1 Jak użytkownicy korzystają z aplikacji?
- 2.4.2 Jakie inne działania podejmują użytkownicy?
- 2.1 To nie ty jesteś użytkownikiem swojej aplikacji
- 3. Gdzie i kiedy aplikacja jest używana?
- 3.1 Gdzie aplikacja jest używana?
- 3.1.1 Wykorzystanie aplikacji w geograficznej skali makro
- 3.1.2 Wykorzystanie aplikacji w geograficznej skali mikro
- 3.2 Regionalizacja
- 3.2.1 Weź pod uwagę wsparcie dla różnych języków
- 3.2.2 Wpływ kultury i lokalizacji na aplikację
- 3.3 Kiedy aplikacja jest używana?
- 3.3.1 Weź pod uwagę porę dnia
- 3.3.2 Weź pod uwagę dzień tygodnia
- 3.3.3 Weź pod uwagę porę roku
- 3.3.4 Jak długo aplikacja jest używana?
- 3.4 Jakie działania są podejmowane w trakcie korzystania z aplikacji?
- 3.4.1 Czy osoba korzystająca z aplikacji jest w ruchu, czy też nie?
- 3.4.2 Czy użytkownik jest skupiony, czy jego uwaga jest rozproszona?
- 3.4.3 Czy aplikacja jest jedynym narzędziem wykorzystywanym przez użytkownika?
- 3.4.4 Czy użytkownik jest w pozycji stojącej, siedzącej czy leżącej?
- 3.1 Gdzie aplikacja jest używana?
- 4. Na jakim urządzeniu aplikacja jest używana?
- 4.1 Napisz raz, uruchom wszędzie?
- 4.2 Wspieranie różnych systemów operacyjnych
- 4.2.1 Ograniczenia wynikające z systemu operacyjnego
- 4.2.2 Interfejs użytkownika (UI) a system operacyjny
- 4.2.3 Różne wersje systemu operacyjnego
- 4.2.4 System operacyjny wykorzystywany w firmie
- 4.3 Zachowanie tożsamości i różnicowanie marki
- 4.3.1 Marka vs tożsamość wizualna
- 4.3.2 Wyodrębnienie własnej marki od marki systemu operacyjnego
- 4.3.3 Przestrzeganie konwencji systemu operacyjnego przy jednoczesnym zachowaniu tożsamości marki
- 4.4 Wspieranie różnych możliwości urządzenia
- 4.4.1 Obsługiwanie urządzeń o różnych wymiarach
- 4.4.2 Zróżnicowanie w możliwościach podzespołów
- 4.4.3 Zróżnicowanie oprogramowania
- 2. Kto używa aplikacji?
- Część II. Wejście
- 5. Jak wygląda interakcja użytkownika z aplikacją
- 5.1 Wspieranie różnych narzędzi do obsługi ekranów dotykowych
- 5.1.1 Obsługa aplikacji palcem
- 5.1.2 Obsługa aplikacji rysikiem
- 5.1.3 Obsługa aplikacji za pomocą myszy i klawiatury
- 5.2 Obsługa aplikacji przez dotyk
- 5.2.1 Wspieranie gestów
- 5.2.2 Wspieranie gestów wielodotykowych
- 5.3 Kiedy obsługa dotykowa staje się skomplikowana
- 5.3.1 Reakcja systemu na dotyk nie zawsze odpowiada oczekiwaniom użytkowników
- 5.3.2 Obsługa pierwotnych zdarzeń wejściowych wymaga szczególnej uwagi
- 5.1 Wspieranie różnych narzędzi do obsługi ekranów dotykowych
- 6. Dane wprowadzone przez użytkownika
- 6.1 Cele użytkowników aplikacji
- 6.1.1 Minimalizowanie ilości wprowadzanych danych
- 6.1.2 Optymalizacja przy użyciu wartości domyślnych i podpowiedzi
- 6.1.3 Optymalizacja przy użyciu alternatywnych wejść
- 6.2 Jak prosić o dane w formularzach
- 6.2.1 Optymalizacja układu formularza
- 6.2.2 Ułatwianie wprowadzania tekstu
- 6.2.3 Wprowadzenie haseł
- 6.2.4 Ułatwianie korzystania z zamkniętej listy opcji
- 6.2.5 Pola wymagane i walidacja
- 6.1 Cele użytkowników aplikacji
- 7. Dane z innych źródeł
- 7.1 Dane z zasobów sieciowych
- 7.1.1 Postępowanie z danymi, których zażądała aplikacja
- 7.1.2 Postępowanie w sytuacji użycia notyfikacji push
- 7.2 Dane z urządzenia
- 7.2.1 Dane z systemu operacyjnego
- 7.2.2 Dane z systemu plików
- 7.2.3 Dane pochodzące z innych aplikacji
- 7.3 Dane z czujników
- 7.3.1 Transparentność i uprawnienia
- 7.3.2 Uwzględnianie zmienności danych
- 7.4 Odgadywanie danych wejściowych metodami heurystycznymi
- 7.4.1 Poprawa działania aplikacji na podstawie historii użycia pojedynczej osoby
- 7.4.2 Poprawa działania aplikacji na podstawie historii użycia wszystkich użytkowników
- 7.1 Dane z zasobów sieciowych
- 5. Jak wygląda interakcja użytkownika z aplikacją
- Część III. Wyjście
- 8. Wyświetlanie komponentów w aplikacji
- 8.1 Podstawy projektowania komponentów wizualnych
- 8.1.1 Stawianie użytkownika i jego celów na pierwszym planie
- 8.1.2 Spełnianie oczekiwań użytkowników
- 8.1.3 Uwzględnianie rodzaju urządzenia, na którym aplikacja jest używana
- 8.1.4 Przestrzeganie norm i konwencji
- 8.2 Układ kontrolek na ekranie
- 8.2.1 Tworzenie znaczenia i zależności przez wyrównania i hierarchię
- 8.2.2 Tworzenie znaczenia i zależności przez spójność
- 8.2.3 Tworzenie znaczenia i zależności przez bliskość
- 8.3 Nawigowanie po aplikacji
- 8.3.1 Popularne wzorce nawigacji
- 8.3.2 Trzy komponenty nawigacji wymagające szczególnej uwagi
- 8.4 Unikanie dyskryminacji
- 8.4.1 Tworzenie interfejsu dla wszystkich
- 8.4.2 Jednolity przekaz dla wszystkich użytkowników
- 8.5 Czynniki wpływające na wyświetlanie obrazów
- 8.5.1 Jeden rozmiar nie dla wszystkich
- 8.5.2 Fizyczny rozmiar to nie wszystko: weź również pod uwagę proporcje i formatowanie
- 8.5.3 Tworzenie grafik zastępczych
- 8.6 Stosowanie ikon
- 8.7 Zewnętrzne dane, jakość łącza przypadki brzegowe
- 8.7.1 Zawartość, która ładuje się powoli lub nie ładuje się wcale
- 8.7.2 Gdy zewnętrzne dane są niedostępne
- 8.7.3 Unikanie stanów pustych bez wyjaśnienia
- 8.1 Podstawy projektowania komponentów wizualnych
- 9. Wyjście niewizualne
- 9.1 Rozszerzenie komunikacji przez dźwięk i wibracje
- 9.1.1 Komunikaty dźwiękowe
- 9.1.2 Nie tylko wibracje
- 9.2 Kanały komunikacji dla innych aplikacji i urządzeń
- 9.3 Komunikacja z backendu
- 9.3.1 Umożliwienie komunikacji wielokanałowej
- 9.3.2 Wysyłanie powiadomień push
- 9.3.3 Używanie symboli (badge) z powiadomieniami push
- 9.4 Komunikacja z użytkownikiem spoza aplikacji
- 9.4.1 Korzystanie z wiadomości
- 9.4.2 Korzystanie z wiadomości SMS-owych
- 9.4.3 Korzystanie z zewnętrznych serwisów (komunikacyjnych) przesyłania wiadomości
- 9.1 Rozszerzenie komunikacji przez dźwięk i wibracje
- 8. Wyświetlanie komponentów w aplikacji
- Część IV. Responsywność
- 10. Zrozumienie postrzegania czasu
- 10.1 Jak ludzie postrzegają czas w świecie urządzeń mobilnych
- 10.1.1 Kontekst a responsywność
- 10.1.2 Postrzeganie to odczucia, opinie i porównania
- 10.1.3 Bądź responsywny, stosując powiadomienia
- 10.1.4 Poznaj oczekiwania, ale najszybsza reakcja nie zawsze jest pożądana
- 10.2 Wpływanie na responsywność w kontekście postrzegania czasu
- 10.2.1 Odpowiedz na pytanie, co aplikacja robi w danym momencie
- 10.2.2 Pokaż postęp w momencie trwającej akcji
- 10.2.3 Animacje mogą zamaskować opóźnienia systemu
- 10.2.4 Gotowy do użycia nie oznacza wolny od zadań
- 10.3 Postrzeganie związane z biegiem czasu
- 10.1 Jak ludzie postrzegają czas w świecie urządzeń mobilnych
- 11. Szybkie uruchamianie aplikacji
- 11.1 Uruchamianie aplikacji minimalną ilością działań
- 11.1.1 Minimalizacja liczby kroków potrzebnych do uruchomienia aplikacji
- 11.1.2 Wyświetlanie ekranu powitalnego podczas uruchamiania aplikacji
- 11.2 Wstępne ładowanie przyspieszy działanie aplikacji
- 11.2.1 Dystrybucja aplikacji wraz z treścią
- 11.2.2 Wstępne ładowanie danych przed kolejnym użyciem aplikacji
- 11.3 Preformatowanie danych pobieranych przez aplikację
- 11.4 Buforowanie oszczędza czas i pieniądze
- 11.4.1 Używanie pamięci podręcznej i przestrzeni dyskowej
- 11.4.2 Sprawdzanie, czy istnieje nowa wersja zbuforowanych danych
- 11.4.3 Kiedy należy unieważniać i usuwać buforowane elementy
- 11.1 Uruchamianie aplikacji minimalną ilością działań
- 12. Szybkie działanie aplikacji
- 12.1 Używanie wczesnego ładowania, żeby użytkownicy nie czekali
- 12.1.1 Wczesne ładowanie danych uzupełnia ładowanie wstępne
- 12.1.2 Uważaj, aby nie ładować danych zbyt wcześnie
- 12.1.3 Jakie dane ładować wcześnie?
- 12.2 Operacje równoległe zajmują mniej czasu
- 12.2.1 Operacje synchroniczne i asynchroniczne
- 12.2.2 Jak projektować równoległe zadania?
- 12.3 Poprawa szybkości i kontroli przez łączenie zapytań
- 12.3.1 Kontrola serwera, z którym łączy się aplikacja
- 12.3.2 Szybsze odpowiedzi dzięki połączonym żądaniom
- 12.3.3 Upraszczanie aplikacji klienta przez łączenie zapytań
- 12.3.4 Łączenie żądań dostępu do danych lokalnych
- 12.1 Używanie wczesnego ładowania, żeby użytkownicy nie czekali
- 10. Zrozumienie postrzegania czasu
- Część V. Dostęp do sieci
- 13. Sposoby na zróżnicowaną jakość połączenia
- 13.1 Połączenia nie są takie same
- 13.1.1 Zabezpieczenie połączenia
- 13.1.2 Szybkość połączenia może się różnić
- 13.1.3 Koszt połączenia może być zmienny
- 13.2 Niestabilność łącza to codzienność
- 13.2.1 Połączenia mogą być niedostępne
- 13.2.2 Połączenia mogą zostać utracone
- 13.2.3 Połączenia mogą się zmieniać
- 13.3 Obsługa niestabilnego łącza
- 13.3.1 Buforowanie
- 13.3.2 Kompresja
- 13.3.3 Odsunięcie operacji w czasie
- 13.3.4 Operacje wsadowe
- 13.3.5 Automatyczne ponawianie operacji
- 13.4 Równowaga między użytecznością a słabym połączeniem
- 13.4.1 Priorytetyzowanie akcji przy słabym łączu
- 13.4.2 Dostosowanie zużycia danych do warunków połączenia
- 13.5 Danie użytkownikowi kontroli przy słabym łączu
- 13.1 Połączenia nie są takie same
- 13. Sposoby na zróżnicowaną jakość połączenia
- Część VI. Zasoby
- 14. Zarządzanie zużyciem energii i zasobami
- 14.1 Gdy się skończą, to ich nie będzie
- 14.2 Czy naprawdę ich potrzebujesz?
- 14.2.1 Ładowanie opóźnione może zminimalizować straty
- 14.2.2 Oszczędzanie zasobów dzięki źródłom alternatywnym
- 14.3 Jak często zamierzasz z nich korzystać?
- 14.3.1 Zarządzanie zasobami, które są używane tylko raz
- 14.3.2 Zarządzanie zasobami, które są wykorzystywane wielokrotnie
- 14.4 Czy nadal ich potrzebujesz?
- 14.4.1 Wyłączanie zasobów po zakończeniu
- 14.4.2 Reagowanie na zmieniające się okoliczności
- 14. Zarządzanie zużyciem energii i zasobami
- załącznik A Odpowiedzi do ćwiczeń
- załącznik B Zastosuj w praktyce
- załącznik C Bibliografia