Chcesz zobaczyć jak poprawnie tworzyć skalowalne aplikacje na Androida, abyś mógł czerpać przyjemność rozwijając je?

Tworzenie dobrych aplikacji na Androida jeszcze nigdy nie było takie łatwe!

Czy wiesz, że już ponad 60% najpopularniejszych aplikacji używa Kotlina?


Google wreszcie inwestuje w narzędzia, biblioteki i architekturę aplikacji. A to oznacza, że Twój następny projekt może powstać szybciej, być bardziej przejrzysty i sprawiać Ci jeszcze więcej przyjemności.

Rozmawiałem z dziesiątkami programistów na szkoleniach, konferencjach i uczestnicząc w projektach. Osoby, które nie mają długiego doświadczenia często powtarzają to samo.

Oto problem, z którym się zmagasz: spędzasz miesiące robiąc poprawki do zgłoszonych błędów albo utrzymując aplikacje napisane jeszcze w czasach gdy „HTC Desire” był popularny. Nie masz wpływu na architekturę i kopiujesz rozwiązania napisane lata temu przez Wielkich Przedwiecznych.

Masz 12 miesięcy doświadczenia czy 12 razy po miesiącu?

Robisz te same zadania, korzystasz z tych samych narzędzi i poprawiasz kolejny NullPointerException albo przesuwasz przycisk o 1dp. Taki programistyczny Dzień Świstaka.

Ciężko Ci zmienić cokolwiek, gdy na rozmowach kwalifikacyjnych ciągle męczą Cię pytaniami o MVVM, Clean Architecture i testy jednostkowe.

Jedyne co możesz odpowiedzieć na te pytania to: słyszałem o tym na konferencji.

Zmęczony byciem w TYM SAMYM miejscu?

Oto rozwiązanie: Szkolenie Modern Android Developer

Przygotowałem szkolenie online, które w 12 tygodni pozwoli Ci wejść na wyższy poziom doświadczenia i nauczy korzystać z najnowszych narzędzi, bibliotek i technik.

Co znajdziesz w szkoleniu Modern Android Developer?


Sprawdzone wzorce projektowe,

które pozwolą Ci tworzyć skalowalne aplikacje, dzięki czemu nie będziesz miał poczucia, że tworzysz NOWY legacy code.


Najlepsze narzędzia i biblioteki,

dzięki którym zaoszczędzisz masę czasu, a to oznacza mniej siedzenia po godzinach, aby dowieść kolejny feature i więcej czasu dla rodziny i znajomych.


Sztuczki i techniki z języka Kotlin,

które pozwolą Ci pisać bardziej zwięzły i czytelny kod, dzięki czemu Twoje PR-ki będą szybciej przechodziły przez Code Review.


Zobaczysz praktyczne przykłady testów jednostkowych oraz testów UI,

które dadzą Ci większą pewność, że kod który wypuściłeś będzie działał nie tylko dziś ale i za 3 lata. 

Dodatkowo pokażę Ci przykłady konfiguracji Continuous Integration, które szybko wdrożysz w swoim projekcie. Zapomnisz o kodzie, które się nie buduje!

Kto będzie Ci pomagał?

Cześć. Nazywam się Sylwester Madej i od 6 lat pomagam programistom Androida zyskać praktyczne doświadczenie, które pozwala im tworzyć lepszej jakości aplikacje.

Aktywnie biorę udział w projektach i prowadzę szkolenia stacjonarne z zagadnień związanych z Androidem. Uczę podstaw oraz technik zaawansowanych, takich jak testowanie i bezpieczeństwo aplikacji.

Spotkałeś mnie na szkoleniu, konferencji albo oglądałeś mój tutorial na YouTube, Educativo lub Eduweb? Super. Następnym razem odezwij się do mnie.

Jeśli nie to wygooglaj mnie. Ja tutaj poczekam.

Sylwester Madej

Ale nie musisz wierzyć mi. Posłuchaj, co do powiedzenia mają uczestnicy moich szkoleń stacjonarnych.

Szkolenie rewelacyjnie poprowadzone - zwarte i oparte na dobrych przykładach.

Prowadzący skrupulatny i bardzo skupiony, odpowiadał na wszystkie pytania uczestników.
Szkolenie idealne dla średnio-zaawansowanych programistów chcących znacznie poprawić swoje umiejętności.

Szymon Mańka  //  Software Engineer w Mobica

Całościowo – uważam to szkolenie za jedno z najlepszych, w jakich uczestniczyłem.

