Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

6. diel - Neobjavujte koleso, použite CocoaPods

V minulej lekcii, Zoznámenie sa s dôležitým komponentom TableView , sme sa naučili používať TableView. Programovali ste v inom jazyku či si hovoríte, že nemá zmysel stále dokola vynájsť koleso? Tak to ste tu dnes správne. Ukážeme si totiž, ako sa vyhnúť programovanie rovnakých vecí stále dokola.

Swift nemá oficiálnu podporu balíčkov, ako je potrebné nugety pre .NET projekty, ale to vôbec nevadí. Existuje množstvo neoficiálnych riešení a pravdepodobne najlepším je CocoaPods.

CocoaPods

Jednotlivé balíky sa označujú ako pods či skrátka pody a umožňujú nám ľahko získať funkcionalitu, ktorú už niekto naprogramoval. Plán tejto lekcie je taký, že si ukážeme, ako pody do svojho projektu dostať a tiež pár, ktoré by ste do začiatku mali poznať.

Aby ste mohli silu CocoaPods využiť, musíte najskôr CocoaPods dostať na svoj Mac (existujú dva prístupy). Následne projekt pripravíte na CocoaPods, určíte, aké balíčky chcete, a potom už stačí používať import. Neľakajte sa, na konci tutoriálu uvidíte, že malo úsilie zmysel.

Cesta terminálu

Kamarátime s terminálom? Je to jedna z možností, ako CocoaPods nainštalovať na váš Mac a potom pridávať do projektov. Existuje ale tiež jednoduchá CocoaPods aplikácia, ktorá zaistí to isté. Ak nechcete písať príkazy do terminálu, tak môžete túto časť tutoriálu preskočiť.

Otvorte terminál a začneme inštaláciou samotného CocoaPods:

sudo gem install cocoapods

Inštalácia bude pravdepodobne nejaký čas trvať.

Aplikácie

Ak ste sa rozhodli pre inštaláciu pomocou aplikácie, stiahnite si oficiálny CocoaPods aplikáciu z webu a to je zatiaľ všetko.

Ako pody fungujú

Teraz si vysvetlíme, ako pody fungujú v projekte. Zatiaľ sme mali jeden projekt pre aplikáciu. Pody majú vlastný projekt, takže CocoaPods z vášho projektu najskôr vytvorí Workspace. To jednoducho znamená, že máte viac projektov "pod jednou strechou". Príliš sa tým nemusíme zaoberať.

Druhou dôležitou súčasťou CocoaPods je súbor Podfile pre každý projekt. Práve v ňom určíte, aké pody chcete mať k dispozícii a CocoaPods sa postará o zvyšok.

Terminál

Teraz si ukážeme, ako náš projekt na pody pripraviť. V termináli si otvoríte adresár vášho projektu, kam chcete pody pridať. Mali by ste byť úplne v koreňovom adresári, čo znamená, že uvidíte súbor s koncovkou .xcodeproj, práve pre Xcode projekt. Xcode zatvorte.

Vyvíjame iOS aplikácia vo Swift

Teraz inicializujeme Cocoapods príkazom:

pod init

Opäť stačí počkať a máte projekt pripravený na pody.

Aplikácie

V aplikácii kliknite na File v hlavnom menu a vyberte New Podfile from Xcode Project. Teraz je potrebné navigovať do adresára projektu a vybrať súbor s príponou .xcodeproj. CocoaPods aplikácia vám vytvorí a otvorí Podfile.

Zložka pre inicializáciu Cocoapods - Vyvíjame iOS aplikácia vo Swift

Editácia Podfile

Pravdepodobne ste si už všimli zmien. Respektíve zmeny a tou je pridanie súboru Podfile do koreňového adresára projektu. Práve tu nastavíme, aké balíčky (pody) chceme využívať.

vytvorený Podfile - Vyvíjame iOS aplikácia vo Swift

Podfile môžete editovať v akomkoľvek editore. Pri použití aplikácie dáva zmysel ho editovať priamo v aplikácii. Ak ste Podfile vytvorili aplikácií, už ho máte otvorený. Ak ste šli cestou terminálu, tak si ho v čomkoľvek otvoríte. Pokojne priamo v Xcode.

Podfile otvorený v Xcode - Vyvíjame iOS aplikácia vo Swift

Podfile je zatiaľ viac-menej prázdny a len obsahuje informácie o tom, pre aký projekt bol vytvorený:

project 'Cocoapods_ITNetwork.xcodeproj'

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'Cocoapods_ITNetwork' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for Cocoapods_ITNetwork

end

