Návrh Školení
Základní koncepty programování
- Koncepty OOP (Orientace na objekty)
- Co je software
- Koncepce uspořádaných a neuspořádaných místností v programování
- Proč Software
Proč Apple a iOS
- Proč iOS
- Dějiny firmy Apple
- Dějiny systému iOS
- Jedinečné vlastnosti firmy Apple (USP)
- To, za co je Apple známá
- UX vs. UI
Vývojové prostředí
- Požadavky na vývojové prostředí
- Xcode a iOS SDK
- Registrace u Apple Developer Programu
- Důvody, proč aplikace mohou být zamítnuty
- Lidské rozhraní (Human Interface Guidelines)
Projekty iOS v Xcode
- Přehled Xcode
- Vytváření iOS projektu
- Spuštění aplikace na emulátoru a skutečných zařízeních
Základy Swift
- Proč Objective C a nyní proč Swift?
- Úžasné vlastnosti Swiftu
- Proměnné
- Konstanty
- Ahoj, svět! (Hello World) v Swiftu
- Vytvoření UILabel kódem
Animace obrázků a načítání obrázků
- UIImageView
- Základní animace UIView a UIImageView
- Herní pole (Playground)
- Líné načítání obrázků
- Líné vlastnosti
Třídy a scény v Swiftu
- Vytváření tříd v Swiftu
- Správa paměti
- Silné a slabé odkazy
- Konstruktory a destruktory v Swiftu
- Protokoly, Hashable a Printable
- Dědičnost
- Vytváření scén
- Implementace view kontrolerů
- Herní pole (Playground)
Životní cyklus a řetěz odpovědnosti (Responder Chain)
- Životní cyklus view
- Životní cyklus aplikace
- Řetěz odpovědnosti - metody touchBegan, touchMoved atd.
- NSTimer
Přizpůsobivé rozložení (Adaptive Layout)
- Storyboards vs. XiB
- Podpora pro více zařízení
- Velikosti ikon a orientace zařízení
- Vytváření uživatelského rozhraní kódem
- Outlets a Actions
- Protokoly - povinné a nepovinné
- Správa paměti
Oznámení a lokalizace (Notifications and Localization)
- Push oznámení - tichá a běžná push
- Lokalizace
Přehled Objective C
- Vlastnosti (Properties)
- Kategorie (Categories)
- Syntaxe funkcí
- Atributy vlastností - readWrite a readOnly
Socialní média ve iOS:
- Integrace s Facebookem
- Integrace s Twitterem
- Integrace e-mailu
- Integrace třetích stran
Komponenty uživatelského rozhraní (UI Components) ve iOS:
- UITextField
- UITextView
- UISegementControl
- UISlider
- UISwitch
- UIProgressBar
- UIPageControl
- UIStepper
- UIScrollView
- UIPicker
- UIActionSheet
- UIWebView
- SearchBar
Jiné základní komponenty a další ve iOS:
- Skupiny a složky
- Closures (uzávěry)
- Tuples (n-tice)
- URL Session
- URLRequest
- UIAlertView
- UIActivityIndicatorView
- internal, public, private
- Guard (ochrana)
- Optionals (volitelné hodnoty)
Vláknovost ve iOS:
- GCD (Grand Central Dispatch)
- NSOperationQueue
- Hlavní vlákno a pozadí vláken
Uživatelské interakce:
- Tlačítka a ovladače událostí (handlers)
- Rozpoznání posuvného gesta (Pan gesture recognition)
- Rozpoznání klepavého gesta (Tap gesture recognition)
- Vlastní tabulka (Custom Table View)
- Základy kolekčního zobrazení (Basics of Collection View)
Aplikace s více obrazovkami:
- Navigace tabulkou
- Aplikace se záložkami (Tabbed Applications)
- Kontrolery navigace (Navigation Controllers)
- Zobrazení kontroleru a různé animace při prezentaci a posouvání kontrolerů
Lokalizační služby:
- Pozice a výška nad mořem (Altitude)
- Směr kompasu
Přístup k zařízení a úložiště:
- Úložiště souborů (File Storage)
- Přístup k hudbě (Music Library Access)
- CoreData a SQLite ve iOS
- Klíčový řetěz (Key Chain)
- Uživatelské vlastnosti (User Defaults)
- PLists
- NSSearchDomain
- Koncepce složek a bezpečnost aplikací NSSearchDomain
Hlasový rámec (Speech Framework):
- Převod řeči na text (Speech to Text)
- Převod textu na řeč (Text to Speech)
Rámec pro multipeerové komunikace (Multipeer Framework):
- Odesílání dat z jednoho zařízení na druhé
- Připojení více zařízení
Sítě (Networking):
- Přístup k síti
- Serializace a deserializace JSONu
- Webové služby REST
- Základy parsování XML
Nahrání aplikace do App Store:
- ITunes Connect
- Vývojářské portály - zprostředkovací profily (Provisioning profiles)
- Nasazení a distribuce
- Spuštění aplikace na skutečném zařízení
- Nahrání aplikace do App Store
Aplikace:
- Hra Dots: https://itunes.apple.com/app/the-dots-free/id850315430
- Poznámky aplikace: Notes App
- Kontakty Aplikace
- Získání dat z serveru pomocí otevřeného API, vytvoření tabulkového zobrazení a naplnění dat, zobrazení detailů, hledání dat a použití Core Data pro ukládání dat offline
- Aplikace podle vlastního nápadu
Požadavky
Musíte mít v minulosti alespoň jednu zkušenost s programovacím jazykem.
Reference (3)
The way of transferring knowledge and the knowledge of the trainer.
Jakub Rekas - Bitcomp Sp. z o.o.
Kurz - Machine Learning on iOS
He's an experienced trainer with a real life experience in the topic he was teaching. That led the course to cover the most important topics which interests any developer working in the field, and small details would be easily overseen if he was not working in this platform. Moreover, he was giving the course using the latest versions of is and Swift (10 \ 3) and that is a huge advantage to be adapting such new technology in short time.
Abdullah Alaradi - Thiqah Business Services
Kurz - iPhone and iPad Development in Swift for iOS 8 and Xcode 6
Antonio gave is much background information, best practices and showed us useful tools to speed up our development process.