Android jest otwartą, kompletną i darmową platformą mobilną. Pod jego
kontrolą pracują setki milionów urządzeń, przy czym nie są to jedynie tablety i
smartfony. Mogą to być właściwie wszystkie urządzenia, do których da się włożyć
procesor. Rynek aplikacji mobilnych dla Androida to raj dla programistów, jednak sukces
zależy od pomysłu, talentu i wysokiej jakości tworzonych aplikacji.
Będzie niezastąpiona dla początkujących, którzy dzięki niej zyskają solidne
podstawy, ale docenią ją również poważni projektanci profesjonalnych aplikacji.
Kompleksowo prezentuje środowisko Android Studio oraz Android SDK, opisuje nowy system
uprawnień w Android 6.0, przedstawia sposób wykorzystania bazy SQLite, pokazuje sporo
sztuczek i porad związanych z programowaniem na Androida — a to wszystko, by możliwie
najpełniej i najstaranniej wyeksponować aktualne i najbardziej interesujące
możliwości tej platformy.
Najważniejsze zagadnienia ujęte w książce:
O autorach (25)
Wprowadzenie (27)
- Kto powinien przeczytać tę książkę (27)
- Kluczowe pytania, na jakie odpowiada ta książka (28)
- Struktura książki (29)
- Opis zmian wprowadzonych w tym wydaniu książki (30)
- Środowiska programistyczne wykorzystane w tej książce (32)
- Dostępne materiały dodatkowe (33)
- Konwencje stosowane w książce (33)
- Gdzie szukać dodatkowych informacji (34)
- Kontakt z autorami (35)
CZĘŚĆ I. OGÓLNE INFORMACJE O PLATFORMIE ANDROID (37)
Rozdział 1. Prezentacja systemu Android (39)
- Android Open Source Project (AOSP) (39)
- Open Handset Alliance (40)
- Google staje się mobilny (40)
- Prezentacja Open Handset Alliance (40)
- Dołączanie do Open Handset Alliance (41)
- Producenci - projektowanie urządzeń dla Androida (41)
- Operatorzy - dostarczanie wrażeń (42)
- Aplikacje napędzają sprzedaż urządzeń: tworzenie aplikacji na Androida (43)
- Wykorzystanie wszystkich możliwości Androida (43)
- Android: stan obecny (43)
- Co wyróżnia platformę Android? (44)
- Android - nazwy kodowe (45)
- Darmowy i otwarty (45)
- Znane i niedrogie narzędzia programistyczne (46)
- Rozsądny stopień trudności nauki programowania (47)
- Umożliwianie tworzenia potężnych aplikacji (47)
- Bogate i bezpieczne możliwości integracji aplikacji (47)
- Brak kosztownych przeszkód utrudniających publikację (48)
- "Otwarty rynek" aplikacji (48)
- Rozwijająca się platforma (49)
- Platforma Android (50)
- Architektura Androida (50)
- Bezpieczeństwo i uprawnienia (52)
- Pisanie aplikacji na Androida (53)
- Android poza OHA i GMS (56)
- Fire OS firmy Amazon (57)
- Cyanogen OS i CyanogenMod (57)
- Maker Movement oraz Open-Source Hardware (57)
- Szersze spojrzenie (58)
- Podsumowanie (58)
- Pytania kwizowe (59)
- Ćwiczenia (59)
- Odwołania i inne źródła informacji (59)
Rozdział 2. Przygotowywanie środowiska programistycznego (61)
- Konfiguracja środowiska programistycznego (61)
- Konfiguracja własnego systemu do debugowania urządzenia (64)
- Konfiguracja urządzenia do debugowania (65)
- Aktualizacja Android Studio (66)
- Aktualizacja Android SDK (67)
- Problemy z Android Studio (67)
- Problemy z Android SDK (68)
- IntelliJ IDEA jako alternatywa dla Android Studio (68)
- Poznajemy Android SDK (69)
- Zrozumienie postanowień licencji (69)
- Korzystanie z dokumentacji Android SDK (70)
- Prezentacja szkieletu programowania aplikacji (70)
- Poznawanie narzędzi Android SDK (73)
- Poznawanie aplikacji przykładowych (76)
- Podsumowanie (79)
- Pytania kwizowe (79)
- Ćwiczenia (79)
- Odwołania i inne źródła informacji (80)
Rozdział 3. Pierwsza aplikacja na Androida (81)
- Testowanie środowiska programistycznego (81)
- Importowanie aplikacji przykładowej BorderlessButtons do Android Studio (82)
- Korzystanie z preinstalowanego AVD do uruchamiania aplikacji BorderlessButtons (84)
- Uruchamianie aplikacji BorderlessButtons w emulatorze Androida (86)
- Budowanie pierwszej aplikacji na Androida (88)
- Tworzenie i konfiguracja nowego projektu aplikacji (89)
- Wyjaśnienie symbolicznego widoku Android oraz klasycznego widoku Project (93)
- Podstawowe pliki i katalogi aplikacji na Androida (94)
- Uruchamianie aplikacji w emulatorze (95)
- Debugowanie aplikacji w emulatorze (96)
- Dodawanie mechanizmów rejestracji do aplikacji (100)
- Debugowanie aplikacji na fizycznym urządzeniu (101)
- Podsumowanie (104)
- Pytania kwizowe (105)
- Ćwiczenia (106)
- Odwołania i inne źródła informacji (106)
CZĘŚĆ II. KLUCZOWE INFORMACJE O KONSTRUKCJI APLIKACJI NA ANDROIDA (107)
Rozdział 4. Prezentacja komponentów aplikacji (109)
- Opanowanie najważniejszej terminologii (109)
- Kontekst aplikacji (110)
- Pobieranie kontekstu aplikacji (111)
- Stosowanie kontekstu aplikacji (111)
- Realizacja działań przy użyciu aktywności (112)
- Cykl życia aktywności (113)
- Organizowanie komponentów aplikacji przy użyciu fragmentów (118)
- Zarządzanie zmianami aktywności przy użyciu intencji (120)
- Przechodzenie pomiędzy aktywnościami przy użyciu intencji (120)
- Organizacja aktywności, fragmentów i intencji w menu nawigacyjnym aplikacji (122)
- Praca z usługami (123)
- Odbieranie oraz rozgłaszanie intencji (124)
- Podsumowanie (125)
- Pytania kwizowe (125)
- Ćwiczenia (126)
- Odwołania i inne źródła informacji (126)
Rozdział 5. Definiowanie manifestu (127)
- Konfiguracja aplikacji na Androida przy użyciu pliku manifestu (127)
- Edycja pliku manifestu (128)
- Zarządzanie tożsamością aplikacji (130)
- Określanie nazwy oraz ikony aplikacji (131)
- Określanie wymagań systemowych aplikacji (131)
- Ograniczenia związane z platformą (132)
- Ustawienia związane z konfiguracją innych aplikacji i filtrów (134)
- Rejestracja aktywności w pliku manifestu (134)
- Określanie aktywności będącej głównym punktem wejścia aplikacji przy użyciu
filtra intencji (135)
- Konfiguracja innych filtrów intencji (135)
- Rejestracja innych komponentów aplikacji (136)
- Stosowanie uprawnień (136)
- Rejestracja uprawnień wymaganych przez aplikację (137)
- Rejestracja uprawnień wymaganych przez aplikację (139)
- Poznawanie innych ustawień podawanych w manifeście (140)
- Podsumowanie (141)
- Pytania kwizowe (141)
- Ćwiczenia (141)
- Odwołania i inne źródła informacji (142)
Rozdział 6. Zarządzanie zasobami aplikacji (143)
- Czym są zasoby? (143)
- Przechowywanie zasobów aplikacji (144)
- Typy wartości zasobów (144)
- Programowy dostęp do zasobów (148)
- Określanie wartości prostych zasobów w Android Studio (148)
- Praca z różnymi typami zasobów (152)
- Łańcuchy znaków (152)
- Stosowanie łańcuchów z zasobów do formatowania tekstów (153)
- Praca z łańcuchami wyrażającymi liczbę mnogą (154)
- Praca z tablicami łańcuchów znaków (155)
- Praca z wartościami logicznymi (156)
- Praca z liczbami całkowitymi (157)
- Praca z kolorami (157)
- Praca z wymiarami (158)
- Programowe stosowanie zasobów z wymiarami (159)
- Praca z zasobami graficznymi (159)
- Praca z obrazami (161)
- Praca z listami stanów kolorów (163)
- Praca z animacjami (164)
- Praca z menu (166)
- Praca z plikami XML (168)
- Praca z nieprzetworzonymi plikami (168)
- Odwołania do zasobów (169)
- Praca z układami (170)
- Projektowanie układów w Android Studio (172)
- Programowe korzystanie z zasobów definiujących układy (174)
- Odwołania do zasobów systemowych (175)
- Podsumowanie (176)
- Pytania kwizowe (176)
- Ćwiczenia (177)
- Odwołania i inne źródła informacji (177)
Rozdział 7. Prezentacja elementów interfejsu użytkownika (179)
- Prezentacja widoków i układów (179)
- Widoki (179)
- Kontrolki systemu Android (179)
- Prezentacja układów (180)
- Wyświetlanie tekstów przy użyciu TextView (181)
- Konfiguracja układu oraz określanie wymiarów (181)
- Umieszczanie w tekście kontekstowych odnośników (182)
- Pobieranie danych od użytkowników za pomocą pól tekstowych (184)
- Pobieranie danych przy użyciu kontrolek EditText (185)
- Ograniczanie możliwości wprowadzania danych z zastosowaniem filtrów (186)
- Wspomaganie wpisywania przy użyciu automatycznego uzupełniania (187)
- Kontrolka Spinner - zapewnianie możliwości wyboru (189)
- Stosowanie przycisków i przełączników (191)
- Stosowanie zwyczajnych przycisków (192)
- Stosowanie pól wyboru i przełączników (194)
- Stosowanie kontrolek RadioGroup oraz RadioButton (195)
- Pobieranie daty, godziny i liczb (197)
- Prezentacja postępów i aktywności przy użyciu wskaźników (199)
- Prezentacja postępów za pomocą paska postępu (199)
- Sygnalizowanie aktywności za pomocą pasków aktywności oraz kołowych znaczników
aktywności (202)
- Modyfikacja postępu przy użyciu kontrolki SeekBar (202)
- Inne użyteczne kontrolki interfejsu użytkownika (203)
- Wyświetlanie oceny przy użyciu kontrolki RatingBar (203)
- Prezentacja upływu czasu za pomocą minutnika (204)
- Wyświetlanie czasu (205)
- Odtwarzanie wideo przy użyciu kontrolki VideoView (206)
- Podsumowanie (207)
- Pytania kwizowe (208)
- Ćwiczenia (208)
- Odwołania i inne źródła informacji (208)
Rozdział 8. Umiejscawianie elementów z użyciem układów (211)
- Tworzenie interfejsów użytkownika w systemie Android (211)
- Definiowanie układów w zasobach aplikacji (211)
- Programowe tworzenie układów (213)
- Organizacja interfejsu użytkownika aplikacji (215)
- Stosowanie klas potomnych ViewGroup do projektowania układów (216)
- Stosowanie klas potomnych ViewGroup jako pojemników (216)
- Stosowanie wbudowanych układów (217)
- Układ LinearLayout (218)
- Układ RelativeLayout (220)
- Układ FrameLayout (223)
- Układ TableLayout (226)
- Stosowanie układu GridLayout (228)
- Stosowanie wielu układów jednocześnie (231)
- Stosowanie wbudowanych klas pojemników (232)
- Pojemniki działające na podstawie danych (232)
- Dodawanie możliwości przewijania (237)
- Prezentacja innych rodzajów pojemników (237)
- Podsumowanie (239)
- Pytania kwizowe (239)
- Ćwiczenia (239)
- Odwołania i inne źródła informacji (240)
Rozdział 9. Dzielenie interfejsu aplikacji z użyciem fragmentów (243)
- Wyjaśnienie pojęcia fragmentu (243)
- Opis cyklu życia obiektów Fragment (245)
- Zarządzanie modyfikacjami fragmentów (246)
- Stosowanie specjalnych typów fragmentów (247)
- Projektowanie aplikacji korzystających z fragmentów (248)
- Stosowanie pakietu biblioteki wsparcia (256)
- Dodawanie wsparcia dla fragmentów do starych aplikacji (256)
- Stosowanie fragmentów w nowych aplikacjach przeznaczonych dla starszych wersji
platformy (257)
- Dołączanie pakietu Support Library do aplikacji (257)
- Dodatkowe sposoby stosowania fragmentów (259)
- Fragmenty funkcjonalne pozbawione interfejsu użytkownika (259)
- Poznawanie zagnieżdżonych fragmentów (259)
- Podsumowanie (259)
- Pytania kwizowe (260)
- Ćwiczenia (260)
- Odwołania i inne źródła informacji (261)
CZĘŚĆ III. KLUCZOWE ZAGADNIENIA PROJEKTOWANIA APLIKACJI (263)
Rozdział 10. Określanie architektury z użyciem wzorców (265)
- Określanie architektury nawigacji (265)
- Scenariusze nawigacyjne aplikacji na Androida (266)
- Uruchamianie zadań i poruszanie się po stosie cofnięć (269)
- Nawigacja a fragmenty (269)
- Relacje pomiędzy ekranami (269)
- Wzorce projektowe nawigacji stosowane w Androidzie (270)
- Zachęcanie do wykonywania akcji (276)
- Menu (277)
- Paski akcji (278)
- Pływający przycisk akcji (282)
- Akcje zależne od zawartości aplikacji (282)
- Okna dialogowe (283)
- Podsumowanie (291)
- Pytania kwizowe (291)
- Ćwiczenia (292)
- Odwołania i inne źródła informacji (292)
Rozdział 11. Stosowanie stylów do poprawy wizualnej atrakcyjności aplikacji
(295)
- Style ze wsparciem bibliotek (295)
- Motywy i style (296)
- Definiowanie domyślnego motywu aplikacji (296)
- Dziedziczenie motywów i stylów (297)
- Kolory (298)
- Układ (300)
- Elementy <merge> i <include> (300)
- Widżet TextInputLayout (301)
- Przycisk FloatingActionButton (301)
- Widżet Toolbar jako dolny pasek aplikacji (302)
- Określanie markowego wyglądu aplikacji (303)
- Separatory i odstępy (304)
- Menu (305)
- Uzyskane wyniki (305)
- Typografia (305)
- Podsumowanie (306)
- Pytania kwizowe (307)
- Ćwiczenia (307)
- Odwołania i inne źródła informacji (308)
Rozdział 12. Stosowanie Material Design (311)
- Zrozumienie Material Design (311)
- Domyślny motyw Material (312)
- Aplikacja SampleMaterial (312)
- Implementacja aplikacji SampleMaterial (312)
- Zależności (313)
- Style wspomagające Material Design (313)
- Wyświetlanie zbioru danych na liście (314)
- Podsumowanie (336)
- Pytania kwizowe (336)
- Ćwiczenia (336)
- Odwołania i inne źródła informacji (337)
Rozdział 13. Projektowanie zgodnych aplikacji (339)
- Maksymalizacja zgodności aplikacji (339)
- Projektowanie interfejsów użytkownika pod kątem zgodności (342)
- Stosowanie fragmentów (343)
- Stosowanie API dostępnych w bibliotekach wsparcia (344)
- Wsparcie dla konkretnych typów ekranów (344)
- Stosowanie elastycznej grafiki typu Nine-Patch (345)
- Wykorzystywanie zasobów alternatywnych (345)
- Przedstawienie sposobu wyznaczania zasobów alternatywnych (346)
- Organizowanie zasobów alternatywnych z użyciem kwalifikatorów (347)
- Stosowanie zasobów dla różnych orientacji (353)
- Programowe stosowanie zasobów alternatywnych (354)
- Efektywna organizacja zasobów aplikacji (354)
- Przygotowywanie aplikacji dla tabletów i telewizorów (357)
- Aplikacje na tablety (357)
- Aplikacje na telewizory (359)
- Rozszerzanie zasięgu aplikacji na zegarki i samochody (360)
- Zapewnianie zgodności z SafetyNet (361)
- Podsumowanie (362)
- Pytania kwizowe (363)
- Ćwiczenia (363)
- Odwołania i inne źródła informacji (363)
CZĘŚĆ IV. KLUCZOWE ZAGADNIENIA PROGRAMOWANIA APLIKACJI NA ANDROIDA (365)
Rozdział 14. Stosowanie preferencji (367)
- Korzystanie z preferencji aplikacji (367)
- Określanie, kiedy stosowanie preferencji jest właściwe (367)
- Zapisywanie w preferencjach wartości różnych typów (368)
- Tworzenie prywatnych preferencji (368)
- Tworzenie wspólnych preferencji używanych przez większą liczbę aktywności (368)
- Przeszukiwanie i odczyt preferencji (369)
- Dodawanie, aktualizacja oraz usuwanie preferencji (369)
- Reagowanie na zmiany w preferencjach (371)
- Odnajdywanie danych preferencji w systemie plików Androida (371)
- Tworzenie łatwych do zarządzania preferencji użytkownika (372)
- Tworzenie pliku zasobów preferencji (372)
- Stosowanie klasy PreferenceActivity (374)
- Organizowanie preferencji dzięki wykorzystaniu nagłówków (376)
- Automatyczna kopia zapasowa aplikacji na Androida (380)
- Podsumowanie (381)
- Pytania kwizowe (381)
- Ćwiczenia (381)
- Odwołania i inne źródła informacji (382)
Rozdział 15. Dostęp do plików i katalogów (383)
- Korzystanie z danych aplikacji na urządzeniu (383)
- Dobre praktyki związane z zarządzaniem plikami (384)
- Wyjaśnienie kwestii uprawnień do plików w Androidzie (385)
- Praca z plikami i katalogami (386)
- Badanie katalogów aplikacji (386)
- Praca z innymi katalogami i plikami w systemie plików Androida (391)
- Podsumowanie (394)
- Pytania kwizowe (394)
- Ćwiczenia (394)
- Odwołania i inne źródła informacji (395)
Rozdział 16. Zapisywanie informacji w bazach danych SQLite (397)
- Dodawanie bazy SQLite do aplikacji SampleMaterial (397)
- Praca z bazami danych (398)
- Zapewnianie dostępu do danych (399)
- Aktualizacja klasy SampleMaterialActivity (400)
- Aktualizacja konstruktora klasy SampleMaterialAdapter (401)
- Usuwanie operacji na bazie z głównego wątku interfejsu użytkownika (401)
- Tworzenie kart w bazie danych (402)
- Pobieranie wszystkich kart (403)
- Dodawanie nowej karty (404)
- Aktualizacja kart (405)
- Usuwanie karty (406)
- Podsumowanie (407)
- Pytania kwizowe (408)
- Ćwiczenia (408)
- Odwołania i inne źródła informacji (408)
Rozdział 17. Stosowanie dostawców treści (411)
- Prezentacja dostawców treści (411)
- Stosowanie dostawcy treści MediaStore (412)
- Stosowanie dostawcy danych CallLog (414)
- Korzystanie z dostawcy treści CalendarContract (416)
- Stosowanie dostawcy treści UserDictionary (417)
- Korzystanie z dostawcy treści VoicemailContract (417)
- Stosowanie dostawcy treści Settings (417)
- Prezentacja dostawcy treści ContactsContract (417)
- Modyfikacja danych dostawców treści (419)
- Dodawanie rekordów (419)
- Aktualizacja rekordów (421)
- Usuwanie rekordów (421)
- Korzystanie z dostawców treści innych firm (422)
- Podsumowanie (423)
- Pytania kwizowe (423)
- Ćwiczenia (423)
- Odwołania i inne źródła informacji (424)
CZĘŚĆ V. KLUCZOWE ZAGADNIENIA ROZPOWSZECHNIANIA APLIKACJI (425)
Rozdział 18. Proces tworzenia oprogramowania mobilnego (427)
- Prezentacja procesu tworzenia oprogramowania mobilnego (427)
- Wybór metodologii tworzenia oprogramowania (428)
- Zrozumienie niebezpieczeństw metody kaskadowej (428)
- Zrozumienie znaczenia powtarzania (429)
- Gromadzenie wymagań aplikacji (429)
- Określanie wymagań projektowych (429)
- Tworzenie przypadków użycia aplikacji na Androida (432)
- Dołączanie wymagań i zaleceń innych podmiotów (433)
- Zarządzanie bazą danych urządzeń (433)
- Szacowanie ryzyka związanego z projektem (437)
- Określanie urządzeń docelowych (437)
- Pozyskiwanie urządzeń docelowych (439)
- Określanie możliwości zaspokojenia wymagań aplikacji (440)
- Rozumienie ryzyka związanego z zapewnianiem jakości (440)
- Pisanie ważnej dokumentacji projektowej (442)
- Tworzenie planów testowania na potrzeby kontroli jakości (442)
- Dostarczanie dokumentacji wymaganej przez inne podmioty (443)
- Dokumentacja na potrzeby utrzymania i przenoszenia (443)
- Korzystanie z systemów zarządzania konfiguracjami (443)
- Wybór systemu zarządzania kodem źródłowym (443)
- Implementacja działającego systemu numeracji wersji aplikacji (444)
- Projektowanie aplikacji na Androida (445)
- Znajomość ograniczeń urządzeń z Androidem (445)
- Poznawanie wspólnych architektur aplikacji na Androida (445)
- Projektowanie aplikacji pod kątem jej rozszerzania i pielęgnacji (446)
- Projektowanie pod kątem możliwości współdziałania aplikacji (447)
- Tworzenie aplikacji na Androida (448)
- Testowanie aplikacji na Androida (448)
- Kontrola wersji testowych aplikacji (449)
- Wdrażanie aplikacji na Androida (450)
- Określanie rynków docelowych (450)
- Wsparcie i pielęgnacja aplikacji na Androida (450)
- Śledzenie i weryfikacja informacji o awariach (451)
- Testowanie aktualizacji oprogramowania układowego (451)
- Prowadzenie odpowiedniej dokumentacji aplikacji (451)
- Wprowadzanie zmian na działającym serwerze (452)
- Określanie możliwości przenoszenia aplikacji obciążonego niewielkim ryzykiem (452)
- Selekcja możliwości aplikacji (452)
- Podsumowanie (452)
- Pytania kwizowe (453)
- Ćwiczenia (453)
- Odwołania i inne źródła informacji (453)
Rozdział 19. Planowanie doświadczeń użytkowników (455)
- Myślenie o celach (455)
- Cele użytkowników (456)
- Cele twórców aplikacji (456)
- Cele innych zainteresowanych stron (457)
- Techniki konkretyzowania wysiłków wkładanych w rozwój projektu (457)
- Persony (457)
- Mapowanie historii użytkowników (458)
- Wykrywanie i organizacja encji (458)
- Planowanie interakcji użytkowników (459)
- Wyrażanie tożsamości aplikacji (460)
- Projektowanie układów ekranów (462)
- Szkice (462)
- Szkielety (462)
- Kompozycje projektowe (462)
- Właściwe reagowanie z wykorzystaniem wizualnych informacji zwrotnych (463)
- Obserwowanie docelowej grupy odbiorców w celu poprawy użyteczności aplikacji (463)
- Tworzenie atrapy aplikacji (464)
- Testowanie wersji finalnej aplikacji (465)
- Podsumowanie (465)
- Pytania kwizowe (465)
- Ćwiczenia (466)
- Odwołania i inne źródła informacji (466)
Rozdział 20. Projektowanie i tworzenie niezawodnych aplikacji na Androida
(467)
- Najlepsze praktyki projektowania niezawodnych aplikacji na Androida (467)
- Zaspokajanie wymagań użytkowników urządzeń z Androidem (468)
- Projektowanie interfejsu użytkownika aplikacji na Androida (468)
- Projektowanie stabilnych i szybko reagujących aplikacji mobilnych (470)
- Projektowanie bezpiecznych aplikacji na Androida (472)
- Projektowanie aplikacji na Androida w celu maksymalizacji zysków (473)
- Korzystanie z wytycznych dotyczących zachowania jakości podczas projektowania
aplikacji na Androida (474)
- Stosowanie standardów jakości firm trzecich (475)
- Projektowanie aplikacji pod kątem prostoty ich utrzymania i aktualizacji (476)
- Projektowanie aplikacji przy wykorzystaniu narzędzi Androida (478)
- Unikanie głupich błędów podczas projektowania aplikacji na Androida (478)
- Najlepsze praktyki stosowane przy tworzeniu wysokiej jakości aplikacji na Androida
(479)
- Określanie procesu produkcyjnego dostosowanego do tworzenia oprogramowania mobilnego
(479)
- Wczesne i częste testowanie możliwości wykonania projektu (480)
- Stosowanie standardów kodowania, weryfikacji i testów jednostkowych w celu poprawienia
jakości kodu (480)
- Obsługa usterek występujących na jednym urządzeniu (483)
- Korzystanie z narzędzi Androida przy pisaniu aplikacji (484)
- Unikanie głupich błędów podczas tworzenia aplikacji na Androida (484)
- Podsumowanie (485)
- Pytania kwizowe (485)
- Ćwiczenia (485)
- Odwołania i inne źródła informacji (486)
Rozdział 21. Testowanie aplikacji na Androida (487)
- Najlepsze praktyki testowania oprogramowania mobilnego (487)
- Projektowanie systemu rejestracji defektów na potrzeby tworzenia oprogramowania
mobilnego (487)
- Zarządzanie środowiskiem testowym (489)
- Maksymalizacja pokrycia testów (492)
- Stosowanie narzędzi Android SDK do testowania aplikacji na Androida (500)
- Unikanie głupich błędów podczas testowania aplikacji na Androida (502)
- Podstawowe informacje o testowaniu aplikacji na Androida (502)
- Testy jednostkowe z użyciem JUnit (503)
- Prezentacja aplikacji PasswordMatcher (504)
- Określanie, czego powinny dowieść testy jednostkowe (507)
- Tworzenie konfiguracji uruchomieniowej na potrzeby kodu testowego (507)
- Pisanie testów (511)
- Wykonywanie pierwszego testu z wykorzystaniem narzędzi Android Studio (513)
- Analiza wyników testów (513)
- Dodawanie kolejnych testów (514)
- Inne programy i API do automatyzacji testów aplikacji na Androida (517)
- Podsumowanie (518)
- Pytania kwizowe (519)
- Ćwiczenia (519)
- Odwołania i inne źródła informacji (519)
Rozdział 22. Rozpowszechnianie aplikacji na Androida (521)
- Wybór odpowiedniego modelu dystrybucji (521)
- Ochrona swojej własności intelektualnej (522)
- Zachowanie zgodności z regulaminem Google Play (523)
- Pobieranie opłat od użytkowników (523)
- Przygotowywanie aplikacji do publikacji (525)
- Przygotowanie kodu do utworzenia pakietu instalacyjnego (525)
- Tworzenie pakietu aplikacji i jego podpisywanie (527)
- Testowanie publikowanej wersji pakietu aplikacji (531)
- Dołączanie wszystkich niezbędnych zasobów (531)
- Przygotowanie serwerów i usług (531)
- Dystrybucja aplikacji (531)
- Publikowanie aplikacji w Google Play (532)
- Rejestracja w Google Play w celu publikowania aplikacji (532)
- Przesyłanie aplikacji do Google Play (535)
- Przesyłanie materiałów marketingowych aplikacji (537)
- Konfiguracja szczegółowych informacji dotyczących opłat oraz dystrybucji aplikacji
(537)
- Konfigurowanie innych opcji aplikacji (539)
- Zarządzanie pozostałymi opcjami Developer Console (539)
- Publikowanie aplikacji w Google Play (539)
- Zarządzanie aplikacją w sklepie Google Play (540)
- Mechanizm wdrażania etapami (541)
- Publikowanie aplikacji w prywatnym kanale Google Play (542)
- Tłumaczenie aplikacji (542)
- Publikowanie aplikacji w alternatywnych kanałach dystrybucji (543)
- Samodzielne publikowanie aplikacji (544)
- Podsumowanie (545)
- Pytania kwizowe (546)
- Ćwiczenia (546)
- Odwołania i inne źródła informacji (546)
DODATKI (549)
Dodatek A. Wskazówki i sztuczki: Android Studio (551)
- Organizacja przestrzeni roboczej w Android Studio (551)
- Integracja z usługami kontroli kodów źródłowych (551)
- Zmiana położenia okien w Android Studio (552)
- Zmiana wielkości okna edytora (552)
- Zmiana wielkości okna Tools (553)
- Wyświetlanie okien edytora jedno przy drugim (553)
- Wyświetlanie dwóch fragmentów tego samego pliku (553)
- Zamykanie niepotrzebnych kart (554)
- Zachowywanie kontroli nad oknami edytora (555)
- Tworzenie niestandardowych filtrów dzienników (556)
- Przeszukiwanie projektu (557)
- Organizowanie zadań Android Studio (558)
- Pisanie kodu w Javie (558)
- Stosowanie automatycznego uzupełniania (558)
- Tworzenie nowych klas i metod (559)
- Organizowanie instrukcji importu (559)
- Formatowanie kodu (559)
- Możliwość modyfikowania niemal wszystkich nazw (560)
- Refaktoryzacja kodu (560)
- Reorganizacja kodu (562)
- Narzędzie Intention Actions (562)
- Przygotowywanie dokumentacji Javadoc (563)
- Rozwiązywanie tajemniczych błędów budowy (563)
- Podsumowanie (563)
- Pytania kwizowe (563)
- Ćwiczenia (564)
- Odwołania i inne źródła informacji (564)
Dodatek B. Krótki przewodnik po emulatorze Androida (565)
- Symulacja rzeczywistości - przeznaczenie emulatora (565)
- Korzystanie z różnych urządzeń wirtualnych (AVD) (567)
- Stosowanie programu Android Virtual Device Manager (568)
- Tworzenie AVD (570)
- Tworzenie AVD z niestandardowymi ustawieniami komponentów sprzętowych (574)
- Uruchamianie emulatora z użyciem konkretnego AVD (575)
- Zapewnianie wydajności pracy emulatora (576)
- Uruchamianie emulatora w celu wykonania aplikacji (577)
- Uruchamianie emulatora z poziomu programu Android Virtual Device Manager (580)
- Konfiguracja położenia GPS w emulatorze (581)
- Symulowanie przychodzących połączeń telefonicznych na emulatorze Androida (583)
- Przesyłanie SMS-ów do emulatora Androida (584)
- Interakcja z emulatorem z poziomu konsoli (585)
- Wykorzystanie konsoli do symulowania odbieranych połączeń (586)
- Stosowanie konsoli do symulowania wiadomości SMS (587)
- Stosowanie konsoli do przesyłania współrzędnych GPS (589)
- Stosowanie konsoli do monitorowania transmisji sieciowych (590)
- Stosowanie konsoli do modyfikowania ustawień zasilania (590)
- Inne polecenia konsoli emulatora (591)
- Personalizacja emulatora (591)
- Ograniczenia emulatora (592)
- Podsumowanie (593)
- Pytania kwizowe (593)
- Ćwiczenia (594)
- Odwołania i inne źródła informacji (594)
Dodatek C. Krótki przewodnik po programie Device Monitor (595)
- Korzystanie z programu Device Monitor w Android Studio oraz jako niezależnej aplikacji
(595)
- Szybka prezentacja kluczowych możliwości Device Monitora (597)
- Obsługa procesów, wątków i sterty (597)
- Dołączanie debugera do aplikacji (598)
- Zatrzymywanie procesu (598)
- Monitorowanie aktywności wątku aplikacji (598)
- Monitorowanie operacji wykonywanych na stercie (599)
- Wymuszenie oczyszczania pamięci (600)
- Tworzenie i stosowanie plików HPROF (601)
- Stosowanie karty Allocation Tracker (602)
- Przeglądanie statystyk wykorzystania sieci (603)
- Zarządzanie plikami (604)
- Przeglądanie systemu plików w emulatorze lub na urządzeniu (605)
- Kopiowanie plików z emulatora lub urządzenia (606)
- Kopiowanie plików do emulatora lub urządzenia (606)
- Usuwanie plików na emulatorze lub urządzeniu (607)
- Stosowanie zakładki Emulator Control (607)
- Zmiana stanu telefonii (607)
- Symulowanie przychodzących połączeń telefonicznych (608)
- Symulowanie nadsyłanych wiadomości SMS (609)
- Przesyłanie współrzędnych geograficznych (609)
- Korzystanie z karty System Information (609)
- Robienie zrzutów ekranu z emulatora i rzeczywistych urządzeń (610)
- Korzystanie z mechanizmów rejestracji komunikatów (611)
- Podsumowanie (612)
- Pytania kwizowe (612)
- Ćwiczenia (613)
- Odwołania i inne źródła informacji (613)
Dodatek D. Kurs mistrzowski: narzędzia Android SDK (615)
- Stosowanie dokumentacji Androida (615)
- Korzystanie z emulatora Androida (619)
- Przeglądanie dzienników aplikacji z użyciem narzędzia logcat (620)
- Debugowanie aplikacji z użyciem monitora urządzenia (620)
- Stosowanie ADB (621)
- Stosowanie edytora układów (622)
- Stosowanie podglądu hierarchii (622)
- Uruchamianie narzędzia Hierarchy Viewer (624)
- Stosowanie trybu Layout View (624)
- Optymalizacja interfejsu użytkownika (625)
- Stosowanie trybu Pixel Perfect (626)
- Stosowanie formatu graficznego Nine-Patch Stretchable Graphics (626)
- Korzystanie z innych narzędzi Android SDK (628)
- Podsumowanie (631)
- Pytania kwizowe (632)
- Ćwiczenia (632)
- Odwołania i inne źródła informacji (632)
Dodatek E. Krótki przewodnik po systemie budowy Gradle (635)
- Pliki budowy Gradle (635)
- Ustawienia projektu (637)
- Ustawienia modułów (637)
- Stosowanie Android Studio do konfigurowania procesu budowy aplikacji (641)
- Synchronizacja projektu (641)
- Konfiguracja właściwości Androida (642)
- Określanie opcji podpisywania (643)
- Konfiguracja budowy różnych wersji aplikacji (644)
- Konfigurowanie różnych typów budowy (645)
- Konfiguracja zależności aplikacji (647)
- Dodawanie zależności od bibliotek (647)
- Budowanie różnych wersji plików APK (648)
- Wykonywanie różnych zadań budowy Gradle (650)
- Podsumowanie (652)
- Pytania kwizowe (652)
- Ćwiczenia (652)
- Odwołania i inne źródła informacji (653)
Dodatek F. Odpowiedzi na pytania kwizowe (655)
- Rozdział 1. "Prezentacja systemu Android" (655)
- Rozdział 2. "Przygotowywanie środowiska programistycznego" (655)
- Rozdział 3. "Pierwsza aplikacja na Androida" (656)
- Rozdział 4. "Prezentacja komponentów aplikacji" (656)
- Rozdział 5. "Definiowanie manifestu" (656)
- Rozdział 6. "Zarządzanie zasobami aplikacji" (656)
- Rozdział 7. "Prezentacja elementów interfejsu użytkownika" (657)
- Rozdział 8. "Umiejscawianie elementów z użyciem układów" (657)
- Rozdział 9. "Dzielenie interfejsu aplikacji z użyciem fragmentów" (657)
- Rozdział 10. "Określanie architektury z użyciem wzorców" (658)
- Rozdział 11. "Stosowanie stylów do poprawy wizualnej atrakcyjności
aplikacji" (658)
- Rozdział 12. "Stosowanie Material Design" (658)
- Rozdział 13. "Projektowanie zgodnych aplikacji" (659)
- Rozdział 14. "Stosowanie preferencji" (659)
- Rozdział 15. "Dostęp do plików i katalogów" (659)
- Rozdział 16. "Zapisywanie informacji w bazach danych SQLite" (659)
- Rozdział 17. "Stosowanie dostawców treści" (660)
- Rozdział 18. "Proces tworzenia oprogramowania mobilnego" (660)
- Rozdział 19. "Planowanie doświadczeń użytkowników" (660)
- Rozdział 20. "Projektowanie i tworzenie niezawodnych aplikacji na Androida"
(661)
- Rozdział 21. "Testowanie aplikacji na Androida" (661)
- Rozdział 22. "Rozpowszechnianie aplikacji na Androida" (662)
- Dodatek A. "Wskazówki i sztuczki: Android Studio" (662)
- Dodatek B. "Krótki przewodnik po emulatorze Androida" (662)
- Dodatek C. "Krótki przewodnik po programie Device Monitor" (663)
- Dodatek D. "Kurs mistrzowski: narzędzia Android SDK" (663)
Skorowidz (665)