Articles

Clean Swift

resonerar du med något av följande?

  • blir dina visningskontroller massiva och svåra att förstå, fixa fel och lägga till nya funktioner?
  • Okej, du flyttade affärslogiken till modellerna. Men nu blir dina modeller för feta.
  • använder din app en gigantisk storyboard?
  • har du någonsin slösat bort 4 timmar för att försöka reproducera ett fel och sedan en vecka för att fixa det? Och går fortfarande ingenstans? Redo att bara apa lappa det?
  • att lägga till en ny funktion betyder regression och mer re, re, re-factoring?
  • känner du dig skyldig när din klient säger”Det här brukade fungera”?
  • ansträngningen mot förmånsavvägningen med TDD är bara inte värt det.

naturligtvis vet vi alla att testa botar alla dessa problem. Men du har försökt skriva enhetstester och gett upp.

den främsta anledningen till att människor ger upp TDD och testning är att de skriver tester ovanpå en dålig applikationsarkitektur.

Tänk på det. Om du kan bygga världens vackraste hus men på en dålig grund kommer huset att kollapsa. Samma sak gäller för din applikationsarkitektur.

jag har försökt upprepade gånger under åren att arbeta med enhetstester (särskilt med iOS) och har misslyckats med att hitta ett sätt som är meningsfullt och gör det på ett sätt där tiden vs fördelar pay-off. Jag känner att jag har hittat det i denna arkitektur.
– Darren Ehlers

men det behöver inte vara så. Du behöver inte hålla fast vid MVC. Så du är på väg att söka efter något bättre.

  • du är övertygad om att MVC inte är vägen att gå vidare.
  • så du har provat MVVM med ReactiveCocoa, men du måste lära dig en ny sak. Fler beroenden, Yikes!
  • eller till och med VIPER. Men att ställa in alla gränssnitt i trådramen är så komplicerat. Och du kan inte använda segues.
jag började implementera den rena Swift-arkitekturen bara för att jämföra den med den ursprungliga VIPER-arkitekturen. Jag måste säga att du gjorde ett bra jobb med det och jag tycker verkligen om att läsa dina inlägg.
– Razvan

vad händer om du inte behöver lära dig ännu en ram? Du behöver inte lägga till något nytt beroende.

Tänk dig att du kan ta tillbaka kontrollen över din kod. Du kan veta snabbt och exakt var saker är. Du kan fixa buggar och lägga till nya funktioner med tillförsikt. Du kan bryta ner ditt applikationsflöde i flera storyboards. Och ja, du kan fortsätta använda segues. Och nej, det finns ingen wireframe som förvirrar dig.

slutligen kan du få kunder att säga ja till att betala för TDD och visa dem solida bevis på hur deras investering lönar sig. Du kommer säkert att kunna fastställa var en bugg ligger och ha ett skuldfritt svar på den mest fruktade kommentaren-det brukade fungera.

en bra applikationsarkitektur underlättar testning.

Ange bara ditt namn och e-postadress nedan. Du kommer att ta ett stort första steg för att nivåera upp dina iOS-utvecklingsfärdigheter och imponera på dina kamrater med ren kod och tester. Du lär dig hur du applicerar Uncle Bobs rena arkitektur på dina iOS-appar.

Glad att ha dig ombord.

Nu när du prenumererar får du en länk i din inkorg för att ladda ner my Clean Swift Xcode-mallar för att automatiskt generera alla komponenter åt dig. Slösa inte tid på att skriva samma standardkod. Fokusera på att skriva din affärslogik.

dina mallar fungerar som en charm. Allt är väldigt snyggt och jag föredrar det rena Arkitekturmönstret framför VIPER.
– Augustin

Du bör också läsa Clean Swift iOS-arkitektur för att fixa Massive View Controller för att få en introduktion till Clean Swift. Detta inlägg visar begreppen med ett exempel direkt från Uncle Bob själv. Det går också igenom hur du använder Xcode-mallarna för att generera de rena Swift-komponenterna. Så du börjar implementera appens affärslogik på nolltid.

under de närmaste veckorna kommer vi också att dyka in i följande ämnen:

  • applicera Clean Swift och VIP-cykeln på Apples provkoder
  • Sätt dina delegatmetoder i view controller, interactor eller worker
  • avancerad router med flera storyboards
  • skriv snabba och underhållbara tester med tillförsikt för att göra ändringar
  • ett externt tillvägagångssätt för testning – från acceptans till enhetstester
  • skriva egna mocks och stubbar
  • djupdyk i varje ren Swift-komponent
  • jämför clean Swift, MVVM + Reactivecocoa och Viper
  • protokollorienterad programmering och Clean Swift
  • konvertera din befintligt projekt för att rengöra Swift
  • Hur fungerar Clean Swift utföra i ett stort projekt
  • extrahera gemensam kod för återanvändning i arbetare och serviceobjekt
  • så här bryter du ner komplex affärslogik med arbetare

Om du vill ha mig för att skriva något av dessa specifika ämnen först, eller om du har helt andra ämnen i åtanke, släpp mig ett mail.

om du arbetar med Objective-C och gillar att hjälpa mig att testa en Objective-C-version av Xcode-mallarna, maila mig när du prenumererar.

Jag älskar att höra hur du tillämpar Clean Swift på dina iOS-projekt.

jag måste säga att VIP-arkitekturen verkligen växer på mig. Med hjälp av mallar blir allt klart och mycket enkelt, utan känslan av att arkitekturen producerar för mycket standardkod.
– Mihai