Articles

Clean Swift

Haben Sie Resonanz mit einem der folgenden?

  • Werden Ihre View Controller massiv und schwer zu verstehen, beheben Fehler und fügen neue Funktionen hinzu?
  • Okay, Sie haben die Geschäftslogik in die Modelle verschoben. Aber jetzt werden Ihre Modelle zu fett.
  • Verwendet Ihre App ein gigantisches Storyboard?
  • Haben Sie jemals 4 Stunden damit verschwendet, einen Fehler zu reproduzieren, und dann eine Woche, um ihn zu beheben? Und immer noch nirgendwo hin? Bereit, nur Affe Patch es?
  • Das Hinzufügen einer neuen Funktion bedeutet Regression und mehr Re, re, Re-Factoring?
  • Fühlen Sie sich schuldig, wenn Ihr Klient sagt: „Das hat früher funktioniert“?
  • Der Kompromiss zwischen Aufwand und Nutzen bei TDD lohnt sich einfach nicht.

Natürlich wissen wir alle, dass das Testen all diese Probleme heilt. Aber Sie haben versucht, Komponententests zu schreiben und aufgegeben.

Der Hauptgrund, warum Leute TDD und Tests aufgeben, ist, dass sie Tests auf einer schlechten Anwendungsarchitektur schreiben.

Denken Sie darüber nach. Wenn Sie das schönste Haus der Welt bauen können, aber auf einem schlechten Fundament, wird das Haus zusammenbrechen. Das gleiche gilt für Ihre Anwendungsarchitektur.

Ich habe im Laufe der Jahre wiederholt versucht, mit Komponententests zu arbeiten (insbesondere mit iOS), und es ist mir nicht gelungen, einen sinnvollen Weg zu finden, und zwar so, dass sich Zeit und Nutzen auszahlen. Ich glaube, ich habe es in dieser Architektur gefunden.
– Darren Ehlers

Aber es muss nicht so sein. Sie müssen sich nicht an MVC halten. Sie sind also auf dem Weg, nach etwas Besserem zu suchen.

  • Sie sind davon überzeugt, dass MVC nicht der richtige Weg ist.
  • Sie haben also MVVM mit ReactiveCocoa ausprobiert, aber Sie müssen etwas Neues lernen. Mehr Abhängigkeiten, huch!
  • Oder sogar VIPER. Das Einrichten aller Schnittstellen im Drahtmodell ist jedoch so komplex. Und Sie können keine Segmente verwenden.
Ich habe angefangen, die saubere Swift-Architektur zu implementieren, nur um sie mit der ursprünglichen VIPER-Architektur zu vergleichen. Ich muss sagen, dass du einen tollen Job gemacht hast und ich genieße es wirklich, deine Beiträge zu lesen.
– Razvan

Was ist, wenn Sie kein weiteres Framework lernen müssen? Sie müssen keine neue Abhängigkeit hinzufügen.

Stellen Sie sich vor, Sie könnten die Kontrolle über Ihren Code zurückerobern. Sie können schnell und genau wissen, wo die Dinge sind. Sie können Fehler beheben und neue Funktionen mit Zuversicht hinzufügen. Sie können Ihren Anwendungsfluss in mehrere Storyboards aufteilen. Und ja, Sie können Segues weiterhin verwenden. Und nein, es gibt kein Drahtgitter, um Sie zu verwirren.

Schließlich können Sie Kunden dazu bringen, Ja zur Zahlung für TDD zu sagen und ihnen einen soliden Beweis dafür zu zeigen, wie sich ihre Investition auszahlt. Sie können sicher feststellen, wo ein Fehler liegt, und haben eine schuldfreie Antwort auf den gefürchtetsten Kommentar – Das hat früher funktioniert.

Eine gute Anwendungsarchitektur erleichtert das Testen.

Geben Sie einfach Ihren Namen und Ihre E-Mail-Adresse ein. Sie werden einen großen ersten Schritt unternehmen, um Ihre iOS-Entwicklungsfähigkeiten zu verbessern und Ihre Kollegen mit sauberem Code und Tests zu beeindrucken. Sie erfahren, wie Sie die saubere Architektur von Uncle Bob auf Ihre iOS-Apps anwenden.

Ich freue mich, Sie an Bord zu haben.

Nachdem Sie sich angemeldet haben, erhalten Sie in Ihrem Posteingang einen Link zum Herunterladen meiner sauberen Swift Xcode-Vorlagen, um automatisch alle Komponenten für Sie zu generieren. Verschwenden Sie keine Zeit damit, denselben Boilerplate-Code zu schreiben. Konzentrieren Sie sich auf das Schreiben Ihrer Geschäftslogik.

Ihre Vorlagen funktionieren wie ein Zauber. Alles ist sehr ordentlich und ich bevorzuge das saubere Architekturmuster gegenüber VIPER.
– Augustin

Sie sollten auch die Clean Swift iOS-Architektur zur Behebung des Massive View Controllers lesen, um eine Einführung in Clean Swift zu erhalten. Dieser Beitrag zeigt die Konzepte anhand eines Beispiels direkt von Onkel Bob selbst. Es führt Sie auch durch die Verwendung der Xcode-Vorlagen zum Generieren der sauberen Swift-Komponenten. So können Sie in kürzester Zeit mit der Implementierung der Geschäftslogik Ihrer App beginnen.

In den nächsten Wochen werden wir uns auch mit den folgenden Themen befassen:

  • Wenden Sie Sauberes Swift und den VIP-Zyklus auf Apples Beispielcodes an
  • Legen Sie Ihre Delegatenmethoden in View Controller, Interactor oder Worker
  • Erweiterter Router mit mehreren Storyboards
  • Schreiben Sie schnelle und wartbare Tests mit Zuversicht, um Änderungen vorzunehmen
  • Ein externer Testansatz – von der Akzeptanz bis zu Komponententests
  • Schreiben Sie Ihre eigenen Mocks und Stubs
  • Tauchen Sie tief in jede saubere Swift-Komponente ein
  • Vergleichen Sie Clean Swift, MVVM + ReactiveCocoa und VIPER
  • Protokollorientierte Programmierung und Clean Swift
  • Konvertieren Sie Ihre bestehendes Projekt zum Bereinigen von Swift
  • Wie funktioniert das Bereinigen von Swift in einem großen Projekt?
  • Extrahieren von allgemeinem Code zur Wiederverwendung in Workern und Serviceobjekten
  • So zerlegen Sie komplexe Geschäftslogik mithilfe von Workern

Wenn Sie möchten, dass diese speziellen Themen zuerst, oder wenn Sie ganz andere Themen im Sinn haben, Schreiben Sie mir eine E-Mail.Wenn Sie mit Objective-C arbeiten und mir beim Testen einer Objective-C-Version der Xcode-Vorlagen helfen möchten, senden Sie mir nach dem Abonnieren eine E-Mail.

Ich liebe es zu hören, wie Sie sauberes Swift auf Ihre iOS-Projekte anwenden.

Ich muss sagen, dass die VIP-Architektur wirklich an mir wächst. Mit Hilfe von Vorlagen wird alles klar und sehr einfach, ohne das Gefühl, dass die Architektur zu viel Boilerplate-Code produziert.
– Mihai