Lekce 6 - Neobjevujte kolo, použijte CocoaPods
V minulé lekci, Seznámení se s důležitou komponentou TableView, jsme se naučili používat
TableView
.
Programovali jste v jiném jazyku či si říkáte, že nemá smysl stále dokola vynalézat kolo? Tak to jste zde dnes správně. Ukážeme si totiž, jak se vyhnout programování stejných věcí stále dokola.
Swift nemá oficiální podporu balíčků, jako je třeba NuGet pro .NET projekty, ale to vůbec nevadí. Existuje spousta neoficiálních řešení a pravděpodobně nejlepším je CocoaPods.
CocoaPods
Jednotlivé balíčky se označují jako pods či zkrátka pody a umožňují nám snadno získat funkcionalitu, kterou již někdo naprogramoval. Plán této lekce je takový, že si ukážeme, jak pody do svého projektu dostat a také pár, které byste do začátku měli znát.
Abyste mohli sílu CocoaPods využít, musíte nejdříve CocoaPods dostat na
svůj Mac (existují dva přístupy). Následně projekt připravíte na
CocoaPods, určíte, jaké balíčky chcete, a poté již stačí používat
import
. Neděste se, na konci tutoriálu uvidíte, že mělo
úsilí smysl.
Cesta terminálu
Kamarádíte s terminálem? Je to jedna z možností, jak CocoaPods nainstalovat na váš Mac a poté přidávat do projektů. Existuje ale také jednoduchá CocoaPods aplikace, která zajistí to samé. Jestli nechcete psát příkazy do terminálu, tak můžete tuto část tutoriálu přeskočit.
Otevřete terminál a začneme instalací samotného CocoaPods:
sudo gem install cocoapods
Instalace bude pravděpodobně nějaký čas trvat.
Aplikace
Pokud jste se rozhodli pro instalaci pomocí aplikace, stáhněte si oficiální CocoaPods aplikaci z webu a to je zatím vše.
Jak pody fungují
Nyní si vysvětlíme, jak pody fungují v projektu. Zatím jsme měli jeden projekt pro aplikaci. Pody mají vlastní projekt, takže CocoaPods z vašeho projektu nejdříve vytvoří Workspace. To jednoduše znamená, že máte více projektů "pod jednou střechou". Příliš se tím nemusíme zabývat.
Druhou důležitou součástí CocoaPods je soubor Podfile
pro
každý projekt. Právě v něm určíte, jaké pody chcete mít k dispozici a
CocoaPods se postará o zbytek.
Terminál
Nyní si ukážeme, jak náš projekt na pody připravit. V terminálu si
otevřete adresář vašeho projektu, kam chcete pody přidat. Měli byste být
úplně v kořenovém adresáři, což znamená, že uvidíte soubor s koncovkou
.xcodeproj
, právě pro Xcode projekt. Xcode zavřete.

Nyní inicializujeme Cocoapods příkazem:
pod init
Opět stačí počkat a máte projekt připravený na pody.
Aplikace
V aplikaci klikněte na File v hlavním menu a vyberte New Podfile from Xcode
Project. Nyní je třeba navigovat do adresáře projektu a vybrat soubor s
příponou .xcodeproj
. CocoaPods aplikace vám vytvoří a otevře
Podfile
.

Editace Podfile
Pravděpodobně jste si již všimli změn. Respektive změny a tou je
přidání souboru Podfile
do kořenového adresáře projektu.
Právě zde nastavíme, jaké balíčky (pody) chceme využívat.

Podfile
můžete editovat v jakémkoliv editoru. Při použití
aplikace dává smysl jej editovat přímo v aplikaci. Pokud jste
Podfile
vytvořili aplikací, již ho máte otevřený. Pokud jste
šli cestou terminálu, tak si ho v čemkoliv otevřete. Klidně přímo v
Xcode.

Podfile
je zatím víceméně prázdný a pouze obsahuje
informace o tom, pro jaký projekt byl vytvořen:
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
Učiníme, jak nám praví komentář, a odkomentujeme řádek s globální
definicí platformy. To znamená, že smažeme #
, pomocí kterého
se komentuje:
platform :ios, '9.0'
Chameleon
Používání podů si můžeme ukázat na malém a užitečném podu
Chameleon, což je framework pro barvy v iOS. Na Github stránce projektu
najdeme instrukce, jak jej přes Cocoapods nainstalovat. Do našeho souboru tak
pod komentář # Pods for Cocoapods_ITNetwork
přidáme Chameleon
jako jeden z podů:
pod 'ChameleonFramework/Swift', :git => 'https://github.com/ViccAlexander/Chameleon.git', :branch => 'wip/swift4'
Příkaz je trošku komplikovanější, aby framework fungoval s aktuální
verzí Xcode a Swift 4. Běžně stačí klíčové slovo pod
a
název podu. Pro jistotu si ukážeme, jak má celý Podfile
v
této fázi vypadat:
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
Pokud CocoaPods používáte přes terminál, tak nyní Podfile
uložte a spusťte následující příkaz:
pod install
Aplikace
Jestliže máte CocoaPods aplikaci, tak nyní stačí pouze kliknout na tlačítko Install v pravém horním rohu a chvíli počkat.
Projekt s Chameleonem
Nyní již projekt vypadá zajímavěji. Máme tu např. složku
Pods/
, kde právě sídlí pody a také důležitý soubor s
koncovkou .xcworkspace
. Právě ten budeme nyní používat při
otevírání projektu, protože pody mají vlastní projekt a při otevření
přes původní .xcodeproj
nebudou fungovat.

Otevřeme tedy projekt přes .xcworkspace
a hned si můžeme
zkusit Chameleona použít.
Přejdeme do ViewController.swift
a přidáme
import
čerstvě nainstalovaného podu:
import ChameleonFramework
Zkusíme Build (Cmd + B), abychom se přesvědčili, že je vše v pořádku. Používat Chameleon Framework nemá v prázdném projektu smysl, tak se jen podíváme, že funguje.
Nabízí např. mnohem hezčí barvy, než ty systémové. Jejich seznam
naleznete na stránce projektu a dostanete se k nim přes systémovou třídu
UIColor
, kde jsou nově dostupné další barvy. Xcode nám ukáže
např. dostupné pastelové "flat" barvy:

Již jen pro barvy se vyplatí framework zvážit. Aplikace bude s minimem úsilí vypadat o třídu lépe.
Dále vám Chameleon pomůže s gradienty, umí vygenerovat barvy z obrázků či nastavit kontrastní barvu pro zadané pozadí. To se hodí v případě, kdy řešíte barvy dynamicky a chcete, aby byl text vždy čitelný.
Stačí k tomu jedna metoda, která vrátí kontrastní UIColor
pro zadané pozadí a můžete si vybrat, jestli chcete vrátit flat barvu.
ContrastColorOf(UIColor.flatBlue, returnFlat: true)
V jedné z dalších lekcí CocoaPods využijeme, až si budeme ukazovat, jak
získat data z internetu (ve formátu JSON) a jak tento formát zpracovat. Oboje
umí sám Swift, pomocí knihoven AlamoFire
a
SwiftyJSON
to ale půjde mnohem snadněji. Dá se říci, že
zrovna tyto dvě se staly takovým nepsaným standardem pro aplikace, které
tahají data z internetu a pracují s JSON formátem.
V příští lekci, Když jedna obrazovka nestačí - Navigace v iOS, se podíváme na navigaci a začneme tím
pracovat na slíbené TODO aplikaci
Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 17x (127.89 kB)
Aplikace je včetně zdrojových kódů v jazyce Swift