Urobíme, ako nám hovorí komentár, a odkomentujeme riadok s globálnou definíciou platformy. To znamená, že zmažeme #, pomocou ktorého sa komentuje:

platform :ios, '9.0'

Chameleon

Používanie podov si môžeme ukázať na malom a užitočnom podu Chameleon, čo je framework pre farby v iOS. Na Github stránke projektu nájdeme inštrukcie, ako ho cez Cocoapods nainštalovať. Do nášho súboru tak pod komentár # Pods for Cocoapods_ITNetwork pridáme Chameleon ako jeden z podov:

pod 'ChameleonFramework/Swift', :git => 'https://github.com/ViccAlexander/Chameleon.git', :branch => 'wip/swift4'

Príkaz je trošku komplikovanejšia, aby framework fungoval s aktuálnou verziou Xcode a Swift 4. Bežne stačí kľúčové slovo pod a názov podu. Pre istotu si ukážeme, ako má celý Podfile v tejto fáze vyzerať:

project 'Cocoapods_ITNetwork.xcodeproj'

# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'

target 'Cocoapods_ITNetwork' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for Cocoapods_ITNetwork
  pod 'ChameleonFramework/Swift', :git => 'https://github.com/ViccAlexander/Chameleon.git', :branch => 'wip/swift4'

end

Terminál

Ak CocoaPods používate cez terminál, tak teraz Podfile uložte a spustite nasledujúci príkaz:

pod install

Aplikácie

Ak máte CocoaPods aplikáciu, tak teraz stačí len kliknúť na tlačidlo Install v pravom hornom rohu a chvíľu počkať.

Projekt s chameleóna

Teraz už projekt vyzerá zaujímavejšie. Máme tu napr. Zložku Pods/, kde práve sídli pody a tiež dôležitý súbor s koncovkou .xcworkspace. Práve ten budeme teraz používať pri otváraní projektu, pretože pody majú vlastný projekt a pri otvorení cez pôvodnej .xcodeproj nebudú fungovať.

Xcode projekt s nainštalovanými cocoapody - Vyvíjame iOS aplikácia vo Swift

Otvoríme teda projekt cez .xcworkspace a hneď si môžeme skúsiť Chameleona použiť.

Prejdeme do ViewController.swift a pridáme import čerstvo nainštalovaného podu:

import ChameleonFramework

Skúsime Build (Cmd + B), aby sme sa presvedčili, že je všetko v poriadku. Používať Chameleon Framework nemá v prázdnom projekte zmysel, tak sa len pozrieme, že funguje.

Ponúka napr. Oveľa krajší farby, ako tie systémové. Ich zoznam nájdete na stránke projektu a dostanete sa k nim cez systémovú triedu UIColor, kde sú novo dostupné ďalšie farby. Xcode nám ukáže napr. Dostupné pastelové "flat" farby:

Flat farby Chameleon frameworku pre Swift - Vyvíjame iOS aplikácia vo Swift

Už len pre farby sa oplatí framework zvážiť. Aplikácia bude s minimom úsilia vyzerať o triedu lepšie.

Ďalej vám Chameleon pomôže s gradienty, vie vygenerovať farby z obrázkov či nastaviť kontrastné farbu pre zadané pozadia. To sa hodí v prípade, keď riešite farby dynamicky a chcete, aby bol text vždy čitateľný.

Stačí k tomu jedna metóda, ktorá vráti kontrastné UIColor pre zadané pozadia a môžete si vybrať, či chcete vrátiť flat farbu.

ContrastColorOf(UIColor.flatBlue, returnFlat: true)

V jednej z ďalších lekcií CocoaPods využijeme, až si budeme ukazovať, ako získať dáta z internetu (vo formáte JSON) a ako tento formát spracovať. Oboje vie sám Swift, pomocou knižníc AlamoFire a SwiftyJSON to ale pôjde oveľa ľahšie. Dá sa povedať, že práve tieto dve sa stali takým nepísaným štandardom pre aplikácie, ktoré ťahajú dáta z internetu a pracujú s JSON formátom. V budúcej lekcii, Keď jedna obrazovka nestačí - Navigácia v iOS , sa pozrieme na navigáciu a začneme tým pracovať na sľúbené TODO aplikáciu :)


 

Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 17x (127.89 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Swift

 

Predchádzajúci článok
Zoznámenie sa s dôležitým komponentom TableView
Všetky články v sekcii
Vyvíjame iOS aplikácia vo Swift
Preskočiť článok
(neodporúčame)
Keď jedna obrazovka nestačí - Navigácia v iOS
Článok pre vás napísal Filip Němeček
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje vývoji iOS aplikací (občas macOS)
Aktivity