SwiftPlantUML

Ich arbeite an verschiedenen in Swift geschriebenen Softwareprojekten und befinde mich häufig in einer Situation, in der ich Diagramme erstellen muss, die auf der Prämisse des vorhandenen Quellcodes basieren, entweder zu Dokumentationszwecken oder zur Erläuterung des Systemdesignkonzepts.

UML als universelle Modellierungssprache ist leicht zu verstehen und stellt eine Standardmethode zur Visualisierung des Systemdesigns dar. Grafische Modellierungswerkzeuge, z. B. Visio oder StarUML, sind sehr flexibel, aber ich habe oft Probleme, die Komponentenbeziehung oder andere Layoutaspekte schnell zu zeichnen.

Mithilfe von Textmodellierungswerkzeugen kann ich Software-Diagramme effizienter erstellen und bearbeiten. Alles begann, als ich sequencediagram.org entdeckte und wie einfach es ist, Sequenzdiagramme zu erstellen, indem Sie Skripten und Zeichnungen für Textnotationen kombinieren, indem Sie auf dasselbe Modell klicken und es ziehen.

Dann entdeckte ich PlantUML , ein Open-Source-Tool zum Erstellen verschiedener Arten von UML-Diagrammen aus einer einfachen Textsprache . Um PlantUML herum gibt es ein lebendiges Ökosystem. Lassen Sie mich auf PlantText hinweisen , ein gut gestaltetes Online-Tool zum Generieren von Bildern basierend auf der PlantUML-Sprachreferenz.

Aber zurück zu Swift und dem Anwendungsfall, um ein Klassendiagramm aus vorhandenem Swift-Quellcode zu generieren. Wie kann das gemacht werden? Transformieren Sie den Quellcode durch Parsen in ein Skript, das der PlantUML-Sprache entspricht, und erstellen Sie dann mit einem Online-Tool das eigentliche Diagramm. Es gibt bereits verschiedene Open-Source-Projekte, die sich mit diesem Prozess befassen. Zum Beispiel gibt es

Für diese Tools muss der Benutzer jedoch zusätzliche Abhängigkeiten (z. B. NodeJS, Graphviz oder Python) manuell installieren. Einige der Projekte werden nicht mehr gepflegt und sind in Bezug auf die Funktionalität eingeschränkt. Und keines dieser Tools ist in Swift geschrieben :(

Ich wollte ein Tool für Swift-Entwickler bereitstellen, das in Swift geschrieben wurde! Dadurch können ich und potenzielle Mitwirkende hoffentlich schneller und effizienter an zukünftigen Verbesserungen arbeiten.

Und so begann ich mit der Arbeit an SwiftPlantUML , einem Dienstprogramm, das als Xcode Source Editor Extension verfügbar ist .

Aktivieren Sie die Xcode Source Editor-Erweiterung in den Systemeinstellungen -> Erweiterungen

Sie können ein Diagramm aus ausgewählten Codezeilen oder aus einer ganzen in Xcode angezeigten Datei erstellen. Das Klassendiagramm wird dann in Ihrem Browser geöffnet.

Generieren Sie ein Klassendiagramm mit der Xcode Source Editor-Erweiterung

Sie können es auch SwiftPlantUMLals Befehlszeilentool oder als Swift-Paket verwenden. Dies ist besonders hilfreich, um mehrere Quelldateien als Grundlage für das Diagramm zu verwenden. Oder um Anpassungen während der Generierung anzuwenden.

Die vollständigen Funktionen und Ausblicke auf die bevorstehende Roadmap finden Sie unter https://github.com/MarcoEidinger/SwiftPlantUML

Pull-Anfragen, Probleme und Vorschläge sind herzlich willkommen.

Ursprünglich veröffentlicht unter https://blog.eidinger.info .

Suggested posts

Codierbar: Umgang mit falschen Enum-Werten

Codierbar: Umgang mit falschen Enum-Werten

Schutz Ihrer Codebasis: Umgang mit unerwarteten Enum-Werten Haben Sie jemals eine Situation erlebt, in der Ihre App aus dem Nichts abstürzte, was bei einer Untersuchung ergab, dass das Backend einen Wert für ein bestimmtes Enum-basiertes Feld bereitstellte, das nicht innerhalb des Enum im Code vorhanden ist? Betrachten Sie das folgende Beispiel: Ohhh, ich liebe Tee. Aber was ist, wenn wir favouriteBeverage in den JSON-Daten von Tea in Juice ändern (ein Wert, der in der Aufzählung Beverage nicht vorhanden ist)? Konzentrieren Sie sich auf den Teil der Meldung: „Beverage kann nicht von ungültigem String-Wert Juice initialisiert werden.“ Wenn es sich um eine tatsächliche App anstelle eines Playground-Codes gehandelt hätte, wäre die App abgestürzt. Wie sorgen wir also dafür, dass unsere App, selbst wenn das Backend einen ungültigen Wert in der Antwort sendet, damit umgehen kann, anstatt direkt abzustürzen? Einer der Wege und mein persönlicher Favorit:

Leichter Login-Formular-Validator mit Combine

Leichter Login-Formular-Validator mit Combine

Da ich einen Artikel zur Implementierung eines Validators für das Anmeldeformular in RxSwift geschrieben habe, habe ich mich entschieden, einen für die gleiche Idee mit dem Apple Combine-Framework zu schreiben. Fast alle mobilen Apps erfordern ein Anmeldeformular und Sie müssen die Benutzeranmeldeinformationen validieren, bevor Sie mit dem Anmeldevorgang fortfahren.

Related posts

Wie man den Planeten rettet und Geld verdient

Wie man den Planeten rettet und Geld verdient

Wie oft haben Sie ohne nachzudenken eine Plastikflasche, ein Glas, eine Aluminiumdose oder ein Öko-Energiepaket weggeworfen? Wie oft haben Sie sich gewünscht, dass Sie für das Recycling etwas zurückbekommen könnten? Wenn Sie wie die meisten Menschen sind, lautet die Antwort wahrscheinlich „vielfach“. Recycling wird oft als Ärger, lästige Pflicht oder Pflicht angesehen, die keinen unmittelbaren oder greifbaren Nutzen bringt.

Der Soloauftritt des rothaarigen Mädchens

Im Auftrag von Hayden filmt Katie sich selbst beim Masturbieren.

Der Soloauftritt des rothaarigen Mädchens

Es war nach Mitternacht, als Hayden Katie nach ihrem gemeinsamen Abend zurück in ihren Studentenwohnheim fuhr. Sie hatte morgens einen frühen Unterricht und hatte keine Kleidung mehr zum Wechseln, nachdem sie die Nacht zuvor bei ihm übernachtet hatte.

Zeitschrift Ouvert

Zeitschrift Ouvert

Offenes Tagebuch: Ein Bild pro Tag. Geschichten haben mich schon immer fasziniert.

Ist Kunst jemals unpolitisch?

Ist Kunst jemals unpolitisch?

Gestern haben wir die Tür zum diesjährigen Eurovision Song Contest mit einem glitzernden, chaotischen großen Finale geschlossen, bei dem die schwedische Sängerin Loreen die Trophäe mit nach Hause nahm. Sie war damit die erste Frau, die zweimal gewann, und holte die Krone 50 Jahre nach dem Gewinn des Wettbewerbs durch ABBA zurück nach Schweden mit „Waterloo“. Sie entwickelten sich zu einem der größten Acts im Kanon der Popmusik.