| Tytuł: | iOS deep dive for advanced software developers |
| Kod: | deep-dive |
| Kategoria: | iOS |
| Forma: | 50% wykłady / 50% warsztaty |
| Czas trwania: | 3 dni |
| Odbiorcy: | developerzy |
| Zapisy: |
Indywidualne zamówienie i dopasowanie dla grupy. |
| Logistyka: |
W siedzibie klienta lub w innym dowolnym miejscu. |
Pierwszego dnia zapoznamy się ze środowiskiem XCode.
Jednak nie będziemy się skupiać na możliwościach samego IDE w kontekście pracy z kodem, tylko na istotnych aspektach związanych z projektem, takich jak: proces, konfiguracje i fazy budowania. Opanowanie samego języka Swift nie powinno stanowić problemu dla doświadczonych developerów, jednak zrozumienie zawiłości systemu zarządzania pamięcią w kontekście tego języka to już inna kwestia. Dlatego drugą część dnia poświęcimy na zrozumienie tego zagadnienia i opanowanie narzędzi które dostarcza język Swift.
Drugiego dnia uczestnicy poznają podstawowe wzorce stosowane na platformie iOS oraz podstawową budowę każdej aplikacji. Przyjrzymy się kilku wzorcom architektonicznym pod kątem łatwości budowania modularnej aplikacji i możliwości późniejszego jej testowania.
Ostatniego dnia skupimy się na zagadnieniach związanych z testowaniem. Przechodząc przez podstawy zasad testowania, praktyki i dostępne narzędzia postaramy się odpowiedzieć na pytanie, w jaki sposób najlepiej zadbać o jakość modularnej aplikacji.
Wyróżniki szkolenia
- Jest to trzydniowe szkolenie dla software developerów z doświadczeniem w innych technologiach.
- Szeroki zakres wiedzy: od zapoznania się ze środowiskiem, sposobami konfiguracji projektu, przez mechanizm zarządzania pamięcią aż po wzorce projektowe i testowanie aplikacji - pozwoli każdemu developerowi w miarę płynnie wejść w dowolny projekt iOS.
Program Szkolenia
Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.-
iOS Podstawy- XCode
- Ogólne omówienie funkcji IDE
- Budowanie aplikacji
- Ogólne omówienie procesu
- Targety
- Konfiguracje
- Ustawienia budowania
- Fazy budowania
- Ogólne omówienie procesu
- Podpisywanie aplikacji
- Wiersz poleceń
- Ogólne omówienie funkcji IDE
- Swift - Zarządzanie pamięcią
- ARC - wprowadzenie
- Historia
- Zasada działania
- Historia
- Cykle referencji
- Słabe i silne dowiązania w obiektach
- Bloki
- Słabe i silne dowiązania w obiektach
- Optionale
- Praca z opcjonalnymi zmiennymi
- Praca z opcjonalnymi zmiennymi
- ARC - wprowadzenie
- XCode
-
Budowa aplikacji iOS- Przegląd podstawowych zagadnień.
- Popularne wzorce architektoniczne
- MVC
- MVVM
- MVP
- MVC
- Popularne wzorce projektowe
- Delegate
- Data Source
- Delegate
- Modularność
- Dlaczego poprawna hermetyzacja jest tak ważna?
- Architektura hexagonalna
- Praktyczne przykłady zastosowań w iOS
- Praktyczne przykłady zastosowań w iOS
- Dlaczego poprawna hermetyzacja jest tak ważna?
- Interfejs użytkownika
- Klasyczny UIKit
- Wprowadzenie
- Zasady budowy interfejsu
- Wprowadzenie
- Nowoczesny SwiftUI
- Wprowadzenie
- Zasady budowy interfejsu
- Mikro wprowadzenie do frameworka Combine
- Wprowadzenie
- Klasyczny UIKit
- Przegląd podstawowych zagadnień.
-
Testowanie aplikacji- Jak pisać kod podatny na testowanie
- Dobre praktyki: SOLID
- Jak zmieniać istniejący kod do dającego się testować
- Pułapki i typowe błędy
- Dobre praktyki: SOLID
- Zakres testów
- Testowanie jednostkowe
- Testowanie integracyjne
- Testowanie funkcjonalne
- Testowanie jednostkowe
- Wybrane wzorce i techniki testowe - omówienie i przykłady zastosowania
- Mock, Stub, Sut
- Memory implementation
- Test Driven Development
- Cykl czerwony-zielony-refaktoring
- Ewolucyjny rozwój kodu
- Podstawowe techniki refaktoringu
- Cykl czerwony-zielony-refaktoring
- Mock, Stub, Sut
- Testowanie interfejsów użytkownika
- Co testować?
- Page Object Pattern
- Wstrzykiwanie stanu
- Architektura pozwalająca na testy dowolnego ekranu aplikacji bez konieczności “dochodzenia” do niego.
- Co testować?
- Jak pisać kod podatny na testowanie
Pobierz program w formacie PDF
Trenerzy
Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.