Black Friday Black Friday
Black Friday výprodej! Až 80 % extra bodů zdarma! Více informací zde

Lekce 6 - Neobjevujte kolo, použijte CocoaPods

Swift iOS Neobjevujte kolo, použijte CocoaPods

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

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.

Složka pro inicializaci Cocoapods

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.

Vytvořený Podfile

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 otevřený 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.

Xcode projekt s nainstalovanými cocoapody

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:

Flat barvy Chameleon frameworku pro Swift

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 :)


 

Stáhnout

Staženo 4x (127.89 kB)
Aplikace je včetně zdrojových kódů v jazyce Swift

 

 

Článek pro vás napsal Filip Němeček
Avatar
Jak se ti líbí článek?
1 hlasů
Autor se příležitostně věnuje vývoji iOS aplikací či těch webových za pomocí frameworku Django. Aktuální projekt: hrejzdarma.cz Twitter: @nemecek_f (neprogramátorské tweety)
Aktivity (4)

 

 

Komentáře

Avatar
Maverick
Člen
Avatar
Maverick:17. července 0:24

Děkuji, některé mechanizmy konstrukcí oproti VBA jsem díky těmto lekcím konečně pobral. Budou další? ;)

Odpovědět 17. července 0:24
Na něco jsem fakt už dost starej ...
Avatar
Filip Němeček
Redaktor
Avatar
Odpovídá na Maverick
Filip Němeček:17. července 11:38

To mě těší :-) Ano, další lekce budou a nějaké už dost brzy ;-)

 
Odpovědět 17. července 11:38
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.