Clean-Swift – ogólny zarys architektury

Clean-Swift – ogólny zarys architektury

Architektura Clean-Swift jest bardzo prostą architekturą, niewymagającą żadnych dodatkowych bibliotek. Składa się z 3 warstw, które bardzo dobrze rozdzielają widoki od logiki. Sprawdź, czym się charakteryzują i jakie są między nimi zależności.

Clean-Swift – obieg danych

Przepływ informacji w Clean-Swift jest jednokierunkowy, co widać na załączonej poniżej grafice. Oznacza to, że jeśli np: po naciśnięciu przycisku mamy zmienić wartość pola tekstowego, to informacja (po naciśnięciu przycisku) powinna trafić do interactora. On przygotuje model i przekaże go do presentera, natomiast presenter upiększy tekst, ustalając krój czcionki i jej kolor, a następnie przekaże jako nowy model do ViewController’a w celu wyświetlenia.

Data flow chart

ViewController

To warstwa odpowiadająca za widok, która powinna być możliwie “jak najgłupsza”, czyli inaczej mówiąc, nie powinna zawierać żadnej logiki. Warstwa ta odpowiada tylko za wyświetlanie danych dla użytkownika oraz zbieranie od niego interakcji. Do warstwy ViewController’a podpięta jest klasa routera, która odpowiada za nawigację pomiędzy widokami.

Interactor

Jeśli chodzi o interakcje zbierane z ViewController’a, to właśnie każda z nich powinna trafić do interactora. Czyli nie jest ważne, czy użytkownik naciśnie na przycisk i wpisze jakiś tekst w polu input – wszystkie te interakcje powinny być wysłane właśnie do tej warstwy. To właśnie na niej spoczywa praktycznie cała logika aplikacji. Jeśli istnieje potrzeba przekazania informacji z innego ViewControllera (np. z jakiegoś modalnego, który wyświetlimy jako modalny) to informacje, które chcemy przekazać z innego ViewControllera powinny być wysłane właśnie do warstwy Interactora.

Dla przejrzystości i uniknięcia przeładowania kodem klasy, interactor wspiera się klasami pomocniczymi tzw. worker’ami. Jest to nic innego, jak zwykła klasa wykonująca określone zadania na żądanie interactora. Interactor może posiadać dowolną ilość workerów, które to mogą wykonywać operację na bazach danych, pobierać dane z API itd.

Presenter

Jest to warstwa odpowiadająca za przygotowanie do wyświetlenia tego, co wystawił jej interactor. Czyli opakowanie stringa w attributed string, ustawienie koloru tła przycisku, widoku itp.

Architektura ta jest bardzo prosta w użyciu i zarazem bardzo czytelna. Zachęcam do jej używania. Jeśli chcecie dowiedzieć się więcej na ten temat, polecam stronę poświęconą tej architekturze: clean-swift.com. Przykładowa aplikacja znajduje się pod linkiem: https://github.com/Holdapp/Clean-Swift-Example.

Dowiedz się więcej

Wycena projektu

Opowiedz nam o swoim projekcie i napisz, jak możemy Ci pomóc.

Dlaczego warto rozwijać z nami projekty?

Logo Mobile Trends Awards

Mobile Trends Awards 2021

Wygrana w kategorii
ŻYCIE CODZIENNE

Nagroda Legalnych Bukmacherów

Nagroda Legalnych Bukmacherów 2019

Najlepsza aplikacja mobilna

Mobile Trends Awards logo

Mobile Trends Awards 2023

Wygrana w kategorii
MCOMMERCE ROZWÓJ

23

opinie klientów

Clutch logo