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.
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
.
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ť.
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
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ť.
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:
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