Android. Wprowadzenie do programowania aplikacji. Wydanie V - ebook
Android. Wprowadzenie do programowania aplikacji. Wydanie V - ebook
Niniejsza książka to bezcenne kompendium dla każdego programisty piszącego aplikacje na Androida. 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:
- podstawy platformy Android, jej architektura i zasady funkcjonowania,
- architektura aplikacji mobilnej i jej cechy szczególne,
- planowanie procesu wytwarzania aplikacji mobilnych i prowadzenie kontroli jakości,
- Material Design i jego znaczenie,
- pisanie aplikacji, jej testowanie i debugowanie oraz publikacja,
- strategie tworzenia oprogramowania dla Androida.
Android — ogranicza go tylko Twoja wyobraźnia!
Joseph Annuzzi Jr jest programistą, grafikiem, przedsiębiorcą i autorem książek. Biegle posługuje się różnymi językami programowania, interesuje się kryptografią, algorytmami biometrycznymi i tworzeniem grafik 3D. Mieszka w Dolinie Krzemowej.
Lauren Darcey jest profesjonalną programistką i uznanym autorytetem w dziedzinie architektury aplikacji oraz aplikacji mobilnych.
Shane Conder od ponad dziesięciu lat pisze aplikacje dla środowisk mobilnych i osadzonych. Zaprojektował i napisał wiele komercyjnych aplikacji na Androida, iPhone’a, BREW, BlackBerry, Palm oraz dla środowisk J2ME i Windows Mobile.
Spis treści
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)
- ...
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-2613-2 |
Rozmiar pliku: | 22 MB |