Vývoj iOS aplikací pro webaře

Vývoj iOS aplikací pro webaře

95a298d2bffa1b46fd023a286a8a7e86?s=128

Ondřej Mirtes

January 08, 2015
Tweet

Transcript

  1. Vývoj iOS aplikací
 pro webaře Ondřej Mirtes

  2. Webový vývoj Request Výběr a transformace dat Response Bezestavovost, izolované

    requesty
  3. Mobilní aplikace Blíže hardwaru Omezené prostředí UI – počítání pozic

    na obrazovce, animace On-line/off-line, synchronizace stavu
  4. Apple hardware, OS X, Xcode

  5. Zdarma $99 ročně IDE Simulátor Lze vyvinout plnohodnotnou aplikaci Aplikace


    na vlastním iOS zařízení Distribuce betatesterům App Store
  6. C C++ Objective-C

  7. .h .m Hlavičkový soubor Veřejné metody
 a properties Implementace 


    + privátní metody
 a properties Každá třída se skládá ze dvou souborů.
  8. Hlavičkový soubor @interface Foo @property (nonatomic, strong) Bar* barProperty; @property

    (nonatomic, strong) Baz* bazProperty; +(NSString*)staticMethod; -(void)instanceMethod; @end
  9. .m soubor @interface Foo () @property (nonatomic, strong) Bar* privateProperty;

    @end @implementation Foo -(void)instanceMethod { // tělo metody } @end
  10. Volání metody PHP $obj->someMethod(); Objective-C [obj someMethod]; Objective-C používá hranaté

    závorky, aby nedocházelo
 ke konfliktům, protože historicky vychází z C syntaxe.
  11. Volání metody PHP $obj->someMethod($foo); Objective-C [obj someMethod:foo];

  12. Volání metody PHP $obj->someMethod($foo, $bar); Objective-C [obj someMethod:foo andBar:bar]; Pokud

    voláte metodu s více parametry, název druhého
 a dalšího parametru uvádíte při volání.
  13. someMethod:andBar: canPerformSegueAction: fromViewController: withSender: webView: shouldStartWithRequest: navigationType: Názvy metod se

    uvádějí i se svými parametry. Za každou dvojtečku při volání patří předaná hodnota. V místě volání pak význam neidentifikujete jen pomocí pořadí, ale i podle názvu, což zpřehledňuje metody s větším množstvím parametrů.
  14. Volání funkce PHP dump($foo); Objective-C NSLog(foo); Funkce jsou C-čkovské, zde

    tedy syntaxe mohla být zachována
  15. Bloky – anonymní funkce PHP function () { return 'foo';

    }; Objective-C fuckingblocksyntax.com
  16. None
  17. Delegate Property delegate na objektech UITableViewDelegate „Jak má být vysoký

    řádek č. 22?“ „Mám zobrazovat v tabulce nadpisy sekcí?“ „Uživatel vybral řádek č. 4“ … Delegates slouží ke snížení provázanosti kódu, objekty informují o svém stavu a ptají se, jak se mají zachovat, objektu předaného do delegate property.
  18. Protokol – interface @protocol FooDelegate @required -(BOOL)shouldHighlightRow:(NSInteger)row; @optional -(void)selectedRow:(NSInteger)row; -(void)deselectedRow:(NSInteger)row;

    @end Pokud voláte metody, jejichž implementace je volitelná, musíte se nejdříve pomocí reflexe zeptat, zdali existují.
  19. Protokol – interface PHP class Foo implements BarDelegate Objective-C –

    v .h souboru @interface Foo <BarDelegate>
  20. Kategorie – extension methods @interface Person (PersonNameDisplayAdditions) -(NSString *)fullName; @end

    Pro doplnění veřejných metod do tříd, které nemůžeme měnit – knihovny třetích stran, systémové frameworky.
  21. Kategorie – extension methods @implementation Person (PersonNameDisplayAdditions)
 
 -(NSString *)fullName


    { return [NSString stringWithFormat:@"%@, %@", self.firstName, self.lastName]; } @end
  22. ARC Objective C nemá garbage collector strong vs. weak Vyvarovat

    se retain cyklů Nástroje pro debugging Systém uvolní objekt, na který nevedou žádné strong reference.
  23. Vícevláknové programování Hlavní vlákno *klik* UI čeká,
 uživatel může pracovat

    Předch. operace Vedlejší vlákno Prezentace
 výsledků Hard work Programuje se pomocí sériových front, takže se vyvarujete zamykání a race conditions. Technologie se nazývá
 Grand Central Dispatch.
  24. UIKit Label Komponenty pro UI nativních aplikací. Získáváte s nimi

    konzistentní chování napříč celým systémem, zdarma vyřešenou přístupnost.
  25. Storyboard UI navrhujete v Interface Builderu v Xcode. 
 Ne

    vše v něm jde nakonfigurovat, zbytek se řeší v kódu.
 Celé UI jde napsat v kódu bez využití Storyboardů,
 je to ale pracnější a méně pohodlné.
  26. Autolayout Řešení Applu pro návrh UI
 pro různě velké displeje.

    Každý prvek dostane sadu omezení, podle kterých je mu nastavována pozice a velikost. Pokud Autolayout nevyužijete, musíte detekovat použité zařízení a všechny souřadnice počítat a nastavovat v kódu manuálně. Vývojové prostředí obsahuje sadu nástrojů pro debugging.
  27. Size classes Využití stejného UI napříč různými kategoriemi zařízení, funguje

    podobně jako responsive web design. Nastavení autolayoutu můžete zapnout jen pro určité size classes.
  28. CoreAudio CoreAnimation CoreMotion MapKit HealthKit Keychain TextKit CoreLocation CoreData UIKit

    Systém obsahuje frameworky pro práci se vším, na co si vzpomenete. Pokud rozumíte syntaxi a základním principům, nebude pro vás problém je začít používat.
  29. CocoaPods platform :ios, '8.0' pod 'FMDB/standalone', '~> 2.1' pod 'RHAddressBook',

    '~> 1.0.1' pod 'FCModel', :head pod 'PiwikTracker', :head Nástroj pro správu závislostí na knihovnách třetích stran. Podobný Composeru.
  30. Swift Nový moderní jazyk od Applu, syntaxe podobná Scale. Bezpečnější,

    ale ne jednodušší jazyk.
 Generika, optionals, funkcionální prvky.
 
 Bez Objective-C se zatím neobejdete – ekosystém, principy jsou podobné. Swift také nemá garbage collector.
 
 Objective-C bridge – se Swiftem může být v jedné aplikaci
  31. Swift Materiály na iBookstore

  32. Zdroje ke studiu iTunes U – Stanford kurz iOS WWDC

    videa objc.io iosdevweekly.com WWDC videa jsou dostupná komukoli bez přihlášení
  33. @OndrejMirtes