Resume Builder
20. August 2023
Als ich 2016 anfing, erste kleinere Bewerbungen zu schreiben, erstellte ich auch ein eigenes Design für meinen Lebenslauf. Über die Jahre musste ich häufig Änderungen einpflegen, und auch eine deutsche und eine englische Version aktuell halten. Das Dokument ist in Apple Pages geschrieben, und beinhaltet viele Textboxen, um die einzelnen Einträge zu arrangieren. Dadurch war es etwas schwierig, neue Texte einzufügen, weil ich häufig die Ausrichtung und Anordnung der Boxen manuel korrigieren musste. Auch Änderungen am Stil und dem generellen Design dauerten lange, genauso wie die beiden Sprachen zu synchronisieren. Einige Zeit hatte ich auch eine (digitale) Version auf dunklem Hintergrund, die ich aber aus Zeitgründen dann nicht konsequent aktuell hielt. Für meine aktuelle Jobsuche musste ich meinen Lebenslauf nun wieder aktualisieren, und wollte einen neuen Ansatz ausprobieren.
Die Idee war es, meinen Lebenslauf als kleine macOS App mit SwiftUI zu programmieren, um mir einfachere Kontrolle über Design- und Layoutänderungen zu geben. Die App sollte dann eine Funktion bieten, um ein PDF zu exportieren, welches ich dann für Bewerbungen nutzen wollte. So könnte ich dann auch einen Dark Mode und verschiedene Sprachen unterstützen. Also habe ich das umgesetzt.
Es hat etwa zwei Tage gedauert um den Code zu schreiben, und den Inhalt zu aktualisieren. Die fertige App hat meinen Lebenslauf integriert, dessen Informationen in einer Quellcode-Datei abgelegt ist. Man kann zwischen den beiden Sprachen wechseln, die Daten als JSON exportieren, und auch geänderte oder neue Daten importieren. Es gibt auch einen Schalter für eine dunkle Version, und die aktuelle Ansicht kann also PDF oder Bild exportiert werden.
Die App kann hier heruntergeladen werden um meinen Lebenslauf anzuzeigen, prinzipiell ist es sogar möglich, eigene Daten zu importieren. Aktuell ist das Layout natürlich stark auf meinen Inhalt zugeschnitten, sodass auch ich bei weiteren Änderungen am Quellcode arbeiten muss.
Aber zumindest can ich jetzt aktuelle Versionen des Lebenslaufs exportieren, und kleine Details einfacher und schneller einbauen.

Die Probleme
Zumindest hatte ich gehofft, dass es so einfach sein würde. Aber dann fingen die Probleme an. Zunächst hatte ich das Problem, dass die Akzentfarbe (Orange) nicht für den PDF-Export genutzt wurde. Das lies sich noch einfach beheben, aber dann merkte ich, dass das ColorScheme nicht auf das PDF angewendet wurde. Was ich auch versuchte, ich konnte das Problem nicht beheben. Was allerdings noch schlimmer ist: Einige Texte werden (zufällig?) in den falschen Farben dargestellt. Das passiert nicht in der App oder in der Xcode Vorschau, passiert aber in den PDFs häufiger als nicht. Interessanterweise ist es nicht in den Bildexporten vorhanden, scheint also ein Bug in der Implementierung des ImageRenderers zu sein.

Ich weiß noch nicht genau, wie ich dieses Problem beheben kann. Vielleicht warte ich einfach auf ein Update für Xcode, oder schaue mich noch etwas nach Lösungen um.
Ich habe es zumindest geschafft, die falschen Farben im PDF zu korrigieren, indem ich explizit eigene Farben für Texte verwende, und mich nicht auf die integrierten Farben wie .secondary
verlasse.
Ich wollte klickbare Links in das exportierte PDF einfügen, musste aber schnell feststellen, dass diese Links nicht korrekt dargestellt wurden, sondern als seltsame Boxen auftauchen. Ich habe aktuell keine Lösung für dieses Problem.
Nächster Schritt: HTML
Nun da ich PDFs meines Lebenslaufs generieren kann, möchte ich auch meinen Lebenslauf online über meinen Swift Code aktualisieren. Ich muss dafür noch etwas Recherche betreiben, vielleicht gibt es einen Weg, SwiftUI Views direkt zu HTML zu konvertieren? Falls nicht, gibt es vielleicht trotzdem einen eleganten Weg, oder ich kann eine Art Generator schreiben, wie ich es auch beim Rest meiner Webseite tue.