Prowadzący wykazywał się ekspercką wiedzą zarówno z dziedziny programowania aplikacji mobilnych na platformę Android i metod programowania ekstremalnego, jak i z samego wytwarzania oprogramowania.
Sprawnie odpowiadał na wszystkie zadawane pytania. Najcenniejsze dla mnie okazały się informacje na temat bibliotek Open Source do Android (np. Dagger, Otto, Retrofit), które nie dość, że zostały dokładnie omówione, to dodatkowo poparte przykładami z praktycznym wykorzystaniem.
Wszystko na bieżąco wrzucane na GitHub i dostępne również po szkoleniu, co było jego dodatkową wartością. Kolejnym niezmiernie ważnym tematem, który pozwolił mi stać się lepszym programistą, było wprowadzenie do testów jednostkowych. "

Michał Konkel  //  Android Developer w SPEEDNET Sp. z o.o.

Kto skorzysta najwięcej?

  • Najwięcej skorzystają programiści, którzy mają min. 1 rok doświadczenia w programowaniu na Androida.
  • Jeśli masz dosyć poprawiania błędów i chciałbyś nauczyć się tworzyć skalowalne aplikacje od zera, to nie czekaj, zapisz się jeszcze dziś. Za 3 miesiące będziesz wiedział dużo więcej o tym jak to zrobić.
  • Jeśli dopiero zacząłeś lub chcesz nauczyć się podstaw, to zapraszam na moje szkolenia od podstaw.

Co otrzymasz gdy zapiszesz się dziś?

  1. 1
    12 tygodniowe szkolenie w postaci lekcji wideo, abyś mógł uczyć się we własnym tempie, dzięki czemu nie będziesz musiał brać wolnego w pracy na szkolenie.
  2. 2
    Dostęp do aktualizacji materiałów, bez ograniczeń czasowych, więc nie będziesz musiał kupować nowej wersji gdy pojawią się nowe biblioteki lub gdy MVI stanie się standardem.
  3. 3
    Pracę domową na koniec każdego tygodnia, która pozwoli Ci sprawdzić poznaną wiedzę w praktyce, więc będziesz natychmiast widział postępy w swoich umiejętnościach.
  1. 4
    Cotygodniowe Q&A z trenerem, dzięki czemu na bieżąco będziesz mógł rozwiewać wątpliwości i problemy.
  2. 5
    Dostęp do grupy z pozostałymi uczestnikami i prowadzącym, co da Ci możliwość wymiany wiedzy i budowania kontaktów z innymi ludźmi o podobnych umiejętnościach i zainteresowaniach.
  3. 6
    Kody źródłowe przykładowych aplikacji, które możesz potraktować jako szablon dla własnych projektów, co pozwoli oszczędzić Ci czas i od razu wdrożyć właściwe rozwiązania.

Agenda

Tydzień 1:

Plan Gry

1. Powitanie
2. Czy ten kurs jest dla Ciebie?
3. Czego nauczysz się w trakcie szkolenia?
4. Dlaczego musisz opanować Jetpack i Android Architecture Components?
5. Jakie aplikacje zbudujesz w trakcie szkolenia?
6. Kim jest Twój trener?
7. Grupa Modern Android Devs - spotkaj osoby podobne do Ciebie.
8. Praca domowa

Tydzień 2:

Fragmenty

1. Powitanie
2. Jakie są zastosowania fragmentów?
3. Jakie wady i zalety mają fragmenty?
4. Jak wygląda cykl życia fragmentów?
5. Jak zbudować pierwszy fragment?
6. Jak osadzić fragmentów w kodzie XML?
7. Jak wygląda zarządzanie dynamiczne fragmentami?
8. Jak przekazać argumenty do fragmentów?
9. Jak wygląda komunikacja Fragment<->Activity i Fragment<->Fragment?
10. Jak przechowywać dane we fragmencie przy zmianie konfiguracji?
11. Jak dodać menu do fragmentu?
12. Opis aplikacji: TumblrViewer
13. TumblrViewerActiviy - drawer menu
14. TumblrPostFragment - przygotowanie fragmentu i UI
15. TumblrPostFragment - pobranie listy postów, generator data class
16. TumblrPostFragment - wyswietlenie w adapterze z obrazkami i HTML
17. TumblerPostFragment - fragment z WebView i przekazywanie danych
18. Jak zbudować wersję aplikacji dla tabletów z użyciem fragmentów?
19. Jak stworzyć okno dialogowe korzystając z DialogFragment?
20. Praca domowa

