CocoaPods – manager bibliotek dla projektów iOS

Opublikowano
CocoaPods - dependency manager

W większości tworzonych przeze mnie aplikacji wykorzystuję zewnętrzne biblioteki, które pozwalają dodawać kolejne funkcjonalności do projektu. Skoro ktoś już wcześniej rozwiązał mój problem, a teraz regularnie udoskonala to rozwiązanie, wydaje się być oczywistym skorzystanie z tego. Jednak każde dodanie biblioteki wymaga nie lada zachodu, aby wymaganą bibliotekę znaleźć, pobrać, dodać do projektu a następnie ustawić wszystko tak aby działało, to moje cenne minuty, których nie lubię tracić.

Dodatkowo każdy programista wie, że nie da się stworzyć idealnej aplikacji, która mogłaby pozostać w swojej postaci przez wieczność. Rok rocznie wypuszczana jest nowa wersja iOS wraz z nowymi bibliotekami dla programistów, a stare są uaktualniane lub porzucane na rzecz całkowicie przeprojektowanych od nowa. To wymusza na programiście dostosowywanie własnych aplikacji do realiów jakie aktualnie panują, aktualizację wszystkich wymaganych bibliotek używanych w aplikacji oraz uaktualnienie całego kodu aplikacji aby ona nadal mogła poprawnie działać w najnowszym systemie.

Wszystkie powyższe problemy związane z bibliotekami w środowisku iOS rozwiązuje …

CocoaPods

Jest to narzędzie, które pozwala automatyzować proces pobierania, integracji oraz aktualizacji bibliotek zawartych w projekcie do najnowszej wersji wraz w wymaganymi przez nie dodatkowymi bibliotekami. Po stronie programisty pozostaje tylko wpisanie nazwy biblioteki wraz z wersją w specjalnie przygotowanym pliku. Resztę zrobi za nas algorytm.

Instalacja

Aby móc skorzystać z tego narzędzia, na początek należy zainstalować je za pomocą terminala, wpisując:

sudo gem install cocoapods

Operację należy potwierdzić hasłem. Proces instalacji chwilę trwa, ale w końcu warto poczekać te kilka minut.

CocoaPods w akcji

Aby sprawdzić czy interesująca Cię biblioteka jest obsługiwana przez CocoaPods, wejdź na stronę: https://cocoapods.org

Zamieszczona tam wyszukiwarka pomoże także w wyszukaniu nieznanych Ci jeszcze bibliotek po słowach kluczowych. Po znalezieniu żądanej biblioteki warto podglądnąć dokładną nazwę biblioteki i skopiować ją do schowka.

CocoaPods - przykład wykorzystania
CocoaPods – przykład wykorzystania

Po kliknięciu w ikonę zaznaczoną na powyższym obrazku do schowka zostanie skopiowana dokładna nazwa biblioteki wraz z najnowszą wersją biblioteki. Następnym etapem jest zainicjowanie CocoaPods w projekcie aplikacji iOS. W tym celu w terminalu przejdź do głównego katalogu zawierającego projekt w którym chcesz dodać biblioteki.

cd ~/sciezka/do/projektu

Następnie wpisz

pod init

aby stworzyć plik Podfile, w którym będą przechowywane wszystkie dodane przez Ciebie biblioteki. Stworzony Podfile wyglada następująco:

# Uncomment this line to define a global platform for your project
# platform :ios, "6.0"

target "myAppName" do

end

target "myAppNameTests" do

end

Jeśli chcesz dodać znalezioną bibliotekę dla targetu „myAppName”, wklej skopiowany wcześniej tekst poniżej odpowiedniego targetu.

# Uncomment this line to define a global platform for your project
# platform :ios, "6.0"

target "myAppName" do

pod 'ACDCryptsyAPI', '~> 1.0'

end

target "myAppNameTests" do

end

Po zapisaniu i zamknięciu pliku, w terminalu należy wykonać

pod install --verbose

Dzięki dodaniu opcji –verbose, na ekran konsoli będzie wypisywana każda akcja popełniona przez CocoaPods. Przy dodawaniu kilku bibliotek na raz, proces pobierania i ich instalacji może potrwać nawet kilkadziesiąt minut, w zależności od łącza. Wtedy opcja –verbose jest przydatna, by zweryfikować postęp.

Podsumowanie

Należy pamiętać aby po instalacji pods’ów otwierać projekt za pomocą pliku z rozszerzeniem .xcworkspace. Tylko wtedy zaimportowane biblioteki będą widoczne w projekcie.

Udanego kodzenia!

Autor: macuser

Na co dzień pracuje jako iOS Developer, a w czasie wolnym uwielbia tworzyć muzykę w swoim domowym studio. Lubi czytać książki na temat psychologii, technik marketingu, oraz być ciągle na bieżąco z nowymi trendami w świecie technologii.