Jak stworzyć bibliotekę dla iOS w kilka minut?

Opublikowano
Własne biblioteki dla iOS

Pisząc wiele aplikacji mobilnych, jesteśmy przyzwyczajeni do używania własnych, wygodnych funkcji, mini framework’ów, które wraz z czasem rozrastają się do pokaźnych rozmiarów. Dlatego warto pomyśleć nad wydzieleniem części takich funkcji do oddzielnej biblioteki, którą będziemy następnie importować w każdym naszym projekcie. Tak utworzona biblioteka z pewnością przyśpieszy implementację nowych aplikacji.

Zapewne znajdą się w niej rozszerzenia klas, różnorakie helpery, konwertery czy narzędzia przyśpieszające implementację kodu. Jak więc zabrać się za stworzenie takiej biblioteki?

Wymagania

Zanim jednak przystąpimy do tworzenia tejże biblioteki, spróbujmy zastanowić się jakie podstawowe wymagania powinna ona spełniać. Poniżej wylistowałem istotne dla mnie elementy:

  • dostępna poprzez dependency manager:
    • Carthage
    • Cocoapods
    • SPM (Swift Package Manager)
  • zawierająca Unit Testy
  • łatwo zarządzalne wersje biblioteki
  • dostępna integracja z Fastlane

Powyższe to tylko mały wycinek z serii must-have. Wszystkie te kroki wyżej wymienione można wykonać ręcznie by przygotować takie rozwiązanie. Okazuje się jednak, że są narzędzia które to ułatwiają, takie jak SwiftKit lub SwiftPlate.

W tym wpisie opiszę jak korzystać z SwiftKit. Zaczynajmy…

Instalacja

Jeśli masz homebrew na swoim komputerze, pomiń krok 1. Jeśli nie masz, zainstaluj za pomocą polecenia w terminalu:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Kolejny krok, instalacja SwiftKit za pomocą kolejnych poleceń:

brew tap SvenTiigi/SwiftKit
brew install swiftkit

Mamy już zainstalowane narzędzie, w celu weryfikacji poprawności instalacji wykonaj:

swiftkit version

Jeśli polecenie zwróci aktualną wersję narzędzia, oznacza to że się  udało, SwiftKit jest zainstalowany pomyślnie.

Wykorzystanie

W tej części utworzymy pierwszą bibliotekę.

Na początku utwórz nowe repo git np. na Github. Link do utworzonego repo wykorzystasz przy tworzeniu biblioteki (w kreatorze lub jako parametr polecenia SwiftKit).

Następnie przejdź do folderu gdzie chcesz utworzyć nowy folder ze swoim pierwszym framework’iem i wykonaj polecenie w terminalu:

swiftkit new MyFirstLibrary

Po zatwierdzeniu kreator poprowadzi Cię przez proces tworzenia biblioteki poprzez zadanie kilku pytań. Ostatecznie zostanie utworzony nowy katalog o nazwie MyFirstLibrary wraz z wszystkimi potrzebnymi plikami.

Jeśli tworzysz wiele bibliotek i chciałbyś usprawnić ten proces, możesz przekazać wszystkie wartości jako parametry wykonywanego polecenia, jak na przykładzie poniżej:

swiftkit new \ 
    --target iOS \ 
    --target tvOS \ 
    --target watchOS \ 
    --target macOS \ 
    --destination ~/Desktop/MyFirstLibrary \ 
    --kit-name MyFirstLibrary \ 
    --name macuser \ 
    --email info@macuser.info \ 
    --url https://github.com/lukszar/MyFirstLibrary \ 
    --ci-service 5 \ 
    --organization macuser \ 
    --organization-identifier info.macuser \ 
    --repository https://github.com/lukszar/MyFirstLibrary.git \ 
    --force \ 
    --open

W następnym kroku możesz poprawić ustawienia wg własnych potrzeb, zmienić remote repo na url wskazujący na utworzony projekt w Github i możesz push’ować pierwsze zmiany.

Cocoapods

Następnym krokiem będzie dodanie biblioteki do repozytorium Cocoapods. W tym celu dodaj pierwszy tag do repo o nazwie np. 1.0.0 (który wskazuje na wersję biblioteki; możesz także zacząć numerację od 0.0.1).

Następnie wykonaj w terminalu polecenie (pamiętając by podmienić na poprawną nazwę biblioteki):

pod spec lint MyFirstLibrary.podspec
pod trunk push MyFirstLibrary.podspec

Biblioteka powinna być już dostępna w repozytorium Cocoapods.

Publikowanie nowej wersji biblioteki

Wraz z utworzeniem biblioteki, tworzona jest konfiguracja Fastlane wraz z przydatnymi automatyzacjami, np. do publikowania nowej wersji. Aby opublikować nową wersję należy wykonać polecenie (wpisując poprawny numer nowej wersji):

fastlane ios release version:1.1.0

Jeśli nie masz zainstalowanego narzędzia, skorzystaj z instrukcji na stronie projektu.

Gratulacje

Udało Ci się stworzyć swój pierwszy framework 👍.

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.