forked from AITech/aitech-ppb-pbr
Uzupełnienie materiałów do wykładu 11.
This commit is contained in:
parent
0a602a2639
commit
7cbf0c11fe
@ -18,13 +18,99 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Aspekty użyteczności\n",
|
||||
"Użyteczność aplikacji powinna być analizowana pod kątem sześciu aspektów:\n",
|
||||
"# Aspekty użyteczności w pytaniach... często bez odpowiedzi\n",
|
||||
"Na podstawie książki \"Postaw na użyteczność\" Matta Laceya (Wydawnictwo Naukowe PWN, 2019).\n",
|
||||
"\n",
|
||||
"Podczas konstruowania systemu informatycznego warto zadać sobie pytania, na które odpowiedź wcale nie musi być oczywista - zależeć może ona od typu aplikacji i środowiska, w którym aplikacja będzie używana."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Definicja użyteczności (...jeszcze jedna)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Użyteczność</h3> \n",
|
||||
"\n",
|
||||
"Użyteczność to zestaw cech aplikacji, które sprawiają, że korzysta się z niej <b>łatwo</b>.\n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Przepis na sukces\n",
|
||||
"\n",
|
||||
"SUKCES = WARTOŚĆ + ODCZUCIA UŻYTKOWNIKA + SZCZĘŚCIE"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Wartość</h3> \n",
|
||||
"\n",
|
||||
"Wartość aplikacji to suma korzyści dla użytkownika: \n",
|
||||
"<ul>\n",
|
||||
"<li>zadanie jest wykonalne\n",
|
||||
"<li>zadanie jest łatwiejsze\n",
|
||||
"<li>zadanie można wykonać szybciej\n",
|
||||
"<li>aplikacja dostarcza dochód lub oszczędza środki\n",
|
||||
"<li>dostarczenie rozrywki\n",
|
||||
"<li>dostarczenie informacji\n",
|
||||
"<li>edukacja \n",
|
||||
"</ul>\n",
|
||||
" \n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Odczucia użytkownika (User Experience)</h3> \n",
|
||||
"\n",
|
||||
"Odczucia użytkownika to uczucia i emocje użytkownika doznawane podczas korzystania z aplikacji.\n",
|
||||
"\n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Szczęście</h3> \n",
|
||||
"\n",
|
||||
"\"Szczęście przychodzi do tego, kto jest przygotowany i napotyka okazje.\" (Seneka)\n",
|
||||
"\n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Sześć magicznych składników użyteczności...\n",
|
||||
"...czyli sześć aspektów, pod którymi powinniśmy rozpatrywać użyteczność:\n",
|
||||
"* kontekst, \n",
|
||||
"* wprowadzanie danych, \n",
|
||||
"* wyprowadzanie danych, \n",
|
||||
"* responsywność, \n",
|
||||
"* łączność z siecią, \n",
|
||||
"* dostęp do sieci, \n",
|
||||
"* zasoby."
|
||||
]
|
||||
},
|
||||
@ -32,42 +118,546 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Kontekst"
|
||||
"# 1. Kontekst"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Wprowadzanie danych"
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Kontekst</h3> \n",
|
||||
"\n",
|
||||
"Kontekst to środowisko i okoliczności używania aplikacji. Odpowiada na pytania:\n",
|
||||
"<ul>\n",
|
||||
"<li>Kto?\n",
|
||||
"<li>Gdzie?\n",
|
||||
"<li>Kiedy?\n",
|
||||
"<li>Jak? \n",
|
||||
"</ul>\n",
|
||||
" \n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Wyprowadzanie danych"
|
||||
"## 1.1. Kto?\n",
|
||||
"\n",
|
||||
"ZASADY:\n",
|
||||
"\n",
|
||||
"1. Musisz precyzyjnie poznać użytkownika.\n",
|
||||
"2. To nie Ty jesteś użytkownikiem.\n",
|
||||
"3. Każdy jest inny.\n",
|
||||
"4. Użytkownik ma prawo robić coś innego\n",
|
||||
" "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Responsywność"
|
||||
"### 1.1.1. Musisz precyzyjnie poznać użytkownika\n",
|
||||
"\n",
|
||||
"* Dla kogo aplikacja będzie stanowić wartość?\n",
|
||||
" * Wskazówka: (patrz definicja wartości)\n",
|
||||
"* Kto dokładnie będzie użytkownikiem aplikacji?\n",
|
||||
" * Wskazówka: wykonaj diagram Venna\n",
|
||||
"\n",
|
||||
"<img src=\"obrazy/Diagram Venna.png\" alt=\"Diagram Venna\" width=500px>\n",
|
||||
"(Przykładowy diagram Venna, Źródło: Matt Lacey, \"Postaw na użyteczność\")\n",
|
||||
"\n",
|
||||
"* Jakie są grupy użytkowników?\n",
|
||||
" * Wskazówka: metoda persony"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Łączność z siecią"
|
||||
"### 1.1.2. To nie Ty jesteś użytkownikiem\n",
|
||||
" * Czym użytkownik różni się od siebie?\n",
|
||||
" * Czym mogą się rożnić oczekiwania innych uzytkowników od Twoich?\n",
|
||||
" * W stosunku do jakich niedociągnięć użytkownicy mogą być od Ciebie mniej pobłażliwi?\n",
|
||||
" * Dlaczego TY nie jesteś przeciętnym użytkownikiem Twojej aplikacji?\n",
|
||||
" * Jakie umiejętności Cię wyróżniają?\n",
|
||||
" * Dlaczego Tobie będzie łatwiej używać aplikacji?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Zasoby"
|
||||
"### 1.1.3. Każdy jest inny\n",
|
||||
" * Czy użytkownicy aplikacji mogą się różnić w aspekcie dostępności?\n",
|
||||
" Na dostępność składają się:\n",
|
||||
" * umiejętności\n",
|
||||
" * wiedza\n",
|
||||
" * kultura\n",
|
||||
" * lokalizacja\n",
|
||||
" * płeć\n",
|
||||
" * wiek\n",
|
||||
" * niepełnosprawność\n",
|
||||
" * choroby (daltonizm)\n",
|
||||
" * Czy użytkownicy aplikacji mogą mieć od niej różne oczekiwania?\n",
|
||||
" * Czy użytkownicy aplikacji mogą chcieć uzyskać dzięki niej różne cele?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 1.1.4. Użytkownik ma prawo robić coś innego\n",
|
||||
" * Jakie inne działania będą podejmować użytkownicy podczas pracy z naszą aplikacją?\n",
|
||||
" * Jak się o tym dowiedzieć?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 1. 2. Gdzie?\n",
|
||||
"ZASADA: \n",
|
||||
"Czy aplikacja będzie stosowana w różnych krajach?\n",
|
||||
" * Jesli nie, to pomiń dalsze pytania.\n",
|
||||
" * Jeśli tak, to odpowiedz na dalsze pytania.\n",
|
||||
"\n",
|
||||
"PYTANIA:\n",
|
||||
" * Czy zaplanowałeś wielojęzyczność aplikacji?\n",
|
||||
" * Jakimi językami posługują się użytkownicy w innych krajach?\n",
|
||||
" * Zaplanuj tłumaczenie aplikacji\n",
|
||||
" * Czy użytkownicy innych krajów stosują te same formaty liczb / dat?\n",
|
||||
" * Jeśli nie, to opracuj algorytmy konwersji"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 1.3. Kiedy?\n",
|
||||
"### 1.3.1. Pora (dnia, tygodnia, miesiąca, roku)\n",
|
||||
"Czy aplikacja może działać w różny sposób w zależności od:\n",
|
||||
" * pory dnia\n",
|
||||
" * dnia tygodnia\n",
|
||||
" * dnia miesiąca\n",
|
||||
" * pory roku"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 1.3.2. Czas użytkowania\n",
|
||||
" * Jak długo trwa jedna sesja użytkowania?\n",
|
||||
" * daj możliwość korzystania nawet w bardzo krótkim czasie\n",
|
||||
" * Po jakim czasie użytkownik porzuci aplikację?\n",
|
||||
" * zachęcaj do pozostania z aplikacją"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 1.4. Jak?\n",
|
||||
"### 1.4.1. Okoliczności\n",
|
||||
" * Czy użytkownik jest w ruchu?\n",
|
||||
" * Czy użytkownik może wykonywać inne czynności?\n",
|
||||
" * Jakie?\n",
|
||||
" * Czy jest skupiony na naszej aplikacji?\n",
|
||||
" * Czy nasza aplikacja współpracuje z innymi?\n",
|
||||
" * W jakiej pozycji użytkownik korzysta z aplikacji?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 1.4.2. Urządzenia\n",
|
||||
" * Zasada WORE (Write Once Run Everywhere)\n",
|
||||
" * Plusy\n",
|
||||
" * szybciej powstaje\n",
|
||||
" * łatwiejsza w utrzymaniu\n",
|
||||
" * możliwość dostosowania dla wielu urządzeń\n",
|
||||
" * przydatna szczególnie w grach (niestandardowy UI)\n",
|
||||
" * Minusy\n",
|
||||
" * wymagana znajomość różnych platform\n",
|
||||
" * wymagana dyscyplina kodu\n",
|
||||
" * konieczność dostosowania elementów wizualnych do różnych platform\n",
|
||||
" * konieczność testowania na wielu platformach\n",
|
||||
" * Różne systemy operacyjne\n",
|
||||
" * W jakich systamach operacyjnych ma działać aplikacja?\n",
|
||||
" * Czy wziąłeś pod uwagę ograniczenia narzucane przez różne sklepy?\n",
|
||||
" * Czy wygląd aplikacji jest zgodny z przyzwyczajeniami użytkowników danego systemu?\n",
|
||||
"\n",
|
||||
" * Wielkość urządzenia\n",
|
||||
" * Czy wziąłeś pod uwagę, że wielkość ekranu ma wpływ na to, co jest wyświetlane?\n",
|
||||
" * Czy pomyślałeś, jak trzymane jest urządzenie?\n",
|
||||
" \n",
|
||||
" * Przyciski sprzętowe\n",
|
||||
" * Czy przewidziałeś ich wykorzystanie?\n",
|
||||
" * Czujniki\n",
|
||||
" * Czy przewidziałeś ich wykorzystanie?\n",
|
||||
" * Wskazówka: Współczesne urządzenia mogę mieć kilkanaście czujników:\n",
|
||||
" * ruchu\n",
|
||||
" * pozycji\n",
|
||||
" * położenia\n",
|
||||
" * środowiskowe "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 2. Wprowadzanie danych (Input)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Input</h3> \n",
|
||||
"\n",
|
||||
"Information fed into a data processing system or computer (słownik: Miriam - Webster)\n",
|
||||
" \n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 2.1. Interakcja użytkownik - system\n",
|
||||
"### 2.1.1. Wejście dotykowe\n",
|
||||
" * Czy wziąłeś pod uwagę zalecane minimalne wielkości obszarów dotykowych?\n",
|
||||
" * iOS: 11 mm\n",
|
||||
" * Android: 7-10 mm\n",
|
||||
" * Windows: 7-9 mm\n",
|
||||
"\n",
|
||||
" * Czy gesty obsługiwane są standardowo?\n",
|
||||
" * pojedyncze dotknięcie\n",
|
||||
" * podwójne dotknięcie\n",
|
||||
" * przesunięcie palcem po ekranie\n",
|
||||
" * dotknięcie i przytrzymanie\n",
|
||||
" * uszczypnięcie / rozciąganie\n",
|
||||
" * obracanie\n",
|
||||
" * inne (powstające)\n",
|
||||
" \n",
|
||||
" * Czy pomyślałeś o tym, że podczas dotykania ekranu jego część będzie zasłonięta?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.1.2. Rysik\n",
|
||||
" * Czy wziąłeś pod uwagę możliwość wprowadzania danych za pomocą rysika?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.1.3. Mysz i klawiatura\n",
|
||||
"\n",
|
||||
" * Czy aplikacja będzie obługiwana myszą i / lub klawiaturą?\n",
|
||||
" * Jeśli myszą, to weź pod uwagę spójność dotyku i uzycia myszy:\n",
|
||||
" * pojedyncze dotknięcie - pojedyncze kliknięcie\n",
|
||||
" * podwójne dotknięcie - podwójne kliknięcie\n",
|
||||
" * prawy przycisk myszy - przytrzymanie\n",
|
||||
" * przesuwanie myszą - przesuwanie palcem\n",
|
||||
" * Jeśli klawiaturą, to weź pod uwagę standardową reakcję klawiszy:\n",
|
||||
" * Tab\n",
|
||||
" * Enter\n",
|
||||
" * Ctrl\n",
|
||||
" * Shift"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.1.4. Wejście głosowe\n",
|
||||
" * Czy wziąłeś pod uwagę możliwość wejścia głosowego?\n",
|
||||
" * Jeśli tak, to weź pod uwagę ograniczenia techniczne systemów rozpoznawania mowy (np. architektura: klient - serwer)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 2.2. Ułatwienia wprowadzania danych"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.2.1. Minimalizacja wysiłku użytkownika\n",
|
||||
" * Czy pomyślałeś o zminimalizowaniu wysiłku użytkownika przy wprowadzaniu danych?\n",
|
||||
" * Wskazówki:\n",
|
||||
" * proponowane wyboru zamiast ręcznego wprowadzania\n",
|
||||
" * skróty (szybki dostęp)\n",
|
||||
" * autosugestie (autouzupełnianie)\n",
|
||||
" * łączenie wprowadzania danych (np. daty przyjazdu / wyjazdu)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.2.2. Optymalizacja formularzy\n",
|
||||
" * Czy w Twojej aplikacji dane są wprowadzane za pomocą formularzy? Jeśli tak, to odpowiedz na następujące pytania:\n",
|
||||
" * Czy dobrze posortowałeś listy wyboru?\n",
|
||||
" * Czy program reaguje już po części wpisanych danych?\n",
|
||||
" * Czy nad polami są ich etykiety?\n",
|
||||
" * Czy program podpowiada format danych?\n",
|
||||
" * Czy zapewniłeś wartości domyślne?\n",
|
||||
" * Czy pomyślałeś o walidacji danych?\n",
|
||||
" * Czy błędy pokazywane są w odpowiednim miejscu?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.2.3. Altenatywne metody wprowadzania danych\n",
|
||||
" * Czy wziąłeś pod uwagę alternatywne metody wejścia?\n",
|
||||
" * wirtualna klawiatura\n",
|
||||
" * pismo ręczne\n",
|
||||
" * optyczne rozpoznawanie znaków\n",
|
||||
" * interaktywne mapy, pozwalające wskazać adres (lokalizację)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 2.3. Dane z innych źródeł"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Dane z innych źródeł</h3> \n",
|
||||
"\n",
|
||||
"Są to dane niewprowadzone przez użytkownika aplikacji.\n",
|
||||
" \n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.3.1. Dane z serwisów sieciowych\n",
|
||||
" * W jaki sposób nasza aplikacja może pozyskiwać informacje dane z serwisów sieciowych?\n",
|
||||
" * w formie odpowiedzi na żądanie\n",
|
||||
" * w formie powiadomień (notyfikacji)\n",
|
||||
" * w formie SMS-ów\n",
|
||||
" * Czy pomyślałeś o obsłudze komunikatów o błędach przesłanych z serwisów sieciowych?\n",
|
||||
" * Czy pomyślałeś o przetworzeniu przesłanych komunikatów (np. skróceniu ich, wyekstrahowaniu tego, co najważniejsze)?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.3.2. Dane z systemu operacyjnego\n",
|
||||
" * Czy nasza aplikacja wykorzystuje dane PIM (Personal Information Manager)?\n",
|
||||
" * wyszukiwanie danych teleadresowych\n",
|
||||
" * wyszukiwanie kontaktów\n",
|
||||
" * sprawdzanie poprawności wprowadzanych danych\n",
|
||||
" * korzystanie z osobistego kalendarza\n",
|
||||
" * Czy nasza aplikaca wykorzystuje dane z systemu plików?\n",
|
||||
" * zdjęcia\n",
|
||||
" * filmy\n",
|
||||
" * teksty"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.3.3. Dane z innych aplikacji\n",
|
||||
" * Czy nasza aplikacja wykorzystuje dane z innych aplikacji? \n",
|
||||
" * Jeśli tak, to w jaki sposób dane są współdzielone?\n",
|
||||
" * wspólne dane przechowywane lokalnie\n",
|
||||
" * natywne współdzielenie (wbudowany mechanizm współdzielenia danych)\n",
|
||||
" * formaty plików (typy MIME: Multipurpose Internet Mail Extensions)\n",
|
||||
" * metoda \"kopiuj i wklej\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.3.4. Dane z czujników\n",
|
||||
" * Czy nasza aplikacja wykorzystuje dane z czujników? \n",
|
||||
" * Jeśli tak, to czy zadbałeś o to, aby\n",
|
||||
" * zapytać użytkownika o uprawnienia\n",
|
||||
" * wyjaśnić, w jaki sposób aplikacja będzie korzystać z czuujników\n",
|
||||
" * wyjaśnić, do czego dane te są potrzebne\n",
|
||||
" * wspomnieć o kwestiach polityki prywatności"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.3.5. Inne typy wprowadzania danych\n",
|
||||
" * Czy istnieją jeszcze inne metody, w jaki aplikacja może pozyskać dane?\n",
|
||||
" * np. karta z chipem"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 3. Wyprowadzanie danych (wyjście)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Output</h3> \n",
|
||||
"\n",
|
||||
"Information produced by a computer (słownik: Miriam - Webster)\n",
|
||||
" \n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 3.1. Wyjście wizualne"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Zasady projektowania wizualnych komponentów wyprowadzania danych:</h3> \n",
|
||||
" \n",
|
||||
"<ol>\n",
|
||||
"<li> \"Cele użytkownika na pierwszym miejscu.\"\n",
|
||||
"<li> Spełnianie oczekiwań użytkowników\n",
|
||||
"<li> Uwzględnianie rodzaju urządzenia\n",
|
||||
"<li> Przestrzeganie norm i konwencji\n",
|
||||
"</ol>\n",
|
||||
" \n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 3.2. Wyjście niewizualne\n",
|
||||
" * Czy wziąłeś pod uwagę możliwości wyprowadzania danych w inny sposób niż wizualnie?\n",
|
||||
" * dźwięki i wibracje\n",
|
||||
" * kanały komunikacji dla innych aplikacji\n",
|
||||
" * powiadomienia \"push\"\n",
|
||||
" * poczta elektroniczna\n",
|
||||
" * SMS"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 4. Responsywność"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Responsywność</h3> \n",
|
||||
"\n",
|
||||
"Cecha aplikacji, która powoduje, że użytkownicy uważają, że mogą uzyskać swój cel szybko - bez straty czasu.\n",
|
||||
" \n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"**Responsywność aplikacji to nie to samo co responsive design.**\n",
|
||||
"> Responsive design oznacza, że to co jest wyświetlane w danym momencie w aplikacji, dostosowuje się do zmieniającej się wielkości ekranu. \n",
|
||||
"> Pojęcie responsywności jest dużo szersze: aplikacja powinna reagować nie tylko na wielkość ekranu, lecz na akcje użytkownika i działania aplikacji. Szybkość i sposób, w jaki aplikacja odpowiada, przekłada się na doświadczenia użytkownika."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 5. Dostęp do sieci\n",
|
||||
" * Czy wziąłeś pod uwagę potencjalne problemy z dostępem do sieci:\n",
|
||||
" * szybkość połączenia może się różnić\n",
|
||||
" * koszt połączenia może być zmienny\n",
|
||||
" * połączenie może być niedostępne\n",
|
||||
" * połączenie może być utracone"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 6. Zasoby"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Resource</h3> \n",
|
||||
"\n",
|
||||
"A source of supply, support, or aid, especially one that can be readily drawn upon when needed (www. dictionary.com)\n",
|
||||
" \n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
" > A gdy się zasoby skończą, to ich nie będzie.\n",
|
||||
" \n",
|
||||
"Ilość zasobów jest skończona, więc naszym obowiązkiem jest je oszczędzać:\n",
|
||||
"\n",
|
||||
" * Energia\n",
|
||||
" * Pojemność dysku\n",
|
||||
" * Pojemność pamięci\n",
|
||||
" * Zasoby procesora\n",
|
||||
" * Możliwości przesyłu danych"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Podsumowanie\n",
|
||||
"Użyteczność często rozumiana jest jako synonim łatwości użytkowania aplikacji.\n",
|
||||
"\n",
|
||||
"Zapewnienie, aby aplikacja używana była **łatwo** nie jest zadaniem banalnym. Wymaga odpowiedzenia sobie na wiele pytań, na które odpowiedzi mogą być zupełnie różne w zależności od typu aplikacji."
|
||||
]
|
||||
}
|
||||
],
|
||||
|
@ -18,13 +18,99 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Aspekty użyteczności\n",
|
||||
"Użyteczność aplikacji powinna być analizowana pod kątem sześciu aspektów:\n",
|
||||
"# Aspekty użyteczności w pytaniach... często bez odpowiedzi\n",
|
||||
"Na podstawie książki \"Postaw na użyteczność\" Matta Laceya (Wydawnictwo Naukowe PWN, 2019).\n",
|
||||
"\n",
|
||||
"Podczas konstruowania systemu informatycznego warto zadać sobie pytania, na które odpowiedź wcale nie musi być oczywista - zależeć może ona od typu aplikacji i środowiska, w którym aplikacja będzie używana."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Definicja użyteczności (...jeszcze jedna)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Użyteczność</h3> \n",
|
||||
"\n",
|
||||
"Użyteczność to zestaw cech aplikacji, które sprawiają, że korzysta się z niej <b>łatwo</b>.\n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Przepis na sukces\n",
|
||||
"\n",
|
||||
"SUKCES = WARTOŚĆ + ODCZUCIA UŻYTKOWNIKA + SZCZĘŚCIE"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Wartość</h3> \n",
|
||||
"\n",
|
||||
"Wartość aplikacji to suma korzyści dla użytkownika: \n",
|
||||
"<ul>\n",
|
||||
"<li>zadanie jest wykonalne\n",
|
||||
"<li>zadanie jest łatwiejsze\n",
|
||||
"<li>zadanie można wykonać szybciej\n",
|
||||
"<li>aplikacja dostarcza dochód lub oszczędza środki\n",
|
||||
"<li>dostarczenie rozrywki\n",
|
||||
"<li>dostarczenie informacji\n",
|
||||
"<li>edukacja \n",
|
||||
"</ul>\n",
|
||||
" \n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Odczucia użytkownika (User Experience)</h3> \n",
|
||||
"\n",
|
||||
"Odczucia użytkownika to uczucia i emocje użytkownika doznawane podczas korzystania z aplikacji.\n",
|
||||
"\n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Szczęście</h3> \n",
|
||||
"\n",
|
||||
"\"Szczęście przychodzi do tego, kto jest przygotowany i napotyka okazje.\" (Seneka)\n",
|
||||
"\n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Sześć magicznych składników użyteczności...\n",
|
||||
"...czyli sześć aspektów, pod którymi powinniśmy rozpatrywać użyteczność:\n",
|
||||
"* kontekst, \n",
|
||||
"* wprowadzanie danych, \n",
|
||||
"* wyprowadzanie danych, \n",
|
||||
"* responsywność, \n",
|
||||
"* łączność z siecią, \n",
|
||||
"* dostęp do sieci, \n",
|
||||
"* zasoby."
|
||||
]
|
||||
},
|
||||
@ -32,42 +118,546 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Kontekst"
|
||||
"# 1. Kontekst"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Wprowadzanie danych"
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Kontekst</h3> \n",
|
||||
"\n",
|
||||
"Kontekst to środowisko i okoliczności używania aplikacji. Odpowiada na pytania:\n",
|
||||
"<ul>\n",
|
||||
"<li>Kto?\n",
|
||||
"<li>Gdzie?\n",
|
||||
"<li>Kiedy?\n",
|
||||
"<li>Jak? \n",
|
||||
"</ul>\n",
|
||||
" \n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Wyprowadzanie danych"
|
||||
"## 1.1. Kto?\n",
|
||||
"\n",
|
||||
"ZASADY:\n",
|
||||
"\n",
|
||||
"1. Musisz precyzyjnie poznać użytkownika.\n",
|
||||
"2. To nie Ty jesteś użytkownikiem.\n",
|
||||
"3. Każdy jest inny.\n",
|
||||
"4. Użytkownik ma prawo robić coś innego\n",
|
||||
" "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Responsywność"
|
||||
"### 1.1.1. Musisz precyzyjnie poznać użytkownika\n",
|
||||
"\n",
|
||||
"* Dla kogo aplikacja będzie stanowić wartość?\n",
|
||||
" * Wskazówka: (patrz definicja wartości)\n",
|
||||
"* Kto dokładnie będzie użytkownikiem aplikacji?\n",
|
||||
" * Wskazówka: wykonaj diagram Venna\n",
|
||||
"\n",
|
||||
"<img src=\"obrazy/Diagram Venna.png\" alt=\"Diagram Venna\" width=500px>\n",
|
||||
"(Przykładowy diagram Venna, Źródło: Matt Lacey, \"Postaw na użyteczność\")\n",
|
||||
"\n",
|
||||
"* Jakie są grupy użytkowników?\n",
|
||||
" * Wskazówka: metoda persony"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Łączność z siecią"
|
||||
"### 1.1.2. To nie Ty jesteś użytkownikiem\n",
|
||||
" * Czym użytkownik różni się od siebie?\n",
|
||||
" * Czym mogą się rożnić oczekiwania innych uzytkowników od Twoich?\n",
|
||||
" * W stosunku do jakich niedociągnięć użytkownicy mogą być od Ciebie mniej pobłażliwi?\n",
|
||||
" * Dlaczego TY nie jesteś przeciętnym użytkownikiem Twojej aplikacji?\n",
|
||||
" * Jakie umiejętności Cię wyróżniają?\n",
|
||||
" * Dlaczego Tobie będzie łatwiej używać aplikacji?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Zasoby"
|
||||
"### 1.1.3. Każdy jest inny\n",
|
||||
" * Czy użytkownicy aplikacji mogą się różnić w aspekcie dostępności?\n",
|
||||
" Na dostępność składają się:\n",
|
||||
" * umiejętności\n",
|
||||
" * wiedza\n",
|
||||
" * kultura\n",
|
||||
" * lokalizacja\n",
|
||||
" * płeć\n",
|
||||
" * wiek\n",
|
||||
" * niepełnosprawność\n",
|
||||
" * choroby (daltonizm)\n",
|
||||
" * Czy użytkownicy aplikacji mogą mieć od niej różne oczekiwania?\n",
|
||||
" * Czy użytkownicy aplikacji mogą chcieć uzyskać dzięki niej różne cele?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 1.1.4. Użytkownik ma prawo robić coś innego\n",
|
||||
" * Jakie inne działania będą podejmować użytkownicy podczas pracy z naszą aplikacją?\n",
|
||||
" * Jak się o tym dowiedzieć?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 1. 2. Gdzie?\n",
|
||||
"ZASADA: \n",
|
||||
"Czy aplikacja będzie stosowana w różnych krajach?\n",
|
||||
" * Jesli nie, to pomiń dalsze pytania.\n",
|
||||
" * Jeśli tak, to odpowiedz na dalsze pytania.\n",
|
||||
"\n",
|
||||
"PYTANIA:\n",
|
||||
" * Czy zaplanowałeś wielojęzyczność aplikacji?\n",
|
||||
" * Jakimi językami posługują się użytkownicy w innych krajach?\n",
|
||||
" * Zaplanuj tłumaczenie aplikacji\n",
|
||||
" * Czy użytkownicy innych krajów stosują te same formaty liczb / dat?\n",
|
||||
" * Jeśli nie, to opracuj algorytmy konwersji"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 1.3. Kiedy?\n",
|
||||
"### 1.3.1. Pora (dnia, tygodnia, miesiąca, roku)\n",
|
||||
"Czy aplikacja może działać w różny sposób w zależności od:\n",
|
||||
" * pory dnia\n",
|
||||
" * dnia tygodnia\n",
|
||||
" * dnia miesiąca\n",
|
||||
" * pory roku"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 1.3.2. Czas użytkowania\n",
|
||||
" * Jak długo trwa jedna sesja użytkowania?\n",
|
||||
" * daj możliwość korzystania nawet w bardzo krótkim czasie\n",
|
||||
" * Po jakim czasie użytkownik porzuci aplikację?\n",
|
||||
" * zachęcaj do pozostania z aplikacją"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 1.4. Jak?\n",
|
||||
"### 1.4.1. Okoliczności\n",
|
||||
" * Czy użytkownik jest w ruchu?\n",
|
||||
" * Czy użytkownik może wykonywać inne czynności?\n",
|
||||
" * Jakie?\n",
|
||||
" * Czy jest skupiony na naszej aplikacji?\n",
|
||||
" * Czy nasza aplikacja współpracuje z innymi?\n",
|
||||
" * W jakiej pozycji użytkownik korzysta z aplikacji?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 1.4.2. Urządzenia\n",
|
||||
" * Zasada WORE (Write Once Run Everywhere)\n",
|
||||
" * Plusy\n",
|
||||
" * szybciej powstaje\n",
|
||||
" * łatwiejsza w utrzymaniu\n",
|
||||
" * możliwość dostosowania dla wielu urządzeń\n",
|
||||
" * przydatna szczególnie w grach (niestandardowy UI)\n",
|
||||
" * Minusy\n",
|
||||
" * wymagana znajomość różnych platform\n",
|
||||
" * wymagana dyscyplina kodu\n",
|
||||
" * konieczność dostosowania elementów wizualnych do różnych platform\n",
|
||||
" * konieczność testowania na wielu platformach\n",
|
||||
" * Różne systemy operacyjne\n",
|
||||
" * W jakich systamach operacyjnych ma działać aplikacja?\n",
|
||||
" * Czy wziąłeś pod uwagę ograniczenia narzucane przez różne sklepy?\n",
|
||||
" * Czy wygląd aplikacji jest zgodny z przyzwyczajeniami użytkowników danego systemu?\n",
|
||||
"\n",
|
||||
" * Wielkość urządzenia\n",
|
||||
" * Czy wziąłeś pod uwagę, że wielkość ekranu ma wpływ na to, co jest wyświetlane?\n",
|
||||
" * Czy pomyślałeś, jak trzymane jest urządzenie?\n",
|
||||
" \n",
|
||||
" * Przyciski sprzętowe\n",
|
||||
" * Czy przewidziałeś ich wykorzystanie?\n",
|
||||
" * Czujniki\n",
|
||||
" * Czy przewidziałeś ich wykorzystanie?\n",
|
||||
" * Wskazówka: Współczesne urządzenia mogę mieć kilkanaście czujników:\n",
|
||||
" * ruchu\n",
|
||||
" * pozycji\n",
|
||||
" * położenia\n",
|
||||
" * środowiskowe "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 2. Wprowadzanie danych (Input)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Input</h3> \n",
|
||||
"\n",
|
||||
"Information fed into a data processing system or computer (słownik: Miriam - Webster)\n",
|
||||
" \n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 2.1. Interakcja użytkownik - system\n",
|
||||
"### 2.1.1. Wejście dotykowe\n",
|
||||
" * Czy wziąłeś pod uwagę zalecane minimalne wielkości obszarów dotykowych?\n",
|
||||
" * iOS: 11 mm\n",
|
||||
" * Android: 7-10 mm\n",
|
||||
" * Windows: 7-9 mm\n",
|
||||
"\n",
|
||||
" * Czy gesty obsługiwane są standardowo?\n",
|
||||
" * pojedyncze dotknięcie\n",
|
||||
" * podwójne dotknięcie\n",
|
||||
" * przesunięcie palcem po ekranie\n",
|
||||
" * dotknięcie i przytrzymanie\n",
|
||||
" * uszczypnięcie / rozciąganie\n",
|
||||
" * obracanie\n",
|
||||
" * inne (powstające)\n",
|
||||
" \n",
|
||||
" * Czy pomyślałeś o tym, że podczas dotykania ekranu jego część będzie zasłonięta?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.1.2. Rysik\n",
|
||||
" * Czy wziąłeś pod uwagę możliwość wprowadzania danych za pomocą rysika?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.1.3. Mysz i klawiatura\n",
|
||||
"\n",
|
||||
" * Czy aplikacja będzie obługiwana myszą i / lub klawiaturą?\n",
|
||||
" * Jeśli myszą, to weź pod uwagę spójność dotyku i uzycia myszy:\n",
|
||||
" * pojedyncze dotknięcie - pojedyncze kliknięcie\n",
|
||||
" * podwójne dotknięcie - podwójne kliknięcie\n",
|
||||
" * prawy przycisk myszy - przytrzymanie\n",
|
||||
" * przesuwanie myszą - przesuwanie palcem\n",
|
||||
" * Jeśli klawiaturą, to weź pod uwagę standardową reakcję klawiszy:\n",
|
||||
" * Tab\n",
|
||||
" * Enter\n",
|
||||
" * Ctrl\n",
|
||||
" * Shift"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.1.4. Wejście głosowe\n",
|
||||
" * Czy wziąłeś pod uwagę możliwość wejścia głosowego?\n",
|
||||
" * Jeśli tak, to weź pod uwagę ograniczenia techniczne systemów rozpoznawania mowy (np. architektura: klient - serwer)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 2.2. Ułatwienia wprowadzania danych"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.2.1. Minimalizacja wysiłku użytkownika\n",
|
||||
" * Czy pomyślałeś o zminimalizowaniu wysiłku użytkownika przy wprowadzaniu danych?\n",
|
||||
" * Wskazówki:\n",
|
||||
" * proponowane wyboru zamiast ręcznego wprowadzania\n",
|
||||
" * skróty (szybki dostęp)\n",
|
||||
" * autosugestie (autouzupełnianie)\n",
|
||||
" * łączenie wprowadzania danych (np. daty przyjazdu / wyjazdu)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.2.2. Optymalizacja formularzy\n",
|
||||
" * Czy w Twojej aplikacji dane są wprowadzane za pomocą formularzy? Jeśli tak, to odpowiedz na następujące pytania:\n",
|
||||
" * Czy dobrze posortowałeś listy wyboru?\n",
|
||||
" * Czy program reaguje już po części wpisanych danych?\n",
|
||||
" * Czy nad polami są ich etykiety?\n",
|
||||
" * Czy program podpowiada format danych?\n",
|
||||
" * Czy zapewniłeś wartości domyślne?\n",
|
||||
" * Czy pomyślałeś o walidacji danych?\n",
|
||||
" * Czy błędy pokazywane są w odpowiednim miejscu?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.2.3. Altenatywne metody wprowadzania danych\n",
|
||||
" * Czy wziąłeś pod uwagę alternatywne metody wejścia?\n",
|
||||
" * wirtualna klawiatura\n",
|
||||
" * pismo ręczne\n",
|
||||
" * optyczne rozpoznawanie znaków\n",
|
||||
" * interaktywne mapy, pozwalające wskazać adres (lokalizację)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 2.3. Dane z innych źródeł"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Dane z innych źródeł</h3> \n",
|
||||
"\n",
|
||||
"Są to dane niewprowadzone przez użytkownika aplikacji.\n",
|
||||
" \n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.3.1. Dane z serwisów sieciowych\n",
|
||||
" * W jaki sposób nasza aplikacja może pozyskiwać informacje dane z serwisów sieciowych?\n",
|
||||
" * w formie odpowiedzi na żądanie\n",
|
||||
" * w formie powiadomień (notyfikacji)\n",
|
||||
" * w formie SMS-ów\n",
|
||||
" * Czy pomyślałeś o obsłudze komunikatów o błędach przesłanych z serwisów sieciowych?\n",
|
||||
" * Czy pomyślałeś o przetworzeniu przesłanych komunikatów (np. skróceniu ich, wyekstrahowaniu tego, co najważniejsze)?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.3.2. Dane z systemu operacyjnego\n",
|
||||
" * Czy nasza aplikacja wykorzystuje dane PIM (Personal Information Manager)?\n",
|
||||
" * wyszukiwanie danych teleadresowych\n",
|
||||
" * wyszukiwanie kontaktów\n",
|
||||
" * sprawdzanie poprawności wprowadzanych danych\n",
|
||||
" * korzystanie z osobistego kalendarza\n",
|
||||
" * Czy nasza aplikaca wykorzystuje dane z systemu plików?\n",
|
||||
" * zdjęcia\n",
|
||||
" * filmy\n",
|
||||
" * teksty"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.3.3. Dane z innych aplikacji\n",
|
||||
" * Czy nasza aplikacja wykorzystuje dane z innych aplikacji? \n",
|
||||
" * Jeśli tak, to w jaki sposób dane są współdzielone?\n",
|
||||
" * wspólne dane przechowywane lokalnie\n",
|
||||
" * natywne współdzielenie (wbudowany mechanizm współdzielenia danych)\n",
|
||||
" * formaty plików (typy MIME: Multipurpose Internet Mail Extensions)\n",
|
||||
" * metoda \"kopiuj i wklej\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.3.4. Dane z czujników\n",
|
||||
" * Czy nasza aplikacja wykorzystuje dane z czujników? \n",
|
||||
" * Jeśli tak, to czy zadbałeś o to, aby\n",
|
||||
" * zapytać użytkownika o uprawnienia\n",
|
||||
" * wyjaśnić, w jaki sposób aplikacja będzie korzystać z czuujników\n",
|
||||
" * wyjaśnić, do czego dane te są potrzebne\n",
|
||||
" * wspomnieć o kwestiach polityki prywatności"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.3.5. Inne typy wprowadzania danych\n",
|
||||
" * Czy istnieją jeszcze inne metody, w jaki aplikacja może pozyskać dane?\n",
|
||||
" * np. karta z chipem"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 3. Wyprowadzanie danych (wyjście)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Output</h3> \n",
|
||||
"\n",
|
||||
"Information produced by a computer (słownik: Miriam - Webster)\n",
|
||||
" \n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 3.1. Wyjście wizualne"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Zasady projektowania wizualnych komponentów wyprowadzania danych:</h3> \n",
|
||||
" \n",
|
||||
"<ol>\n",
|
||||
"<li> \"Cele użytkownika na pierwszym miejscu.\"\n",
|
||||
"<li> Spełnianie oczekiwań użytkowników\n",
|
||||
"<li> Uwzględnianie rodzaju urządzenia\n",
|
||||
"<li> Przestrzeganie norm i konwencji\n",
|
||||
"</ol>\n",
|
||||
" \n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 3.2. Wyjście niewizualne\n",
|
||||
" * Czy wziąłeś pod uwagę możliwości wyprowadzania danych w inny sposób niż wizualnie?\n",
|
||||
" * dźwięki i wibracje\n",
|
||||
" * kanały komunikacji dla innych aplikacji\n",
|
||||
" * powiadomienia \"push\"\n",
|
||||
" * poczta elektroniczna\n",
|
||||
" * SMS"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 4. Responsywność"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Responsywność</h3> \n",
|
||||
"\n",
|
||||
"Cecha aplikacji, która powoduje, że użytkownicy uważają, że mogą uzyskać swój cel szybko - bez straty czasu.\n",
|
||||
" \n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"**Responsywność aplikacji to nie to samo co responsive design.**\n",
|
||||
"> Responsive design oznacza, że to co jest wyświetlane w danym momencie w aplikacji, dostosowuje się do zmieniającej się wielkości ekranu. \n",
|
||||
"> Pojęcie responsywności jest dużo szersze: aplikacja powinna reagować nie tylko na wielkość ekranu, lecz na akcje użytkownika i działania aplikacji. Szybkość i sposób, w jaki aplikacja odpowiada, przekłada się na doświadczenia użytkownika."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 5. Dostęp do sieci\n",
|
||||
" * Czy wziąłeś pod uwagę potencjalne problemy z dostępem do sieci:\n",
|
||||
" * szybkość połączenia może się różnić\n",
|
||||
" * koszt połączenia może być zmienny\n",
|
||||
" * połączenie może być niedostępne\n",
|
||||
" * połączenie może być utracone"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 6. Zasoby"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Resource</h3> \n",
|
||||
"\n",
|
||||
"A source of supply, support, or aid, especially one that can be readily drawn upon when needed (www. dictionary.com)\n",
|
||||
" \n",
|
||||
"<div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
" > A gdy się zasoby skończą, to ich nie będzie.\n",
|
||||
" \n",
|
||||
"Ilość zasobów jest skończona, więc naszym obowiązkiem jest je oszczędzać:\n",
|
||||
"\n",
|
||||
" * Energia\n",
|
||||
" * Pojemność dysku\n",
|
||||
" * Pojemność pamięci\n",
|
||||
" * Zasoby procesora\n",
|
||||
" * Możliwości przesyłu danych"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Podsumowanie\n",
|
||||
"Użyteczność często rozumiana jest jako synonim łatwości użytkowania aplikacji.\n",
|
||||
"\n",
|
||||
"Zapewnienie, aby aplikacja używana była **łatwo** nie jest zadaniem banalnym. Wymaga odpowiedzenia sobie na wiele pytań, na które odpowiedzi mogą być zupełnie różne w zależności od typu aplikacji."
|
||||
]
|
||||
}
|
||||
],
|
||||
|
BIN
materiały na PPB (wykład)/obrazy/diagram Venna.png
Normal file
BIN
materiały na PPB (wykład)/obrazy/diagram Venna.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 110 KiB |
Loading…
Reference in New Issue
Block a user