Kategoria: Android
Szkolenia Android dla programistów Javy z doświadczeniem, to szkolenie dedykowane osobom programującym już w języku Java chcącym przejść na platformę Android.
Dla doświadczonego programisty Javy zetknięcie z Androidem bywa frustrujące:
- API Androida zostały zaprojektowanie z perspektywy programisty C i narusza wiele dobrych Javowych obyczajów (często bez sensu);
- cykl życia komponentów aplikacji androidowej nie przypomina niczego, co można spotkać na innych platformach, czy to desktopowych, wbudowanych, czy webowych;
- niektóre dobre praktyki Javowe są w Androidzie antywzorcami (z uwagi na specyfikę maszyny wirtualnej i całego środowiska);
- brakuje wielu często używanych w Javie bibliotek i narzędzi.
Z drugiej strony znajomość Javy jest idealną podstawą, aby szybko zostać bardzo dobrym programistą mobilnym. Nasze czterodniowe szkolenie przedstawia w skondensowanej formie wszystko to, co jest potrzebne programiście Javy do opanowania Androida – począwszy od narzędzi, poprzez biblioteki, aż do architektury i dobrych praktyk. Fakt, że od uczestników wymagana jest dobra znajomość Javy, pozwala nam skupić się na androidowych konkretach, bez rozpraszania na ogólniejsze zagadnienia w rodzaju użycia kolekcji, interfejsów lub typów generycznych.
Osoby które nie znają Javy lub też znają tylko podstawy zapraszamy na kompletny kurs zawodowy Programista aplikacji Android.
Czas trwania
4 dni
Program
Program szkolenia obejmuję tematy:
- Wstęp, informacje ogólne
- kształt i specyfika aplikacji dla Androida; ramy pracy dewelopera,
- komponenty aplikacji: serwisy, aktywności, dostawcy danych, odbiorcy rozgłoszeń,
- kwestie praktyczne: poziomy API, poziom docelowy i poziom wymagany aplikacji, biblioteki compat v4 i v7, Google APIs,
- pojęcia i wzory UX: task, nawigacja, backstack, drawer, action bar, notyfikacje,
- wymuszone restarty, multitasking – strategie utrzymania danych,
- realne problemy wynikacjące z architektury androida: zasoby, bundle, paczki, taktyki serializacji, intenty…
- Budowa aplikacji typu single activity (w stylu gry zręcznościowej, quizu, soundboarda etc)
- Instalacja i obsługa Android Studio, SDK, AVD manager
- podstawy narzędzi adb, pm, am, keytool, gradle
- pożyteczne drobiazgi: toasty, logowanie, użycie logcata,
- Manifest aplikacji
- Grafika i zasoby
- Dostęp do ekranu: Window, Activity, View, Canvas,
- Menedżer zasobów: zasoby zależne od konfiguracji (gęstość, rozdzielczość, orientacja, lokalizacja), kompilacja zasobów (aapt), identyfikatory zasobów i klasa R,
- Zasoby graficzne: obrazki, 9patch, gradienty, kształty, kolory, warstwy, animacje; wbudowane zasoby graficzne: ikony, kolory; specyfika zasobów Drawable: poziom i stan zasobu, oraz ich konsekwencje dla skórkowania aplikacji
- Tworzenie własnych widoków, animacji; obsługa dotknięcia ekranu i klawiatury; stworzenie przykładowej gry zręcznościowej,
- praktyczne rozwiązania problemu aplikacji przechodzącej w tło (problem zachowania stanu),
- Tworzenie GUI
- wbudowane kontrolki graficzne; zasady używania istotnych layoutów (względnego, linearnego, ramkowego, tabelarycznego)
- wbudowane widoki i elementy GUI: guziki, teksty, obrazi, kontrolka webowa,
- style i tematy; zasoby typu attr i styleable; przy okazji rzut oka na problem zasobów dołączanych do bibliotek i potrzeba istnienia archiwów typu aar
- zbudowanie własnego, stylowalnego komponentu typu View, użycie go w graficznym designerze.
- Obsługa i prezentacja danych w aplikacji
- użycie serwisów HTTP, parsowanie JSON-a i XML-a;
- użycie klasy AsyncTask i związane z nim pułapki;
- wzorzec Flyweight, widoki sterowane adapterami (AdapterView): listy z danymi, gridy, galeria, lista rozwijana
- stary i nowy wzorzec tworzenia menu; ActionBar.
- przykładowe usługi systemowe, np. geolokacja, sensory (akcelerometr)
- odtworzanie dźwięku różnych typów (obsługa multimediów przez MediaPlayer).
- Aplikacje wielokomponentowe
- użycie intentów do wywołania zewnętrznych aktywności, przyjmowanie danych zwróconych przez zewnętrzne aktywności (np. robienie zdjęć, startowanie przeglądarki itp.),
- jak podzielić aplikację na komponenty? droga od pomysłu do konkretnego projektu,
- Wielowątkowość: Looper i Handler; użycie Handlerów z asynchroniczną obsługą grafiki (obiekt SurfaceView); niskopoziomowa obsługa kamery,
- Przykłady usług systemowych używających opóźnionych intentów: wysyłanie i odbieranie SMS-ów;
- Dane i architektura aplikacji
- trwale przechowywane dane: obsługa wewnętrznego systemu plików i karty SD,
- preferencje: dane i ekran,
- wbudowana baza danych
- API nisko- i wysokopoziomowe, wersjonowanie baz danych i związany z tym helper; pułapki związane z użyciem bazy w środowisku wielowiątkowym,
- specyfika SQlite3; użycie graficznych narzędzi do zarządzania bazą; specyfika dialektu SQL, typy, triggery, typowe problemy,
- dostawcy danych: tworzenie własnego dostawcy danych, Content Provider, Intent i Uri jako implementacja architektury REST;
- obsługa obiektów Uri (w tym budowanie i dopasowywanie);
- ContentResolver, kursory i notyfikacje o zmianach danych; zasady użycia kursorów w aplikacjach wykorzystujących Loader API (klasy ContentObserver, DataSetObserver, Loader…)
- bezpieczeństwo i eksport serwisów oraz dostawców danych; własne zezwolenia;
- Serwisy: modele restartu serwisu, zasady wywłaszczania procesów; komunikaty i GUI w pasku notyfikacji, syntetyczny backstack;
- Binder; tworzenie serwisów do komunikacji międzyprocesowej; własne obiekty typu Parcelable, generowanie kodu z użyciem Android Interface Definition Language.
- ekrany różnych wymiarów i różnej gęstości: modularyzacja GUI z użyciem fragmentów i menedżera fragmentów;
- Menu kontekstowe i jego nowocześniejsza wersja: Contextual Action Mode; CAM w połączeniu z użyciem komponentu ActionBar
- Sens i najważniejsze elementy cyklu życia fragmentu: oszczędzanie pamięci, techniki parametryzacji, fragmenty instancjonowane przez inflatera i w kodzie; komunikacja między fragmentami i aktywnością.
- swobodne zestawianie fragmentów (przykładowe strategie),
- wzorce UX i związane z nimi komponenty: switchboard, szuflada (Drawer), ViewPager
- Reagowanie na wydarzenia (Broadcast Receiver), statyczna i dynamiczna rejestracja słuchaczy; użycie rozgłoszeń jako szyny danych integrującej aplikację;
- Inne istotne zagadnienia:
- użycie przykładowego API Google Play – np. kontrolki mapowej z własnymi markerami.
- blokada procesora, pułapki;
- obiekty typu RemoteViews, możliwości i ograniczenia.
Training also available in English.
Przeznaczenie i wymagania
Szkolenia przeznaczone jest dla programistów znających już Javę. Nieznającym Javy polecamy zapisanie się na najbardziej kompleksowy kurs Programista aplikacji Android który obejmuje również swym programem niezbędne tematy dotyczące języka Java na potrzeby platformy Android.
Certyfikaty
Uczestnicy szkolenia otrzymują imienne certyfikaty sygnowane przez ALX.