Tydzień 3:

Nawigacja i Material Design

1. Powitanie

2. Jakie problemy rozwiązuje Navigation Components?

2. Import projektu startowego z Github - Solar System

3. Jak skonfigurować Navigation Components w istniejącym projekcie?

4. Jak dodać nowe fragmenty i akcje do grafu nawigacji? 

5. Jak połączyć NavigationController z BottomNavigation i Toolbar? 

6. Ładowanie lokalnych danych i przekazywanie obiektów między fragmentami

7. Wyświetlanie danych w RecyclerView

8. Przełączanie pomiędzy fragmentami dzięki kontrolce ViewPager

9. Ekran szczegółów z efektem Parallax Scrolling

10. Prace wykończeniowe

11. Praca domowa

Tydzień 4:

Data Binding i MVVM

1. Powitanie

2. Jak włączyć Data Binding i skonwertować istniejący Layout?

3. Jak Data Binding (ew. ViewBinding) pozwala zastąpić ButterKnife?

4. Wyświetlanie danych bezpośrednio z obiektów modelowych (POJO/POKO)

5. Język wyrażeń w Data Binding

6. Wzorzec Obserwatora i klasa Observable

7. Dwustronne mapowanie XML<->model  - two way Data Binding 

8. Tworzenie własnego BindingAdapter

9. Binding Collection Adapter - RecyclerView bez pisania adapterów

10. Korzystanie z LiveData zamiast typów Observable

12. Mapowanie LiveData

13. Łączenie danych z kilku obiektów LiveData

11. Praca domowa

Tydzień 5: Budowanie zaawansowanych widoków

1. Powitanie

2. Projekt BillExpert - koncept dużego projektu

3. ConstraintLayout - jeden layout, by powiązać je wszystkie

4. Layouty w BillExpert

5. Zależności pomiędzy widokami

6. Linie pomocnicze (Guidelines)

7. Wymuszanie ratio widoków

8. Łańcuchy widoków (Chains)

9. Barier i Group

10. Budowanie własnego layoutu z użyciem XML

11. onLayout i onMeasure - jak wymiarować widoki

12. Tworzenie layoutu z rysowaniem od zera

13. Dodawanie własnych atrybuty dla widoków

14. Praca domowa

Tydzień 6: Wielowątkowość i kod asynchroniczny

1. Powitanie

2. Czym się będziemy zajmować?

3. Jak działają aplikacje na Androida: MainThread i kolejka zdarzeń

4. Handler, Looper i Message

5. AsyncTask, Callbacki, RxJava

6. Coroutines - co to jest?

7. Suspended functions - jak pozbyć się callback hell?

8. Jak zmieniać wątek w trakcie wykonywania zadań?

9. Scope - automatyczne anulowanie zadań

10. Flow - programowanie reaktywne w Kotlinie

11. Porównanie Flow i RxJava

12. Współpraca Flow i LiveData

Tydzień 7: Clean Architecture i wzorce projektowe

1. Powitanie

2. MVP

3. MVVM

4. MVI

5. Clean Architecture - zasady Wujka Boba

6. Czy potrzebujesz osobnego modelu danych dla domeny, prezentacji i data?

7. Jak AAR wpisuje się w clean architecture?

8. LiveData, ViewModel

9. Jak stosować wzorzec MVVM w warstwie prezentacji?

10. Dobry sposób na strukturę pakietów z klasami. Przykładowe podejście.

11. Kiedy i jak warto dzielić projekt na moduły w Gradle? 

12. Jak zarządzać i wyświetlać błędy użytkownikowi?

13. Praca domowa

Tydzień 8: Bazy danych i Room

1. Powitanie

2. Jak działa SQLite na Androidzie?

3. Dlaczego warto zainwestować w Room?

4. Jak definiować encje (tabele w bazie danych)?

5. Tworzenie DAO i definiowanie zapytań

6. Definiowanie bazy danych i operacje CRUD.

7. Jak tworzyć bardziej złożone zapytania (obsługa count, group, join…) ?

8. Jak zapisywać dowolne typy w bazie danych korzystając z Adapterów?

9. zwracanie danych przez LiveData i automatyczne odświeżanie danych

10. Jak wczytywać dane stopniowo korzystając z biblioteki Paging?

11. Jak obsługiwać migracje pomiędzy wersjami bazy danych?

12. Praca domowa

Tydzień 9: Dependency Injection w Androidzie

1. Powitanie
2. Po co stosować wzorzec Inversion Of Control?
3. Różne implementacje IOC. Czym różni się ServiceLocator od Dependency Injection?
4. Dagger vs Koin - porównanie bibliotek
5. Koin - implementacja DI dla języka Kotlin
6. Jak wstrzyknąć zależność do fragmentu albo activity?
7. Definiowanie modułów w Koin
8. Factory vs Single vs ViewModel - różny cykl życia obiektów
9. Jak parametryzować wstrzykiwane obiekty?
10. Praca domowa

Tydzień 10: Testy jednostkowe w Androidzie

1. Powitanie

2. Dlaczego warto testować aplikacje mobilne?

3. Jakie rodzaje testów warto pisać?

4. Jak napisać pierwszy test jednostkowy?

5. TDD jako zupełnie odmienne podejście do pisania testów.

5. Jak zaślepiać zależności w testach?

6. Dlaczego warto używać Fluent Assertions np. AssertJ?

7. Praktyczny przykład TDD w Androidzie - ekran logowania do aplikacji

8. Praca domowa

Tydzień 11: Testy UI w Androidzie

1. Powitanie
2. Jak przygotować emulator do uruchamiania testów UI?

3. Jak napisać pierwszy test UI?

4. Jak testować widoki z użyciem biblioteki Espresso?

5. Jak testować komunikację pomiędzy instancjami Activity z użyciem espresso-intents. 

5. Jak podmienić implementację klienta HTTP dzięki Mockito i Koin?

6. Jak testować widoki zawierające RecyclerView?

7. Jak testować kod asynchroniczny korzystający z Coroutines?

8. Jak testować ekrany dzięki wykorzystaniu screenshotów?

9. Jak dodać Continous Integration do projektu korzystając z Github Actions.

10. Praca domowa

Tydzień 12: Firebase i Google Play Services

1. Powitanie
2. Dlaczego warto korzystać z Firebase?

3. Jak osadzić Google Maps w aplikacji?

4. Jak korzystać z Places API?

6. Jak szybko dodać logowanie / rejestrację z użyciem Firebase Authentication?

7. Jak wysyłać powiadomienia do użytkowników przez Cloud Messaging?

5. Jak śledzić błędy w aplikacji dzięki Crashlytics?

7.  Jak udostępnić aplikację dla testerów w App Distribution?

8. Praca domowa

Bonus

Kurs: "Ćwiczenia z bezpieczeństwa dla programistów Androida"

Mini kurs zawierający praktyczne ćwiczenia z mojego szkolenia stacjonarnego: „Bezpieczeństwo dla programistów Androida”?

Cena: 99 PLN Za darmo

Zacznij tworzyć skalowalne aplikacje na Androida już dziś!

Docelowa cena tego szkolenia to 797 PLN z VAT.

Edycji VIP, to pierwsza edycja, w trakcie której materiały powstają na bieżąco. Dzięki temu masz wpływ na treści, które będą zawarte w szkoleniu oraz dostajesz większy dostęp do prowadzącego.


W ramach podziękowania za Twoje zaufanie, do Edycji VIP możesz dołączyć za 797 PLN 497 PLN z VAT. Kolejna edycja będzie już w wyższej cenie.



100%
GWARANCJA ZWROTU PIENIĘDZY

Gwarancja 100% zadowolenia

Przygotowałem materiały tak, aby dały Ci maksimum wartości.

Jeżeli z dowolnych powodów kurs jednak nie będzie dla Ciebie odpowiedni, to wystarczy, że napiszesz na adres sylwester@szkolaandroida.pl i zwrócę Ci 100% Twojej wpłaty. Masz na to 30 dni.

Sylwester Madej

Frequently Asked Questions

Czemu tak drogo?

Kiedy rozpoczyna się sprzedaż kursu, a kiedy się kończy?

Kiedy rozpoczyna się kurs i jak długo trwa?

Jak długo mam dostęp do tego kursu?

Czy dostanę cały kurs od razu?

Potrzebuję polską fakturę VAT. Czy ją dostanę?

P.S. To jest najniższa cena tego szkolenia. Później będzie już tylko drożej. Pamiętaj, że kupujesz bez ryzyka i w ciągu 30 dni możesz poprosić o zwrot 100% ceny. Bez pytań i dodatkowych wymagań.

© 2020 Szkoła Androida