Anmelden

Working Draft· Folge 665

Revision 665: Wie ich mit KI 3x schneller Apps programmiere

Dienstag, 10. Juni 2025 · 1 h 17

MP3

Shownotes

Weiter in unserem KI-Block geht es mit Kevin Chromik (Webseite (kevinchromik.de), LinkedIn (linkedin.com/in/kevinchromik)), Content Creator (YouTube (youtube.com/kevinchromik)). Kevin berichtet Hans und Vanessa seine Erfahrungen darüber, wie er mit KI Tools 3x schneller Apps programmieren kann.

Unser Sponsor

mittwald.de/hitc?ref=workingdraft.de

Am 13. Juni 2025 lädt mittwald zum Head in the Cloud Summit ein – ein Tag voller

Inspiration und Austausch auf dem mittwald Campus. Hier treffen sich Webworker, Developer und Digitalagenturen, um

voneinander zu lernen.

Freu dich auf spannende Talks und Sessions zu Cloud & DevOps, Technology und

Culture & Creativity. Von den Herausforderungen der digitalen Arbeitswelt bis hin zu den Trends

von morgen – hier bekommst du Einblicke von den klügsten Köpfen der Branche.

Die Tickets sind begrenzt, also schnell buchen auf mittwald.de/hitc?ref=workingdraft.de.

Schaunotizen

[] Wie ich mit KI 3x schneller Apps programmiere
3x schneller entwickeln! Ja, das ist eine YouTube-Clickbait Headline! Es wird schnell klar: Die KI übernimmt zwar nicht alles, aber sie kann an vielen Stellen den Entwicklungsprozess deutlich beschleunigen – manchmal sogar um das Dreifache. Kevin berichtet über eine App, die er zusammen mit einem anderem YouTuber in Flutter (flutter.dev) mit Hilfe von KI-Tools gebaut hat. Der Anwendungsfall ist hierbei, dass sie nur zu zweit an dieser App schreiben, und beide zuvor nicht mit Flutter gearbeitet haben. Sie müssen bei dieser App auch keinen strikten Design Richtlinien folgen, sondern können der KI mehr Freiheiten geben.

Ein großes Thema ist die Frage nach dem Kontext: Tools wie ChatGPT (chatgpt.com) liefern oft brauchbare Antworten, kennen aber die eigene Codebase nicht. Das macht ihre Vorschläge schnell unbrauchbar oder zumindest nicht optimal integrierbar. Ganz anders sieht es bei Tools wie Cursor (cursor.com) oder Windsurf (windsurf.com/editor) aus, die direkt in die IDE eingebunden werden – z. B. in VS Code (code.visualstudio.com) – und Zugriff auf das gesamte Projekt haben. Damit können sie nicht nur präziser helfen, sondern auch bessere Architekturvorschläge machen oder konkrete Codeabschnitte erklären.

Besonders spannend ist Kevins Ansatz, KI nicht unbedingt zum „schnelleren Programmieren“ im klassischen Sinne zu nutzen, sondern vielmehr für alles drumherum. Beim Prototyping etwa hilft KI, Ideen schnell zu visualisieren – auch wenn der produzierte Code am Ende verworfen wird. Kevin erzählt von einem Beispiel, als er ein Award-System in seine Habit-Tracker-App (streak.kevinchromik.de) einbauen wollte: Die Idee war noch nicht ausgereift, doch Windsurf (windsurf.com/editor) konnte dennoch eine erste Oberfläche erzeugen, mit der man experimentieren konnte – inklusive Animationen. Der Code war nicht perfekt, aber als Sparringspartner war die KI extrem hilfreich.

Wir sprechen auch über den Unterschied zwischen eigenen Programmiersprachen und fremden: Ist man mit KI auch in der eigenen Sprache wirklich schneller? Und wie sinnvoll ist KI eigentlich für Junior-Entwickler:innen? Kevin und Vanessa sehen hier Chancen, aber auch Risiken. Während Stack Overflow (stackoverflow.com/questions) oft ein notwendiger Umweg ist, bei dem man sich zwangsläufig mit dem Problem auseinandersetzt, liefern KI-Tools direkte Lösungen – ohne Umweg, ohne Kontext. Das kann zu schnellen Ergebnissen führen, aber auch dazu, dass Lernprozesse übersprungen werden.

Trotzdem: Gute Tools wie Windsurf (windsurf.com/editor) ermöglichen inzwischen Rückfragen zur Codebase wie „Erklär mir mal die Architektur dieser App“ – und das kann gerade für weniger erfahrene Entwickler:innen ein echter Gewinn sein.

Ein weiteres Thema ist Codequalität. Kevin berichtet, dass er seine Habit-Tracker-App (streak.kevinchromik.de) bewusst mit einer sauberen Architektur gebaut hat – auch wenn sie funktional simpel ist. Er merkt an: Je besser man selbst entwickelt, desto mehr stört einen der Output von KI, weil viele Vorschläge einfach qualitativ nicht mithalten können. Viel Code im Netz ist schlicht schlecht – und KI reproduziert diesen leider oft. Gute Entwickler:innen sind in den meisten Fällen noch deutlich besser als jede KI.

Zum Abschluss diskutieren wir noch mit Hans, ob man heute noch zusätzliche Libraries braucht – oder ob KI-Tools wie V0 von Vercel (v0.dev) mit ihren fertigen Komponenten schon ausreichen, um direkt damit zu starten.

Links

Windsurf vs. Cursor (Builder.io) (builder.io/blog/windsurf-vs-cursor)
Ein Vergleich zweier KI-gestützter Entwicklungsumgebungen, die im Podcast thematisiert werden.
Cucumber (cucumber.io)
Testing-Tool für verhaltensgesteuerte Entwicklung – im Gespräch als potenzieller KI-Anwendungsfall erwähnt.
v0 von Vercel (vercel.com/v0)
KI-gestütztes Tool zum Erzeugen von UI-Komponenten – im Gespräch als Beispiel für automatisierte Entwicklung.

Diskutiert die Folge mit uns in unserem Community-Slack: draft.community

Transkriptvom Podcast bereitgestellt · Zeitmarken springen hin

Gerade so bei meinen eigenen Projekten ist es halt schon so, dass ich für den tatsächlichen Output, was dann am Ende im Code gelandet ist, dass ich dort ziemlich viel KI benutzt habe, um halt einfach schneller zu sein. Und wenn ich jetzt mit KI entwickle, dann meistens so. Mit Windsurf, und da habe ich immer Zugriff auf die neuesten Models, das ist auch relativ günstig, würde ich sagen. Das sind so 15 Euro pro Monat.

Wo ich auch Potenzial sehe, ist Testing, weil das ist halt einfach teuer. Bevor es losgeht, ein kurzer Gruß von unserem Sponsor Workshops.de. Ihr kennt uns vielleicht schon von den Portalen wie angular.de oder als Veranstalter der Deutschen Angular-Konferenz ng.de, welche auch diesen November wieder in Berlin stattfindet.

Und jetzt gehen wir einen Schritt weiter. Mit unserer Erfahrung aus der Entwickler-Community bringen wir euch praxisnahe Schulungen im Bereich künstliche Intelligenz für Entwicklerinnen und Entwickler. Und alle, die ihre Arbeitsprozesse smarter gestalten wollen. Unser Ziel, monotone Aufgaben abschaffen und wieder Platz für Kreativität und echtes Engineering im Kopf schaffen.

KI nimmt dir nicht den Job weg. Sie nimmt dir nur die Aufgaben ab, auf die du sowieso keine Lust hast. Schau direkt mal vorbei und sichere dir mit dem Code WORKINGDRAFT, geschrieben in Großbuchstaben, 10% Rabatt auf alle Schulungen. Wir sehen uns auf workshops.de-KI und jetzt viel Spaß mit dieser Folge vom Working Draft Podcast.

Revision 665 Hallo und herzlich willkommen bei einer neuen Aufnahme über die KI und Entwickeln mit KI. Wir sind heute zu dritt. Dabei habe ich aus dem Team dabei den Hans.

Ja, hallo.

Und wir haben einen Gast, den Kevin Kromik. Hallo, Kevin.

Hallo, Vanessa. Danke für die Einladung.

Wir freuen uns sehr, dass du da bist und ich würde dich gleich mal bitten, dich einmal vorzustellen, da du noch nie bei uns warst.

Genau, also ich bin Kevin, krummig, wohne in München, habe lange Zeit als iOS-Entwickler gearbeitet, also auch Frontend, aber jetzt nicht im Web-Frontend-Bereich. Und bin jetzt seit ein bisschen was über einem halben Jahr, habe ich mich jetzt als Content Creator selbstständig gemacht. Das war sowas, was ich parallel gemacht habe für viele Jahre und irgendwann wurde es halt so viel, dass ich mich dann praktisch entscheiden musste, was mache ich jetzt Vollzeit und habe dann gedacht, das habe ich schon so lange Apps entwickelt.

Jetzt mache ich Videos über App-Entwicklung auf YouTube und so weiter. Genau, das mache ich schon lange und hoffentlich werde ich es noch lange machen. Sehr cool, auch mal gut zu hören dass jemand so im Engineering Bereich dann als Content Creator durchstartet wie ist das Leben da so, erzähl mal ein bisschen also ich, Ich habe nie selbstständig gearbeitet. Ich glaube, der größte Unterschied ist halt wirklich so dieses Angestellt sein versus selbstständig sein, weil ich habe jetzt auch nicht wirklich so Firmenkunden.

Also ich arbeite zwar schon mit Firmen zusammen, aber das sind halt der Werbepartner. Aber es ist jetzt nicht so, dass die jetzt in meine tägliche Arbeit involviert sind. Und das heißt, ich muss meine Arbeit schon ziemlich viel selbstständig strukturieren, weil wenn ich es halt nicht mache, dann kümmert sich halt keiner.

Also das ist halt so der Vorteil, aber halt auch ein Nachteil. Deswegen ist es halt schwer zu beantworten, was jetzt besser ist. Die Tätigkeit gefällt mir aktuell besser, weil ich kann halt meine beiden Hobbys miteinander verbinden, weil ich halt trotzdem noch Software entwickle. Aber jetzt auch nur noch das, worauf ich Bock habe. Und wenn die Bugs kommen.

Machst du ein neues Projekt.

Ganz genau. Und ich muss mich halt von niemandem rechtfertigen, mache dann einfach ein Video darüber, muss dann mein Projekt abbrechen. Das ist so gefallen.

Wenn ich dir selber.

Genau. Fakt der Kevin da.

Macht mir Retro.

Das ist halt echt so, Also ich habe natürlich Leute, mit denen ich zusammenarbeite. Also jemand, der meine Videos schneidet. Management zum Beispiel, die kümmern sich um die ganzen Firmenkollaborationen und so weiter. Also Akquise, Verträge und das ganze Pipapo. Das nimmt mir schon sehr viel Arbeit ab. Aber das ist so die einzige Locke, die ich nicht abschneiden kann.

Weil das muss ich abgeben. Das ist so zeitaufwendig. Das ist aber natürlich auch gut, weil ich dann halt auch vertraglich an gewisse Sachen gebunden bin und das heißt, ich muss da natürlich auch durchziehen, aber wenn ich jetzt halt mal eine Woche oder so nichts mache, dann, bei mir sitzt halt niemand, der mir so über die Schulter guckt und praktisch auf meine Sachen wartet.

Das vermisse ich manchmal so ein bisschen, dass ich halt so ein bisschen einsam, würde ich sagen, weil mit den Leuten, wenn ich nicht zusammenarbeite, sind halt alle remote. Ähm, Deswegen, ich bin auch gerne einmal die Woche.

Kann dir auch als Angestellte personen.

Ja, genau. Also natürlich jetzt, bei meiner Arbeit war es dann schon so, dass ich hauptsächlich remote gearbeitet habe. Wir hatten dann so einen Tag in die Woche. Also es war natürlich dann, wir hatten Covid und so weiter, alle zu Hause. Aber danach sind die Leute nicht mehr so wirklich zurückgekommen.

Und dann hatten wir so einen Tag die Woche, wo wir dann halt immer in die Firma gegangen sind und dann halt auch Mittagessen und so weiter, auch so ein paar Team-Meetings hatten. Und das hat mir schon ganz gut gefallen. Und das heißt jetzt nicht, dass ich immer ins Büro gehen wollte. Aber dieses ein- oder zweimal die Woche war völlig in Ordnung.

Habe ich mich auch drauf gefreut. Aber das habe ich jetzt halt überhaupt gar nicht. Ich habe schon sehr viel Kontakt mit Menschen, aber das ist halt alles über Videocalls. Und das ist so ein bisschen schwierig.

Ich glaube, du sprichst sehr viele Leute so ein bisschen aus dem Herzen. Also ich habe ja das Gefühl, wir sind da alle sehr ähnlich im Mindset. Ich weiß gar nicht, wie es bei der ganzen Hörerschaft aussieht. Ich kann ja nicht immer nur von mir ausgehen, aber ich glaube, das kennen wir alle. Also eigentlich will ich immer im Homeoffice sein, aber so ein Lunch wäre cool.

Ja, und die Anfangszeit bei Corona mit Homeoffice, die war ja so sehr anstrengend. Dann diese Remote Lunches, die man da versucht hat, ui, die waren ein bisschen schmatzig.

Ja, das war dann so nichts Ganzes und nichts Halbes. Und dann haben irgendwie, ich weiß nicht, das war so gut gemeint, aber so richtig funktioniert hat es dann doch nicht.

Was habt ihr am Wochenende gemacht? Ist Corona, ich war zu Hause.

Ja, zu Hause, so wie jeden Tag, genau. Ja, also ich will mich jetzt auch nicht beschweren, aber das ist natürlich jetzt halt so der Kompromiss, den ich jetzt eingehe. Mal gucken, in welche Richtung sich das entwickelt. Vielleicht ist es vielleicht irgendwann mal so groß, dass ich sagen kann, okay, ich kann jetzt irgendwie eine Hilfe anstellen und bin dann nicht mehr die ganze Zeit alleine, dass man sich vielleicht so ein lokales kleines Team aufbaut.

Das wäre schon so mein Traum. Ich will jetzt nicht irgendwie ein großes Team haben, aber so eine Person, mit der ich dann viel zusammenarbeite, wo sie so ein bisschen zuarbeitet. Ich glaube... Das wäre so das große Ziel.

Einen großen Vorteil, der mir jetzt dafür einfällt, für diese Art von Arbeit, ist ja, dass du dich wahrscheinlich schon generell damit beschäftigen kannst, womit du dich jetzt beschäftigen möchtest und eben nicht Ticket XY abarbeiten musst. Und etwas, vielleicht keine Person, aber etwas mit dem oder der oder das man ja zusammenarbeiten kann, ist die KI.

Und du hast diverse Tools ausprobiert. Und da wollte ich dich fragen, ob du uns einmal so einen groben Umriss geben kannst, mit welchen Tools du denn alles schon gearbeitet hast und uns, den armen kleinen Angestellten, die ihre Dickels runter schrumpfen müssen, einfach keine Zeit haben, alles auszuprobieren, uns von deinen Erfahrungen erzählen könntest.

Ja, also ich habe natürlich, also Gladjet GPT und so weiter, einfach als Web-Oberfläche viel benutzt. Das ist halt immer so ein bisschen problematisch, weil es hat halt nur einen eingeschränkten Kontext. Wenn du jetzt praktisch ein lokales Tool benutzt, was die ganze Codebase kennt, ist natürlich ein bisschen besser.

Das Problem ist erstmal bei Xcode, das ist halt einmal, es gibt keine Alternative, also du musst halt für iOS-Entwicklung musst du Xcode benutzen und Apple hat auch, ich mache jetzt ja Gänsefüßchen oder ironische. Apple hat ja auch eine coole KI in Xcode eingebaut, aber das ist halt kompletter Quatsch, wenn man das jetzt mal mit anderen Large Language Models vergleicht, weil das läuft halt irgendwie nur lokal und so weiter. Das ist halt nicht so gut.

Und Datenschutz ist natürlich besser, weil es läuft halt alles bei dir und du musst nicht alles in die Wolke reinschieben zu irgendeinem Provider, was es bei mir eigentlich egal ist, weil ich mache halt die Sachen, worauf ich Lust habe und es ist dann halt meine Entscheidung, ob das für mich in Ordnung geht oder nicht.

Was ich jetzt aber gefunden habe ist Cursor, das kennt ihr wahrscheinlich auch, ich habe da jetzt so eine alternative, Windsurf im Prinzip ist es fast das gleiche mir gefällt es einen Ticken besser, wie die Benutzeroberfläche funktioniert, aber im Prinzip ist es auch ein VS Code Fork und du kannst halt, machst halt einfach dein Code Projekt auf und es funktioniert auch mit Xcode also dass du praktisch die App aus wie du das Code starten kannst.

Du hast halt diese Live-Preview nicht. Aber was ich jetzt zum Beispiel ein paar Mal gemacht habe, ist, dass ich Windsurf geöffnet habe. Programmiere damit, also schreibe dann Prompts, die KI schreibt dann den Code für mich und auf dem zweiten Bildschirm habe ich dann Xcode off mit der Live-Preview und sobald sich der Code ändert, sehe ich das dann halt auch direkt im Real-Time-Debugger eigentlich, wie das dann ausgeführt wird.

Und wenn ich jetzt mit KI entwickle, dann meistens so mit Windsurf und da kann ich dann halt auch habe ich immer Zugriff auf die neuesten Models das ist auch relativ günstig würde ich sagen, das sind so 15 Euro pro Monat, was du da zahlst und, das klappt schon ganz gut, aber ich habe jetzt auch gemerkt, dass ich ein bisschen wieder davon weggegangen bin, zu viel mit KI zu entwickeln.

Darauf würde ich auch gleich nochmal eingehen, warum. Aber nur, dass ich es jetzt richtig verstanden habe, also das Tool Windsurf oder auch Cursor funktioniert so, dass die dann auch mit einer IDE zusammen verknüpft werden können und ich nicht das machen muss wie mit ChatGPT, dass ich ChatGPT gehe und schreibe meinen Prompt, dann kopiere ich den Code drüber und so weiter.

Genau, also im Prinzip ist es so, du kannst halt dein, also es muss auch kein App-Projekt sein, also kein iOS-App-Projekt, du kannst ja auch einfach eine Web-Applikation, so wie du halt mit VS Code, wie du es halt öffnest. Ich glaube, ich werde wahrscheinlich auch mit VS Code arbeiten, gehe ich mal davon aus.

Im Prinzip ist es halt genau das Gleiche. Die ganzen Extensions, Plugins und so weiter, das funktioniert alles, weil es halt einfach ein Fork ist. Nur, dass dann praktisch die KI Zugriff auf die ganze Codebase hat. Das heißt, ich habe dann halt mein Chatfenster und dann schreibe ich rein. Ich habe auch gleich ein ganz gutes Beispiel, wo das ultra hilfreich war.

Du schreibst dann halt in das Chatfenster rein. Ich möchte XYZ machen. Irgendwie, keine Ahnung, ich möchte auf diesem Screen jetzt einen Button haben und da soll irgendwie ein API-Request abgeschickt werden. Der API-Request findet dabei in einem anderen File in irgendeinem Service statt. Und die KI erkennt das dann automatisch und setzt den Code dann an die richtigen Stellen.

Das heißt, der Button wird hinzugefügt, übernimmt vielleicht noch das Styling und so weiter. Und in einem Service, in einem anderen File, wird es dann automatisch ergänzt, dass du da irgendwie eine Funktion hast, die den Call dann ausführt. Also das ist schon ganz praktisch. Du kannst es auch ziemlich gut konfigurieren.

Ich weiß nicht, wie sie heißen, wie so eine Art Templates, dass du praktisch Code-Styling, Architektur und so weiter kannst du vorher alles definieren, damit die KI immer die gleichen Sachen macht, also im gleichen Stil. Also das funktioniert wohl auch ganz gut. Also da gibt es dann, glaube ich, bei Winsurf, haben sie es jetzt, glaube ich, gerade erst angekündigt, wenn ich mich nicht täusche.

Bei Cursor gibt es schon eine Weile, da gibt es so ein Repository direkt von Cursor, wo du dann so Best Practices, so Prompt-Konfigurationen unterladen kannst. Du hast dann irgendwie so eine Config-Datei in Cursor und die wird dann für dieses Projekt dann benutzt, damit du eben genauso Linting und so weiter, irgendwelche Styles, irgendwelche Agreements, die du halt im Team praktisch beschlossen hast, dass es dann praktisch übernommen wird.

Was natürlich ganz gut ist, weil wenn du auf einmal das Model wechselst, dann hast du nicht so einen Flickenteppich, sondern das wird schon einheitlich praktisch angegangen, also die gleiche Architektur zum Beispiel.

Ja, ich denke, das ist so eins der großen Nachteile, wenn man mit ChatGPT programmiert, ist, dass dann ein Code rauskommt. Ich mache das mal kurz wieder aus der HTML-JavaScript-Sicht. Mir wird halt HTML, CSS und JavaScript gegeben, aber wenn ich jetzt irgendwie mit einem Tool arbeite, dass mein CSS sehr inline im HTML steht, dann muss ich das entweder selber rumfrickeln oder ich habe ein automatisiertes Tool dafür oder ich sage ChatGPT nochmal genau den gleichen Code, aber bitte mit CSS-Klassen, die ein bisschen anders ausschauen.

Und da habe ich dann leider ganz oft tatsächlich das Problem, dass wenn ich Code von ChatGPT bekommen habe und der Code war generell schon genau das, was ich haben möchte, aber noch nicht im richtigen Style, und ich sage, mach es jetzt nochmal so, dann kommt teilweise was anderes raus oder es werden wiederum Features weggelassen. Und das ist äußerst frustrierend.

Ja, genau. Aber das ist halt das Problem, wenn du, wenn die KI nicht den ganzen Kontext hat. Und so wird die KI dann praktisch mit deinem Projekt konfiguriert und es liest sich dann halt die Sachen raus. Und kann auch, das Gute ist, es kann halt auch, also du kannst theoretisch alles abgeben. Also wenn du das möchtest. Du hast halt immer so einen Accept-Button.

Da wird dann halt praktisch wie bei, wie in einem Pull-Request wird dann einfach der Diff angezeigt und dann kannst du einfach sagen Accept-All. Und dann wird halt einfach alles akzeptiert und dann wird es dir teilweise direkt angeboten, dass die App direkt ausgeführt wird. Du kannst dann auch direkt automatisch committen und so.

Das heißt, du kannst eigentlich, wenn du das möchtest, kannst du alles abgeben und die Frage ist halt, ob man das will.

Ich würde jetzt einmal ganz kurz auf den richtig konkreten Use Case eingehen, weil du meintest, ich brauche jetzt auf dem Screen so einen Button.

Wofür?

Brauchtest du tatsächlich halt irgend so einen Button, der was macht für jetzt ein Beispielvideo, das du für YouTube gemacht hast und das war jetzt eigentlich ein bisschen auch egal, wie der Button aussieht? Oder war das der Fall, du brauchst wirklich den Button mit der Hintergrundfarbe Blau, den Border-Radius 5-Pixel-Dings und in dem folgenden State?

Und würde das dann mit Windsurf auch funktionieren, dass wenn du halt wirklich bestimmten Button-Style brauchst, würde es das so umsetzen? Oder musst du dann weiter eher manuell wieder reinschreiben?

Also ich habe tatsächlich ein ganz konkretes Beispiel mit einer App, die auch in den App-Stores runtergeladen werden kann. Und zwar ein Freund von mir. Ich weiß vielleicht, manche Leute, die heute auf YouTube unterwegs sind, die kennen vielleicht Cedric, also The Morpheus oder The Morpheus Tutorials.

Der hat, der macht super viel Content. Und der hat so viele Ressourcen und der kann nicht alle in Videos verarbeiten. Das ist halt einfach zu aufwendig. Deswegen hat er sich seinen eigenen RSS Reader gebaut mit Flutter. Er kannte sich mit Flutter jetzt auch nicht so gut aus. Deswegen hat er halt alles mit KI, aber wirklich so mit Web-Oberfläche hat sich dann den Code rauskopiert und hat das halt mit Flutter dann die App sich irgendwie zusammengebaut, und im Prinzip hast du dann halt so ein Tech-Newsfeed, wo dann.

Irgendwelche, also der hat das ja im Backend damit gebaut, wo die Sachen dann irgendwie die Artikel werden dann zusammengefasst und dann kannst du dir halt praktisch die Zusammenfassung oder die Links dann hier anklicken und dir die Artikel durchzulesen. Im Prinzip ist es ein RSS-Reader und er hatte das Problem, dass er halt kein Mac hat. Und er hat auch kein iPhone.

Und um die App in den App Store reinzubringen, musst du es ja, du musst es zwingend auf einem Mac kompilieren und er konnte das nicht. Und dann habe ich mit ihm gesprochen und habe gesagt, ich so weiß was, ich kann das für dich machen, dann ist es halt unter meinem Entwickleraccount, wird das dann halt vertrieben.

Und das ist schon eine richtige App, also wirklich mit In-App-Purchase und Subscription und so weiter, und ich kenne mich mit Flutter halt null aus, also ich habe noch nie mit Flutter irgendwie zu tun gehabt, also für die Leute, die es vielleicht nicht kennen, das ist halt einfach eine Cross-Plattform-Lösung, um Mobile-Apps zu entwickeln, schreibe es dann halt mit Dart, Flutter ist dann das Framework und schreibe es dann halt eine Codebase, und genau, dann habe ich praktisch Cursor gefragt oder ich habe erstmal Chichi mit dir gefragt, ich sage, nimm mal dieses Repository.

Und gib mir mal die Kommandos, damit ich diese App dann auch auf iOS bauen kann. Da habe ich so ein paar Kommandos bekommen. Es waren einfach so ein paar Flutter-Command-Line-Tools, die ich installieren musste. Und habe es ausgeführt. Und dann konnte ich die App auch laufen lassen. Allerdings haben ein paar Sachen nicht funktioniert. Zum Beispiel irgendwie so ein Share-Button, dass so ein Share-Sheet hochkommt.

Das hat zum Beispiel auf iOS gar nicht funktioniert. Auf Android hat es funktioniert. Und ich habe ja keine Ahnung gehabt, wie das funktioniert und dann habe ich einfach dieses ganze Projekt einfach in Windsurf aufgemacht und habe so lange mit der KI praktisch gearbeitet, ohne dass ich den Code irgendwie verifizierte, also ich konnte den jetzt nicht validieren, ob das jetzt guter Code ist oder schlecht, ich kann das überhaupt nicht bewerten, aber ich habe einfach so lange Ping-Pong gemacht und es ging relativ schnell, dass ich die so in, sagen wir mal, zwei Tagen immer mal wieder dran gesessen, dass ich die dann praktisch in State bekommen habe, dass die dann auch im App-Store akzeptiert wurde, im Review also im Review-Prozess und es hat funktioniert,

also da war es so ein Fall, dass halt auch zum Beispiel ein Button nicht funktioniert hat und der Style wenn ich da einen neuen Button hinzufügen musste, weil Apple dann gesagt hat, ja wir brauchen da noch einen Button, um irgendwie auf die. Terms of Usage und so weiter zu verlinken habe ich dann einfach gesagt, ja benutze halt den Style, so wie in der App, wie es sowieso in der App schon aussieht und das wurde dann übernommen und das hat dann funktioniert.

Also ein paar Bugs gab es noch, aber ich habe dann auch einfach der KI gesagt, ja fix mal diese Bugs und habe dann so lange probiert, bis es dann geklappt hat, ohne wirklich den Code zu verstehen. Also ohne den neuen Code irgendwie zu verstehen. Klar, wenn du den halt durchliest, wenn du die Syntax, selbst wenn du die Syntax nicht kennst, aber lange in der Softwareentwicklung gearbeitet hast, dann kannst du ja auch Code, also du kannst ja schon verstehen, was da passiert.

Selbst wenn du nicht selbst drauf kommen würdest, genau. Und das hat erstaunlich gut funktioniert. Also das heißt, diese App ist eigentlich zu 90% komplett mit KI entstanden. Also mein Teil 100% und sein Teil auch zum Großteil eigentlich. Also von Cedric, der die ganze App an sich gebaut hat.

Jetzt hast du ja gerade den Use Case, dass du etwas mit KI geschrieben hast, weil du jetzt in dieser Sprache nicht, weil du normalerweise nicht mit Flutter schreibst. Aber du bist eben ein Softwareentwickler und kannst den Code lesen. Und jetzt, du hast, also das eine ist ja, es funktioniert und das ist super.

Ich bin auch großer Fan von mit KI entwickeln und finde das auch toll. Aber du hast auch gemeint, es ging schneller. Und ich würde jetzt einmal kurz hinterfragen, ob wir wirklich sagen können, dass es schneller ging oder war es vielleicht einfach nur lustiger, weil du nicht mehr auf Stack Overflow gehen musstest und das selber durchzulesen.

Würdest du sagen, du hättest es vielleicht auch so, ich glaube, du hast gesagt in zwei Tagen, hättest du es vielleicht auch so in zwei Tagen hinbekommen oder war das tatsächlich, dass es mit KI auch wirklich schneller ging? oder einfach halt nur cool.

Gut, ich kann es halt nicht, ich habe jetzt keinen A-B-Test gemacht, also deswegen ist es ein bisschen schwer, aber ich habe mit Morpheus auch drüber gesprochen, generell, wieso er die App entwickelt hat und so weiter und er ist halt auch super beschäftigt und er hat gesagt, gäbe es KI nicht, dann gäbe es die App auch nicht.

Der hätte überhaupt nicht die Zeit, die Kapazität, so eine App selbst zu entwickeln und das ist halt mehr so ein Nebenprojekt gewesen. Das heißt, es hätte sich auch überhaupt nicht gelohnt, einen professionellen Flatterentwickler praktisch als Freelancer zu holen, der die App schreibt. Und deshalb auf der einen Seite, so ja, auf jeden Fall hat es erstmal die ganze App erstmal möglich gemacht. Und für mich, Wäre auf jeden Fall, also ich hätte auf jeden Fall viel länger gebraucht, weil ich halt so viele, weil ich halt die ganzen Basics einfach nicht kenne.

Das heißt, ich wüsste gar nicht, wie, also ich müsste mich halt erstmal in diese ganze Domain-Language praktisch einarbeiten, einlesen. So, was ist jetzt eine View? Heißt die dort View? Nee, bei Flutter ist es, glaube ich, ein Widget. Und da gibt es halt ganz viele solche Sachen. Das heißt, ich muss erstmal wissen, wie ich danach googeln muss.

Das ist ein Unterschied, wenn ich mich damit schon gut auskenne und genau weiß, wonach ich suchen muss. Aber dann muss ich halt erstmal gucken, wie wird so ein Element überhaupt genannt? Wie funktioniert die Kommunikation mit der Schicht darunter und so weiter? Ich glaube, dahingehend hätte ich ohne KI sicherlich viel länger gebraucht.

Ich verstehe das tatsächlich auch wirklich für den Use Case, wenn man Programmierer, Programmiererin ist, aber jetzt eben ein bisschen was anders macht. Denn ich lasse eigentlich wirklich jetzt sehr wenig Code für HTML, JavaScript und CSS schreiben, vor allem in dem Kontext, in dem ich dann bin, weil keine Ahnung, ob es das jetzt bei iOS so gibt.

Aber wir haben zum Beispiel immer unsere UI-Komponenten und die haben dann ein bisschen andere Syntax und dann haben die ein bisschen andere Properties. Und wenn ich das in VS Code habe, und VS Code hat wirklich sehr gute Unterstützungen, gerade wenn man TypeScript benutzt anstatt JavaScript, dass ich so viele Autocompletions habe, dass ich immer da der Meinung bin, ich bin sogar schneller, wenn ich selber im Code nur mit Autocompletions schreibe als mit einer KI.

Aber ich lasse mir zum Beispiel Bash-Skripte schreiben oder ich möchte Daten für mich selber evaluieren und ist jetzt egal, aber ich brauche irgendwie ein Excel-Sheet oder ein Google-Sheet und habe schon wieder keine Ahnung, wie ich da eine Summe ausrechne und solche Sachen. Damit würde ich auch sagen, dass ich sehr viel schneller bin.

Hast du denn tatsächlich auch iOS-Apps geschrieben und auch da dann das Gefühl gehabt, dass es schneller ging?

Also man muss natürlich jetzt unterscheiden zwischen irgendwie Production und also jetzt in der Firma, wo ich gearbeitet habe oder jetzt für diese kleinen Hobbyprojekte, wo ich vielleicht irgendwie eine App gebaut habe. Und da merke ich jetzt schon, wenn ich jetzt zum Beispiel, also wir haben eine App, das ist so eine kleine Habit Tracker App, die gibt es im App Store, hat auch ein paar User mit In-App Purchase und so weiter, das ist halt so ein Hobbyprojekt, aber das begleite ich so ein bisschen mit einer Videoserie.

Und da ist es schon so, da arbeite ich mit jemandem aus meiner Community zusammen, das ist einfach jemand, der halt auch Bock drauf hatte. Und wir arbeiten bei der App relativ wenig mit KI, was dann wirklich an den Code geht, dann wirklich in die App wandert. Was ich jetzt aber schon gemacht habe, ist für Prototyping.

Zum Beispiel wollen wir in die App, wollen wir jetzt so ein Rewards-System zum Beispiel einbauen. Dass du halt praktisch, wenn du, du hast halt irgendwie deine drei Habits, wo du halt jeden Tag einchecken willst, wie keine Ahnung, ich dehne mich, ich trinke genug Wasser oder sonst irgendwas. Und wenn du halt irgendwie siebenmal eingecheckt hast, dass du dann irgendwie so einen Award bekommst, den du halt sammeln kannst.

Und dann wollen wir jetzt halt noch zusätzlich irgendwelche Awards reinbringen, dass wenn jetzt irgendwie der, keine Ahnung, der Welt-Yoga-Tag ist und du hast dann irgendwie Yoga auch Teil deines Habits und du eincheckst, dann bekommst du auf einmal so einen Surprise Award oder so einen Reward. Und für die Benutzeroberfläche, wie das aussehen könnte, weil wir uns noch nicht sicher waren, wie das Konzept auszusehen hat und wir jetzt natürlich, wir sind beides keine Designer und wir haben halt auch nicht die Zeit dafür, haben wir es dann einfach so gemacht, dass ich einfach mal mit Winsurf, habe ich Mal so ein Screen erstellt, der einfach leer war und habe dann der KI gesagt, was ich haben will und habe damit dann auch ein bisschen mit Animationen

und so weiter rumprobiert. Also der Code, der wird auf jeden Fall im Müll landen. Aber damit wir halt praktisch so eine Diskussionsgrundlage hatten für uns zwei, weil er arbeitet halt auch als Vollzeitentwickler, hat auch zwei Kinder, das heißt, das ist jetzt halt auch nur so ein Hobbyprojekt, wo er dann abends vielleicht mal eine Stunde sich hinsetzen kann.

Und wenn wir da dann anfangen würden mit Designs und Figma und Pipapo und das dann irgendwie versuchen, die App, wie verhält sich das? Und dann können wir da mit den Animationen rumspielen. Da würden wir halt super viel Zeit verschwenden. Und ich glaube, dass es uns dabei hilft, insgesamt am Ende ein besseres Ergebnis zu erreichen, weil ich nicht auf dem Blatt Papier praktisch aufzeichnen muss.

Ah, schau mal hier, so Simon, so habe ich mir das jetzt vorgestellt, sondern ich mache das in der gleichen Zeit, lasse ich halt einfach die KI machen, lasse mir in der Zeit einen Kaffee raus, komme wieder zurück, baue das und denke so, ah, das geht schon mal so ungefähr in die Richtung, wie ich mir das vorgestellt habe. Einfach damit wir uns das gegenseitig zeigen können.

Und deswegen glaube ich auch, dass das zum Beispiel auch für Designern. Also ich weiß ja nicht, wie die jetzt arbeiten, aber dass es für Designern vielleicht auch ein gutes Tool sein kann, einfach mal selbst was auszuprobieren, wie sich das dann auch wirklich in der Hand anfühlt. Weil das ist nochmal ein Unterschied, irgendwie so einen Klick-Dummy zu haben, der irgendwie, keine Ahnung, mit 10 FPS irgendwie rendert und sich nicht wirklich so verhält wie auf der Plattform.

Und das dann irgendwie einfach direkt auf ein Gerät zu bringen. Und dafür ist es dann schon viel schneller. Also, gerade dieses Prototyping, wie du gerade gesagt hast, also das sieht man ja auch immer wieder bei, wenn man jetzt Figma sich anguckt oder so.

Was Designerinnen und Designer, so habe ich es zumindest gesehen in den letzten Jahren, immer wieder versucht haben, ist eine möglichst interaktive Prototyp zu haben. Und wenn man jetzt sagen kann, hey, guckt mal, ich habe hier folgendes Design, das will ich gerne überführen in eine Art App, ich kann aber keine App bauen, Figma macht schon was, das bringe ich jetzt mal irgendwie mit einer App zusammen und dann guckt nochmal ein Entwickler, eine Entwicklerin drüber und dann läuft das Ganze innerhalb von einem Tag und du kannst das deinen Stakeholdern als funktionierenden Prototypen zeigen und darin rumspielen, Dinge verändern mit ein paar Änderungen über die AI sozusagen.

Ich denke, das ist ein mega Fortschritt auf jeden Fall und bringt, glaube ich, so Projekte sehr viel schneller dann auch zu den Zielen.

Genau, also das ist halt so die Sache, dass ich würde es nicht sagen, dass ich damit insgesamt einfach schneller programmiere, weil wenn ich jetzt genau weiß, was ich machen möchte, dann kann ich das halt gerade mit etwas, womit ich mich sehr gut auskenne, da ist die KI jetzt nicht, schneller, klar natürlich der Code wird halt schneller runtergeschrieben, aber durch dieses hin und her und dann nochmal reprompten und dann nochmal, ah nee, ich habe eigentlich das gemeint und dann auf einmal Sachen, die davor funktioniert haben, sind jetzt wieder kaputt.

Dann ist man frustriert und muss wieder von neu anfangen und so weiter. Das ist jetzt nicht unbedingt schneller, aber um insgesamt dann an das Ergebnis zu kommen, da ist man dann vielleicht schneller. Also wenn man wirklich sagt, okay, ich muss jetzt eine App bauen, die das und das macht und Sachen auszuprobieren.

Wo ich auch Potenzial sehe, ist Testing, weil das ist halt einfach teuer. Und entweder, ich weiß ja nicht, wie es bei euch ist, aber in den Firmen, wo ich gearbeitet habe, war es so, entweder man hat es halt gar nicht gemacht, weil es einfach zu aufwendig ist, Oder man hat es gemacht, aber so die Hälfte der Zeit hat man irgendwie nur für Testing und die Tests haben nicht richtig funktioniert, dann hat man nicht alle Fälle abgedeckt, weil man vielleicht doch was vergessen hat.

Und da sehe ich eigentlich schon ziemlich viel Potenzial, dass man halt einfach ein Feature entwickelt und dann irgendwie ein Model hat und dann weiß man, okay, das funktioniert das alles, aber ich möchte es halt auch noch Tests dafür haben, dass irgendwelche Daten validiert werden oder sonst irgendwelche Sachen, dass die KI dann halt einfach die ganzen Unit-Tests zum Beispiel für einschreibt.

Und dann kann man am Ende natürlich nochmal drüber lesen und schauen, passt das so mit den Tests, tun die, was ich eigentlich möchte, weil es gab ja, und es gibt ja schon immer so viele Ansätze, zu versuchen, Testing einfacher zu machen, dass man irgendwie, ich weiß nicht, wer ist Cucumber oder so, dass man halt irgendwie einfach die Tests irgendwie in so Pseudocode praktisch schreibt und dann hat man irgendwelche Skripte, die das dann in Swift-Code oder sowas umwandeln und da muss man trotzdem nochmal drüber gucken.

Also das gibt es ja nur, weil die Leute einfach keine Zeit dafür haben, weil es halt einfach zu teuer ist. Und da denke ich, weil es schon eher straightforward ist, solche Tests zu schreiben, ist halt viel Schreibarbeit, dass man sowas besser auslagern kann.

Ich denke, der Testing-Case ist genau dieser Fall von, ich bin eine Programmiererin, aber ich schreibe nicht ständig in dieser Sprache. Weil zwar sind die Tests, die ich auch schreibe in einem JavaScript-Code, aber nicht in dem App-Code, den ich jetzt täglich so schreibe. Und ich sehe auch Potenzial auf jeden Fall beim Testing mit KI aus den Gründen, dass ich vielleicht die genauen Funktionen nicht auswendig in meinem Kopf weiß.

Und die KI, wie wir vielleicht von dem Framework, das ich jetzt gerade dafür nutze, eben weiß, ob ich da einen Mock oder wie ich den Spy aufsetze und diese ganzen Sachen, dann muss ich eben nicht auf Stack Overflow gehen und muss es mir raussuchen, sondern KI schreibt schon runter. Das ist mein Punkt, wo ich meine, ich glaube, das geht nicht unbedingt schneller.

Aber es macht mir Spaß und ich kann den Kaffee nebenbei machen und muss es nicht selber lesen, beziehungsweise auch Stack Overflow. Ich meine, ich weiß nicht, wie es bei iOS ist, aber bei uns ist hier immer alles im Frontend-Bereich ist hier immer alle drei Tage schon der ganze Code wieder outdated, weil es eine neue Version von irgendwas gibt und die Funktionen neu heißen.

IOS ist nicht ganz so schlimm. Da gibt es einmal im Jahr eine neue Version und da ist es eigentlich okay. Also, noch human.

Ansonsten muss ich auch sagen, dass ich jetzt zumindest mit Chat-Tipp, die mache ich die ganzen Sachen ja immer und das muss ich schon ein bisschen dafür loben, dass ich die Tests gar nicht so schlecht fand, wie die aufgebaut waren, weil da hatte ich ein bisschen Sorge, weil ich meine, die KI wird ja trainiert von dem, was im Internet ist und dann bekomme ich zum Beispiel gerade bei CSS meiner Meinung nach relativ viel Quatsch immer um die Ohren gehauen und denke mir, wo die Richtung will ich überhaupt nicht gehen.

Und bei Testing fand ich schon, dass da sinnvolle Angaben kamen, wie hey, du könntest jetzt da und das und das noch testen und das ist jetzt vielleicht sogar eher ein sinnloser Test, den kannst du quasi wieder löschen. Das Gefährliche, was ich hier sehe, ist, ich bin der Meinung, dass man App-Code sehr gut mit KI schreiben kann.

Ich wäre jetzt dagegen, dass man Code-Reviews mit KI macht. Ich meine jetzt nicht, ich schreibe einen Text und lasse von einer KI nochmal grammatikalisch schön auf Ende schreiben, sondern ich meine tatsächlich automatisierte Code-Reviews, denn genau das ist für mich eigentlich das, wo man die Menschen dazu braucht.

Und das ist das so ein bisschen, was ich die Sorge habe bei Testing, dass man quasi nur noch die KI jetzt die Test schreiben lässt. Und bei jedem Code-Review ist es so, hat ihr die KI geschrieben? Ja, los geht's, mitgemerkt. Und dass man so ein bisschen immer mehr das Wissen dann drüber verliert, wie man es eigentlich selber macht, ist wahrscheinlich jetzt aber eine globale, große Frage, ob man mit KI irgendwann vergisst, wie es selber geht und ob das überhaupt schlecht ist, das war ein großes Thema.

Wollte nur unterstreichen, bei Testing finde ich es, glaube ich, auch ganz sinnvoll, das einzusetzen.

Habe ich jetzt neulich auch mit einem Freund ziemlich lange drüber diskutiert, ob das jetzt zum Beispiel für Junior-Entwickler, ob KI jetzt was Gutes oder was Schlechtes ist. Weil einerseits ist es schon was anderes als der Klassiker, man hat einfach alles von Stack Overflow zusammen kopiert, weil so schlecht es ist, einfach irgendwelche Sachen von Stack Overflow zu kopieren, Man hat sich ja trotzdem damit beschäftigt, im Sinne von, man hat die Fragen gestellt, man liest sich durch irgendwelche Foren, durch irgendwelche Dinge, man sucht schon dann den Code raus und probiert rum und so weiter.

Ich glaube, das haben wir alle irgendwann mal gemacht. Bei KI macht man das halt gar nicht mehr. Man sagt halt einfach nur noch, was man haben will und die KI spuckt dann halt was aus. Es kann aber auch extrem mächtig sein, meiner Meinung nach, wenn man es richtig einsetzt. Weil wenn ich jetzt zum Beispiel so eine Codebase habe und die kann ich mit Windsurf aufmachen, dann kann ich auch Fragen zur Codebase stellen.

Das heißt, das ist wie wenn ich jetzt einen Entwickler neben mir sitzen habe, der schon eine Weile in dem Team arbeitet und dem kann ich dann praktisch im Onboarding ganz viele Sachen fragen. Hey, wie funktioniert das? Welche Architektur? Und so weiter. Und gerade wenn man noch irgendwie ganz am Anfang ist, Zumindest war das bei mir so.

Dann habe ich auch gedacht, ich nerve meine Kollegin jetzt die ganze Zeit, die neben mir sitzt und ich stelle dieselbe Frage zum zehnten Mal. Was aber nie ein Problem war. Aber ich meine, klar, man selbst denkt, ich möchte den Leuten jetzt nicht auf die Nerven gehen. Wenn man da jetzt so eine KI hat und dann zusätzlich halt einfach seine Fragen da noch reinstellen kann, warum wurde das gemacht und wie funktioniert das, diese Komponente, in dem Bereich das Code.

Also da sehe ich schon viel Potenzial, aber es ist halt auch schon verlockend einfach zu sagen, ja dann lass ich die KI einfach alles schreiben. Also es ist halt wirklich, es ist schon was Gutes, aber es ist halt auch irgendwie... Gefährlich, meiner Meinung nach. Also wenn man schon den Job hat, ist natürlich eine andere Sache, weil dann gehe ich davon aus, dass auch die Firma dafür zuständig ist, dass das Onboarding ordentlich funktioniert und Knowledge-Sharing und dass dann halt auch Leute neben einem sitzen und das dann halt einem erklären und dass KI halt einfach nur so als Werkzeug ist.

Aber wenn man jetzt halt gerade am Anfang ist bei der Softwareentwicklung und vielleicht irgendwie nur ein Hobbyprojekt hat, dann ist es natürlich auch ein bisschen schwierig, dass man dann vielleicht nicht so viel lernt, wie man es selbst machen würde. Weil das ist die einzige Möglichkeit, das sage ich immer bei meinen Videos, ich habe auch viele Leute, die meine Videos anschauen, die noch relativ jung sind, die haben noch nie wirklich professionell Software entwickelt.

Und denen sage ich auch immer, der einzige Weg, wirklich gut in der Softwareentwicklung zu werden, ist halt die Praxis. Also du musst halt einfach Projekte umsetzen, weil kein Tutorial bringt dir Programmieren bei. Das muss man sich selbst beibringen. Und Tutorial ist halt nur ein Werkzeug. Aber wenn du jetzt sagst, ich benutze KI für alles und man programmiert dann selbst nicht mehr, ja, dann kannst du nicht programmieren.

Dann weißt du, wie man eine KI benutzt, aber dann kannst du das nicht selbst programmieren.

Vor ungefähr einer halben Stunde, das sagtest du ganz am Anfang, ich weiß jetzt gar nicht mehr, ob ich es jetzt noch richtig zitieren kann, dass du vielleicht auch wieder ein bisschen eher weggekommen bist, das mit der KI zu programmieren. Du nix, weißt du noch, was du da sagen wolltest oder gedacht hast?

Ja, also gerade so bei meinen eigenen Projekten ist es halt schon so, dass ich da für den tatsächlichen Output, was dann am Ende im Code gelandet ist, dass ich dort gerade am Anfang, aber der Code ist jetzt mittlerweile eh schon wieder draußen, dass ich dort ziemlich viel KI benutzt habe, um halt einfach schneller zu sein, weil ich halt nicht die Zeit habe, da jetzt Vollzeit dran zu arbeiten, weil man muss natürlich auch Videos produzieren und so weiter.

Aber ich habe dann schon gemerkt, dass umso größer die Codebase wird. Und ich meine, das ist eine Habit Tracker App. Das ist jetzt nicht irgendwie, keine Ahnung, WhatsApp nachgebaut mit Videostreaming und keine Ahnung was, sondern es ist eine ganz einfache Habit-Tracker-App, aber ich habe das natürlich schon, so gut es geht, mit einer ordentlichen Architektur gebaut oder zumindest versucht und das ist halt mit KI ein bisschen problematisch, weil wenn man sich gut damit auskennt, dann...

Kritisiert man natürlich auch das Ergebnis viel mehr. Also wenn man dann wirklich, dann schaut man nicht nur hin, funktioniert es, sondern wie sieht es auch drunter aus. Und wenn der Code dann halt so wie durchgemischt ist, dann ist halt auch die Qualität dann teilweise echt schlecht. Und ich meine, im Prinzip diese ganzen Large Language Models, das ist ja einfach, das ist ja nur Mathematik.

Das rechnet ja nur aus, wie wahrscheinlich ist, dass der Code jetzt so richtig ist. Und es wird halt einfach mit den Massen an Code, die halt irgendwie online zu finden ist, werden diese Large Language Models, werden die trainiert. Und das Problem ist halt einfach der Großteil des Codes, den man im Internet findet, ist halt einfach schlecht.

Oder halt auch, also wirklich einen richtig guten Code, den man jetzt vielleicht, wenn man 10 Jahre Softwareentwicklung, also wenn man die Erfahrung selbst mitbringt, dann ist man. Besser als das, was die KI ausspucken kann in den meisten Fällen. Und dann ist halt auch einfach der Anspruch nicht mehr erfüllt.

Und deshalb gehe ich bei solchen Sachen von KI weg. Wie gesagt, Prototyping, neues Feature ausprobieren, einfach ein bisschen zu experimentieren, wie fühlt sich das an und so weiter, noch immer top. Oder die Geschichte mit der Flutter-App, das war jetzt halt auch nicht meine App. Das heißt, der Kollege, der die App initial gestartet hat, der hat ja auch alles mit KI gemacht, Deswegen habe ich jetzt auch kein schlechtes Gewissen gehabt, da mein KI-Code reinzugießen, weil die Qualität war jetzt eh so, ja, es muss halt funktionieren.

Aber das ist ja auch völlig legitim. Also ihr seid ja zwei Personen, die ein bisschen in dieser Codebase rumschreiben. Das ist ja dann, ehrlich gesagt, auch vollkommen in Ordnung, wenn das ein bisschen ist wie Kraut und Rüben, solange für die NutzerInnen draußen kein Nachteil entsteht, wie das jetzt irgendwie die Performance schlecht ist oder die ist sehr viele Megabyte groß, obwohl es eigentlich viel kleiner sein könnte oder, oh Gott, im schlimmsten Falle hat die KI noch irgendwie Sicherheitslücken oder böshaften Code eingefügt, aber davon gehen wir jetzt bei alles nicht aus.

Das ist ja schon eine andere Situation, wie du hast eine 500-Personen-Firma mit 200 EntwicklerInnen und du brauchst einen gut maintainbaren Code und einen gleichen Coding-Style-Guide immer. Und eben, ich meine, ein guter Code ist im Endeffekt ein Code, den man halt lesen kann als Mensch und nicht einer, der funktioniert.

Dass Code funktioniert und zum richtigen Ergebnis führt, ist ja nur die unterste Prämisse und alles andere kommt obendrauf. Aber für solche Use Cases finde ich das wirklich vollkommen gut. Und genau das ist das, was ich vorhin meinte. Ich lasse mir zum Beispiel mit sowas einfach Bash-Skripte schreiben.

Wir haben eine CSS-Migration gemacht von, ach Gott, Klassenname 1 auf Klassenname 2. Das war es im Endeffekt. Aber das kannst du jetzt schon nicht einfach machen mit einem Command-F und Replace, weil ein bisschen komplizierter war es schon. Aber das war halt so ein umfangreiches Projekt, dass man nicht einfach mal loslegen konnte, sondern braucht jetzt halt ein Skript, um zu sagen, wie viele Dateien muss ich überhaupt anfassen, um dann zu entscheiden, wo fange ich an.

Und ganz im Ernst, solange der Code mir die Daten richtig rausspuckt, ist mir auch egal, ob das jetzt auf meinem MacBook zwei Sekunden zum Ausführen dauert oder fünf Sekunden. Dann darf es auch unperformance sein. Und dann, sobald das Projekt fertig ist, schmeiße ich die Datei wieder weg.

Genau, also es kommt halt immer auf den Anwendungsverlangen, auf die jeweilige Situation. Also jetzt in der Firma dann zu sagen, wir lassen jetzt alles von KI schreiben, das wird früher oder später dem Team um die Ohren fliegen, bin ich fest davon überzeugt. So wie das halt aktuell ist, weil sobald du da irgendwie die Kontrolle abgibst, dann hast du die Kontrolle abgegeben, dann musst du aber auch mit den Konsequenzen leben.

Deswegen, solange man das in so einer Sandbox-Umgebung gut eindämmen kann, das ist völlig in Ordnung. Also, ich meine, es kommt natürlich auch immer auf die Priorität an. Ich habe jetzt für diese kleine App, habe ich gedacht, okay, ich würde gerne noch eine Landingpage bauen, damit ich halt praktisch Leute auf diese Seite verlinken kann und dort sind so ein paar Screenshots und so weiter.

Und ich wollte jetzt, ich kenne mich halt mit HTML, CSS und JavaScript, ich kenne mich halt null aus. Also ich hätte das schon so irgendwie so ein bisschen hinbekommen, aber das wäre, um mich da einzuarbeiten, ich habe jetzt auch nicht das Interesse gehabt, da jetzt irgendwie eine Wissenschaft draus zu machen.

Hätte ich jetzt wahrscheinlich früher, wäre ich wahrscheinlich hingegangen, hätte irgendwie WordPress oder so irgendwie sowas installiert und irgendwie noch ein Theme und dann hätte ich irgendwie, hätte ich wahrscheinlich noch die meiste Zeit damit verbracht, irgendwie ein Theme auszuwählen.

Also...

Und dann habe ich mir gedacht, das muss ja nichts können, das kann einfach eine Billo-Standard-statische Webseite sein, wo ich so einen Link habe, vielleicht ein paar Screenshots, so ein paar kleine Animationen und so weiter. Und dann habe ich das auch mit Windsorff gemacht. Dann habe ich halt einfach so eine Index-HTML, dann noch eine Style.css-Datei und, keine Ahnung, auch irgendwie JavaScript irgendwas. was.

Und es funktioniert. Und dann habe ich noch so ein bisschen, ah, das sieht ja schon mal ganz gut aus. Was ich jetzt noch haben möchte, ist, dass ich so einen Parallax-Effekt habe, das praktisch einfach im Hintergrund, dass es so ein bisschen geblurrt ist und dann so ein paar Emojis so hinten sich so bewegen, die irgendwas mit Habits zu tun haben.

Da fliegen jetzt so Salat-Emojis und so weiter fliegen rum. Und das hätte ich schon irgendwie, hätte ich das schon selber irgendwie hinbekommen. Aber ich hätte da so viel Zeit reinstecken müssen. Und ich habe halt einfach nicht die Kapazität. Und dann habe ich mir gedacht, wenn ich jetzt sowas haben will, die einzige Alternative wäre jetzt für mich gewesen, dass ich irgendwie auf Fiber mir irgendjemanden suche, der mir das baut.

Und es hätte natürlich erstmal, hätte das mehr gekostet. Und zweitens hätte es viel länger gedauert, weil mit der Person muss ich auch ein bisschen Ping-Pong spielen. Und dann praktisch, ich habe mir das eher so vorgestellt und dann versteht die Person das vielleicht nicht. Jetzt kann ich aber so eine ganz kleine Seite, einfach eine statische Seite, ich meine, sicherheitstechnisch kann da wahrscheinlich nicht so viel schief gehen.

Und für sowas ist es dann völlig in Ordnung. Das ist natürlich schlecht für Leute, die sich auf solche Sachen spezialisiert haben. Aber dann denke ich mir halt auch, es gibt halt auch Anwendungsfälle, wo man halt einfach Profis ranlassen muss. Und dafür mache ich es dann halt nicht selbst mit KI, sondern da würde ich dann halt einfach Profis dafür bezahlen.

Ob die dann dafür KI benutzen und das dann, aber das ist halt auch deren Aufgabe.

Im Endeffekt ist es so eine Weiterführung von diversen Konfetti-Libraries oder sowas, die ich sonst verwende, weil ich wurde auch mal gefragt, ob ich eine Animation machen kann, wenn ich auf den Button drücke, wollen wir Konfetti. Dann habe ich mir gedacht, ja, also entweder ich kann jetzt Wochen reinstecken oder ich gehe mal auf npm für den Package-Library-Verwaltung für JavaScript-Sachen und da war Konfetti.js und damit konnte ich Konfetti machen.

Ja, wir wollen das Konfetti. Nö, ich will nehmen jetzt das oder gar nichts. Und das, ob ich jetzt so eine Library nehme oder dann KI, ist es halt genau, da kommt was Gutes raus, was ich wahrscheinlich möchte, wenn es mir nicht komplett wichtig ist, dass jetzt der Salat-Emoji genau in dem folgenden Visier-Kurven-Modus irgendwie da rumläuft, sondern ich einfach sage, es soll halt irgendwie gut ausschauen und dann passt.

Dann haben wir genau wieder, dass man wahrscheinlich mit der KI hier dann schneller ist. Und wenn man jetzt aber eben dann der KI erklären muss, ich möchte genau bitte den Kurvenverlauf, dann ist man wahrscheinlich im Endeffekt wieder doch nicht schneller, weil dann erklärt man länger, als dass man den Code selber schreibt.

Kann halt dann sein, dass es immer noch mehr Spaß macht, Prompts zu schreiben, als den Code selber zu schreiben.

Aber das ist ein ganz guter Punkt, den du jetzt angesprochen hast, weil oftmals weiß ich nämlich selbst nicht, was ich will. Also ich habe mir schon gedacht, okay, die Landingpage, die soll schon so und so aussehen. Aber ich war mir jetzt halt auch nicht sicher genau, wie welche Abstände und wie genau das animiert werden soll.

Aber ich habe einfach gedacht, ah, das wäre doch cool, wenn das noch so ungefähr so ist. Und das ist halt auch ein Problem, auch in der Softwareentwicklung, dass Leute halt auch einfach nicht gut erklären. Also wenn man jetzt mit Stakeholdern oder Kunden zusammenarbeitet, dass die halt auch oft einfach nicht gut erklären, was die eigentlich.

Also die können das nicht gut kommunizieren oder es kommt halt auch nicht gut an. Und das heißt, in dem Kontext ist es dann halt auch einfach teilweise mühsam, dann auf einen Konsens zu kommen. Und es ist halt immer ein Kompromiss. Aber wenn es jetzt eh egal ist, dann lasse ich das halt einfach so bei so einer Kleinigkeit die KI machen und habe dann halt ein Ergebnis und dann läuft das jetzt und ich muss mich nicht mehr darum kümmern.

Also wie gesagt, das kommt halt immer auf den Bereich an, wo man es dann anwendet. Right.

Was auf jeden Fall ja nochmal so ein Thema wäre, was mich nochmal interessiert, ist wirklich auch das, wo würdest du denn sagen, macht es überhaupt keinen Sinn, sich jetzt mit der KI an die Codebase zu wagen? Gibt es da irgendwas, wo du ein Projekt sehen würdest, was überhaupt gar nicht es vertragen könnte, beispielsweise Verbesserungen über die KI einfließen zu lassen oder ähnliches?

Also ich glaube, wenn es zu speziell wird, dann könnte man wahrscheinlich, also wenn man wirklich ganz spezifische Anforderungen hat und es technisch auch extrem komplex ist, dass es dann Probleme geben wird, gerade wenn zum Beispiel auch die Codebase schlecht ist. Dann kann die KI halt auch nur damit arbeiten und wenn du dann sagst, okay, baue jetzt noch das ein, ohne jetzt irgendwie vorher ein Refactoring zu machen, dann gehe ich mal davon aus, dass es da zu Problemen kommen wird.

Weil die KI baut dann halt irgendwie in diesen Spaghetti-Code noch mehr Spaghetti zum Beispiel rein. Das heißt, bevor man da dann irgendwie eine KI drauf lässt, würde ich wahrscheinlich erstmal ein Refactoring machen. Also da könnte man natürlich dann auch im Einzelnen dann sich überlegen, okay, wie könnte man das mit einer KI irgendwie als Unterstützung machen, dass man zum Beispiel so einen Code refactored.

Aber dann zu sagen, okay, die Codebase ist schlecht und wir bauen einfach, wir klatschen dann noch Feature X und irgendein Patch Y von der Seite noch drauf. Ich glaube, da ist es eher problematisch. Also wenn das Ziel nicht ist, die Codebase insgesamt zu verbessern.

Ja, die Frage ist aber gerade in solchen Bedingungen dann, ob da nicht vielleicht sogar die KI besser sein kann als Menschen, die halt irgendwie vielleicht auch keinen Bock mehr haben, da sich richtig reinzudenken oder sowas. Weißt du, wie ich meine?

Ja, gut, das kann natürlich sein, wenn die Codebase zum Beispiel, wenn es irgendwie eine alte Library ist, die man noch benutzt, aber noch irgendwie maintainen muss und eigentlich keine Person im Team sich so richtig damit auskennt, dann kann man natürlich dann auch sagen, aber das Problem ist halt, dann kann ja niemand validieren, also die ganzen Side-Effekts kann man dann gar nicht mehr abschätzen.

Also ich meine, das ist ja immer so, dass du Regression haben kannst, Aber wenn du jetzt eine Person drauflässt, dann weiß die zumindest, okay, an diesen, in jenen Stellen habe ich jetzt den Code angefasst. Aber wenn die KI das einfach macht und dann sagt man, ja gut, das wird schon passend, das funktioniert.

Aber dann vielleicht irgendwie im Unterbau dann auf einmal was komplett schiefläuft, dann das rauszufinden. Ich glaube, das ganze Debugging macht es dadurch nochmal viel komplizierter. Also wenn es dann schiefläuft, dann glaube ich, dann kracht es halt richtig.

Ja, was ich da so sagen würde, ist halt genau dieser Punkt, du musst halt gut validieren, was macht die KI da. Du kannst sie halt nicht einfach machen lassen und dann automatisiert committen und nervt mich nicht mehr damit, sondern man sollte halt schon validieren, was ist denn da gerade passiert und versuchen, diese Side-Effekts abzuschätzen.

Im Prinzip musst du ja ein Code-Review dann spätestens ein Code-Review machen. Genau. Eine Kollegin war oder ein Kollege oder dann die KI, im Endeffekt hast du ja vorhin auch schon gesagt, es muss halt trotzdem nochmal ein Mensch drüber gucken. Gerade in solchen in solchen Projekten, wo es dann halt wirklich darum geht, keine Ahnung, das baut eine Firma und die verdient dann mit ihr Geld und die hat irgendwie Kunden und so weiter.

Wie gesagt, wenn das jetzt so ein Miniprojekt ist von mir, dann ist es wurscht. Dann kann ja auch nicht so viel schief gehen. Also dann habe ich vielleicht mal einen Bug. Aber wo ich halt wirklich Probleme sehe, ist, wenn das Projekt wächst und wächst und wächst und wächst. Also die ganze Komplexität, die wächst ja exponentiell bei so einem Softwareprojekt.

Umso mehr Code ich habe, umso mehr Komponenten, umso mehr spielen die zusammen. Klar, natürlich, man versucht immer alles. Also Atomic, also dass alles praktisch in sich ist und eine kleine Aufgabe. Aber das ist halt auch nicht immer möglich. Dann gibt es auf einmal doch wieder irgendeine Referenz, die du dort unbedingt brauchst, weil du sonst die komplette App irgendwie umbauen musst und es wird immer komplexer.

Und wenn du dann sagst, okay, eine KI baut da jetzt irgendwas drauf und die, macht dann praktisch so ein Feature in einem Pull-Request fertig, wo du vielleicht vorher sagst, okay, da haben wir einen Feature-Branch, da machen wir das Schritt für Schritt und so weiter, einfach damit wir das auch in einem Sprint abarbeiten können.

Und dann sagen wir, okay, dann machen wir, wenn die KI das jetzt aber dreimal schneller macht, dann machen wir halt drei Tickets, dann hatten wir halt einen Ultra-Pull-Request und ich meine, wir kennen das alle, wenn man dann einen Pull-Request aufmachen, anschauen muss und der hat eben, und der Diff hat irgendwie plus tausend Zeilen Änderung und der ist dann so, boah, wie soll ich jetzt aus dem Diff irgendwie verstehen, was da gemacht wurde.

Und ich glaube, in solche Fälle rennt man viel öfter rein, wenn man die KI alles machen lässt. Weil die halt so schnell praktisch den Code generiert. Also du kommst ja als Mensch, du kannst ja nicht so schnell tippen, wie die KI das macht.

Die eine Verantwortung, die wir dann hier haben, ist, wir haben ja vielleicht Kundendaten, Passwörter, da werden vielleicht Bestellungen, Checkouts gemacht und da sollte ja eben der Code eben sicher sein. Aber die andere Verantwortung, die wir ja vielleicht auch haben, ist die Sicherheit von unserem eigenen Code.

Und du hast schon auch am Anfang gemeint, Kevin, mit lokal versus, das sind halt so Sachen in der Cloud. Jetzt für wahrscheinlich so ein bisschen Beispielprojekte machen wir mal ein bisschen eine App, wo ich ein paar Sachen tracken kann. Vielleicht jetzt noch nicht so relevant, aber hast du dich so ein bisschen auseinandergesetzt oder so ein bisschen Gedanken dazu, welchen Code man jetzt vielleicht nicht zu ChatGPT oder anderen Cloud-Tools reinkopieren sollte oder sollte man bei bestimmten Sachen vielleicht doch keine VS-Code-Brücke herstellen?

Ja, also ich glaube, ich weiß nicht, ob es bei Anthrofic heißt die KI von denen.

Claude.

Claude, genau. Ich glaube, dort steht auch, glaube ich, bekommt man, glaube ich, ab und zu mal eine Meldung von wegen, poste deine API-Tokens und so weiter hier nicht rein. Und weil die KI benutzt das ja natürlich, die merkt sich das und dann kannst du irgendwie, und irgendeine Person ein paar Monate später sagt, ja, gib mir mal ein Beispiel für eine, keine Ahnung, für einen Chat-JPT-API-Token und die KI denkt sich, ja, ja, sowas habe ich schon mal gesehen, guck mal hier. und dann kannst du das benutzen.

Und klar, natürlich, wenn du jetzt so ein Chatfenster hast und jeden einzelnen Code-Schnipsel dort selbst rein, dann hast du vielleicht ein bisschen mehr Kontrolle drüber. Aber wenn du das ganze Projekt einfach, die KI über ein komplettes Projekt einfach lokal drüberlaufen lässt und es wird dann alles schön die Wolke hochgeschickt, ja, was machst du dann?

Dann hast du halt alles geschickt oder irgendwelche User-Logins oder, keine Ahnung, irgendwelche Datenbank-Dumps, die vielleicht bei dir noch im Directory rumliegen, weil du damit irgendwas getestet hast, wo dann halt echte User-Daten drin liegen.

Ja.

Und du weißt halt nicht, was damit passiert. Und das ist halt das Gefährliche dabei. Weil die Daten können dann halt...

Das müsste ja tatsächlich einfach, dass jemand anders auch so eine Anfrage hat und dann so, hier ist dein Codeschnipsel und da steht der fertige API-Key drin und plötzlich hast du eine 10.000 Euro Rechnung für, keine Ahnung, welches Tool halt da draußen. Da wäre es ja eigentlich so ganz freundlich, wenn so Chat-Tools die Funktion hätten, dass du vielleicht zumindest das schon im Frontend, bevor du dir Abfrage überhaupt hinschicken kannst zum Server, dass dann vielleicht ein Chattyp nicht sagen würde, es schaut so aus, als hättest du in deinem Prompt einen API-Key.

Magst du den rauslöschen, bevor du auf Enter drückst, bitte? Ja.

Ja, also ich kann mir gut vorstellen, das geht also gerade bei diesen, ich glaube bei Cursor und so weiter, du kannst ja auch praktisch dein Tree, also von deinem Directory kannst du ja auch irgendwie mit in die Konfiguration reinpacken und ich bin mir auch ziemlich sicher, dass du dort Dateien explizit ausschließen kannst.

Aber das ist halt extra Arbeit. Und manche Leute denken vielleicht nicht daran. Und arbeiten dann schon damit und dann ist es schon zu spät. Ja, dann ist es zu spät, weil wenn du es einmal hingeschickt hast, dann ist es für immer weg. Und dann kannst du der KI nicht sagen, ah, bitte löschen, sondern dann ist es halt da drin.

Das sind auch lauter solche Sachen. Das ist für mich jetzt wirklich kein Grund zu sagen, deswegen dürfen wir es nicht benutzen. Sondern man muss sich eben damit befassen, dass es diese Herausforderungen oder Stolpersteinchen geben könnte und einerseits darauf hoffen, dass die Tools schon ein bisschen darauf vorbereitet sind, dass jetzt ganz viele aufgeregte Developer ankommen, die alle Sachen reinkopieren und da vielleicht ein bisschen aufpassen.

Oder auch, dass man halt einfach irgendwelche Wege findet, das zu preventen mit irgendwelchen, also Gitignore mit irgendwelchen AI-Ignore-Dateien. Bitte diese Sachen halt dann ignorieren beim Lesen.

Ja, ich meine, die Sache ist halt auch, wenn du, Gerade solche, wenn du sowas wie Sicherheitslücken und sowas ansprichst, dann, wenn die KI dann halt versehentlich irgendwelche Sicherheitslücken einbaut, die dir vielleicht nicht so offensichtlich sind, weil, keine Ahnung, die KI benutzt, ich meine, die benutzen ja keine Live-Daten, die aktuellsten Versionen und so weiter, ist es vielleicht im iOS-Bereich nicht so kritisch, aber im Web-Bereich ist es natürlich nochmal wahrscheinlich viel schlimmer, weil du hast ja gesagt, da entwickelt sich es halt die ganze Zeit und ständig neue Versionen und so weiter.

Und die KIs, die kennen ja nicht eine Version, die jetzt vielleicht eine Woche alt ist. Und dann benutzt du vielleicht da irgendwie eine alte Version und man denkt vielleicht nicht drüber nach, aber da ist dann irgendwie eine Sicherheitslücke drin, die dann halt noch ausgenutzt werden kann. Weil man es vielleicht einfach nicht weiß.

Und denkst dir, ja, das funktioniert jetzt, ich muss es nicht auf die allerneueste Version updaten, weil das passt schon. Und wenn ich jetzt die neueste Version benutze, dann haben sich vielleicht die APIs oder so geändert. Und ich habe jetzt keine Zeit, das noch irgendwie anzupassen. Das wird schon gut gehen. Also da sehe ich dann halt auch ein Problem.

Ja, die größten Probleme, ehrlich gesagt, im Frontend-Bereich ist einfach, dass ich immer das Gefühl habe, es ist einfach zu viel schlechter Code schon online. Also meine erste Angst bei KI ist tatsächlich nicht Sicherheitslücken oder veraltete Libraries, die da genutzt werden, sondern einfach, wenn ich mir schon HTML geben lasse, ist das halt immer so ein Verhau von Diff-Containern.

Ich weiß jetzt kein iOS-Pondor dafür, aber wir haben halt irgendwie im HTML, da gibt es mehrere Elemente, wie ein heißen Button oder Input oder sogar was wie Header oder Footer. Theoretisch gesehen kannst du aber ein Diff-Element für alles nehmen. Und bisher ist es leider immer noch so schlecht, bei TGPT zumindest, dass da ganz viel Diff kommt und dann sage ich, ja, aber nicht geil, kannst du hier jetzt mal semantisch schreiben, dann kommt tatsächlich auch das Richtige zurück.

Dann ist es immer so schade, aber vielleicht entwickelt sich das. Ich meine, wir haben ja gesehen,

Wie rasant das ist. Aber du weißt es ja.

Das ist halt der Punkt, weil ich halt programmieren kann. Wir machen ja, wie gesagt, hier kein Vibe-Coding.

Genau. Und das ist halt so das Ding. Wenn du keine Ahnung hast, also wenn jetzt zum Beispiel diese Flutter-App, wenn sich das ein professioneller Flutter-Entwickler anguckt, dann werden mir hundertprozentig die Haare zu Berge stehen. Also das, denken sie, was ist denn da los? Da sind wahrscheinlich irgendwelche If-Else-Dinger drin, wo man sich so denkt, hä?

Aber in dem Kontext ist es halt egal und es ist halt auch nicht für eine Firma entwickelt worden, sondern, der Freund hat es einfach nur für sich gemacht, für seine Community und es funktioniert, die sind alle happy damit, aber natürlich, es kann natürlich dann auch um die Ohren fliegen, wahrscheinlich eher als wenn es ein Profi gemacht hätte.

Deswegen ist es halt, man muss halt immer wissen, es ist einfach ein Werkzeug und wenn man halt sagt. Wenn man damit nicht umgehen kann, dann kann es halt in die Hose gehen. Ich meine, es gibt auch irgendwie, weiß ich nicht, Fertighäuser. Und dann kann ich mir vielleicht irgendwie die Wände holen und dann vielleicht mit ein paar Laien würde ich das vielleicht mir anmaßen, zu sagen, okay, ich hole mir halt sowas und dann schraube ich das halt irgendwie selbst zusammen. Oder eine Ferteküche.

Weißt du, dass die dann, aber wenn man das Ergebnis ordentlich haben will, sodass es auch lange hält, dann muss ich halt einfach Profis holen, die zu mir in die Küche kommen, diese Küche einbauen und dann habe ich auch keine Probleme. Klar, natürlich, wenn ich jetzt sage, ich muss meine Geschirrspülmaschine austauschen, weil die irgendwie kaputt ist, dann kann ich mir auch ein YouTube-Video angucken und dann halt dieses eine Element, was jetzt nicht so komplex ist, kriege ich schon irgendwie hin, dass ich die Spülmaschine, wenn die defekt hat, dass ich die austausche.

Aber ich kann mir nicht anmaßen, die Komplexität von der gesamten Küche selbst, umzusetzen. Wenn ich will, dass die Küche halt ordentlich, dass es so lange hält und nicht irgendwie krumm und schief dann irgendwann mal zusammenfällt. Deswegen, es ist ein Werkzeug, man muss dann einfach wissen, wann man es einsetzt und wann nicht.

Ja, Werkzeug ist ein gutes Stichwort. Ein Werkzeug, was wir früher ja auch häufig, zumindest in der Frontendentwicklung fürs Web, häufig eingesetzt haben, sowas wie Komponenten-Libraries, die so fertig sind, beispielsweise Bootstrap kennst du vielleicht oder ähnliches. ja so. Und ich habe mir halt Gedanken gemacht, auch als ich dieses Tool vZero von Vercel genutzt habe, da ist es ja so, dass es schon so eine Art fertige Library an Komponenten auch gibt, die dazu bereitgestellt wird.

Dann kann man halt Befehle angeben und dann wird aus diesen Komponenten halt hier ein Web Interface oder wie auch immer gebaut. Ich frage mich, ob das in Zukunft weggehen wird, dass wir solche Tools wie, also so Komponent-Libraries verwenden und dass die AIs halt irgendwie die Komponenten halt bauen, wie sie das wollen.

Wie stehst denn du dazu? Oder glaubst du, dass wir das noch brauchen in Zukunft?

Das ist eine gute Frage. Also was jetzt zum Beispiel, also Komponent-Libraries oder irgendwie, keine Ahnung, andere Libraries, ich glaube, man muss der KI dann schon, also gerade was Wiederverwendbarkeit und so weiter angeht, hat ja einen Grund, warum man solche Libraries hat, damit man nicht das gleiche Element zehnmal irgendwie definieren muss.

Und ich kann mir ja gut vorstellen, dass die KIs dann einfach dahin gehen, dann arbeiten, dass die einfach Zugriff auf solche Komponenten-Libraries haben und sich dann die UI aus dem existierenden Sachen einfach selbst zusammenbauen, damit der KI dann später sagen kann, okay, alle Buttons, die jetzt in dieser Library drin liegen, sollen jetzt aber diesen Style bekommen, damit es so wie halt ein echter Mensch arbeiten würde.

Also ich glaube, dass sich das in der Zukunft eher so annähern wird. Man muss das dann aber der KI, glaube ich, schon speziell sagen. Also ich habe mir mal eine App irgendwie, einfach weil es mich interessiert hat, die hat irgendwie einen API-Request und so weiter gemacht, einfach irgendwelche Daten, keine Ahnung, aus irgendeiner API aus einer öffentlichen runtergeladen und dann halt irgendwie angezeigt, weil ich was ausprobiert habe.

Und die KI hat dann direkt gesagt, halt, ja, dafür müssen wir jetzt diese Alarm-Mofire-Library, so eine riesen Oschi, müssen wir jetzt importieren. Das ist halt einfach ein Netzwerk-Library für iOS. Macht halt vieles einfacher. Aber iOS hat das ja auch schon eingebaut, dass du halt API-Requests machen kannst.

Und um einen Request aufzunehmen. Abzuschicken, brauche ich jetzt nicht so eine riesige Library, die halt auch, keine Ahnung, Image, irgendwie Caching und alles mögliche mit einbaut, was halt so für meinen Fall ein kompletter Quatsch ist. Und ich glaube, da muss man dann der KI dann schon sagen, so ey, ich brauche das nicht, benutze lieber das native Zeug oder wenn du halt so eine Komponenten-Library hast, dass die dann vielleicht auch einfach mit KIs dann weiterentwickelt werden, dass du neue Komponenten halt einfach reinsetzt, also dass du damit dann vielleicht schneller arbeitest, dass du vielleicht, wenn es gerade so Benutzeroberfläche zum Beispiel ist, ich weiß nicht, habe ich glaube ich noch gar nicht gesagt, dass du bei Cursor

und bei Windsurf auch, kannst du auch Dateien hochladen. Das heißt, du kannst ein Screenshot hochladen von irgendeinem Design und sagen, baue mir mal den Screen. Und wenn du halt sagst, okay, wir haben jetzt diese neue Komponente und die lädst du halt hoch und dann wird da irgendeine Komponente gebaut und dann kannst du dich selbst auch manuell feintunen, aber so diese ganze, also diese Schreibarbeit, dass man sich die dann vielleicht erspart.

Also vor allem so Boilerplate-Schreibarbeit.

Ja, ja, genau. Also wo du halt einfach, wo du gar nicht den Kopf einschalten musst, sondern so, ich muss das jetzt halt einfach immer schreiben, weil das halt so gemacht wird. Das ist dann eher wie so eine sehr gute Autovervollständigung für dich funktioniert.

Da habe ich nämlich genau gehört, dass Xcode da einfach Schwächen hat gegenüber von VS Code, wo ich ja selber irgendwie schon Templates habe oder Boilerplate-Vervollständigungen. Was ich heute auch gelernt habe und ich musste mehrfach nachfragen, ob das quasi euer iOS ernst ist. Wenn ich einen Flow durchprogrammiert habe und gebe das an Designer-Teams und Produktmanager-Teams zurück und sage, testet mal, dann können im normalsten, im üblichen Falle, können die das alle selber im Browser testen, auf einem Staging-System und können das auch mit dem HTML manipulieren.

Die wissen alle, rechtsklick, inspect, hier kann ich irgendwie dreizeitig mal reinschreiben und schaue, wie dann der Button kaputt geht. Und ich habe heute gelernt, dass man bei iOS-Apps sozusagen Debug-Screens oder sowas baut, also bauen kann, weil die anderen Leute das sonst nicht testen können. Und da gibt es irgendwie Debug-Screens, die ihr selber implementiert.

Nix von Apple, nix von Xcode, sondern manueller Code, den iOS-Developer schreiben, damit andere Leute das testen können. Zu sagen, das sind dann noch ein paar Input-Felder und der Text tauscht sich dann bei dem eigentlichen Screen aus und dass das so ein Anwendungsfall auch ist für KI, weil das ist wieder so ein Weckware of Code und dann hat man so ein Debug-Speed sich schreiben lassen.

Ja, klar, weil bei iOS, du musst ja alles kompilieren, da kannst du nicht irgendwie, Inspect, Change und so weitermachen, das geht nicht.

Ja, aber ... Ich bleibe im Web.

Ja, also, die Webentwicklung macht Sachen schon viel einfacher. Also iOS ist halt, du musst halt kompilieren, musst es bauen, du brauchst auf dein Mac, das muss dann irgendwie in die Wolke hochgeschoben werden, ob das jetzt irgendwie bei Firebase ist oder direkt zu Testflight, was dann von Apple ist.

Und dann müssen die Leute in der Liste sein und dann wird das ja alles direkt von Apple auch signiert und dann kannst du das runterladen.

Auf die Geräte. Das hat übrigens einen großen Vorteil, muss ich jetzt dazu sagen, auch wenn man ein bisschen vom Thema jetzt abkommen. Es hat den Nachteil im Web, dass du zu viele Sachen zu schnell hacken und testen kannst. Also ich habe wirklich schon DeveloperInnen gesehen, die da nach jedem Button-Drück schon Command-S drücken, damit sich die Seite wieder neu lädt, dass eigentlich auch nur alle drei Sekunden dauert.

Da beschweren sich Web-Developer schon wirklich darüber, dass das Ganze drei Sekunden dauert. Da habe ich mir gedacht, oh Gott, frag mal andere Developer, die warten eine halbe Stunde zum Compagnen. Und da kommt, das ist mir zumindest ist dann auch mal passiert, dass man irgendwie nicht mehr richtig nachdenkt und dann wirklich so einen Quatsch abgespeichert hat, dann fünfmal die Seite neu lädt und also wie gesagt, man schreibt dann schneller, als dass man denkt und ich sehe so ein bisschen den Vorteil, dass wenn man wirklich davor steht, okay, ich muss einmal neu bilden, dass man dann einmal den Code besser durchdenkt, bevor man das überhaupt abspeichert.

Ja, auf jeden Fall, also es ist natürlich viel zeitaufwendiger. Also ich habe, was ich ab und zu gemacht habe, wenn ich mir nicht sicher war, wie das genau auszusehen hat und funktionieren hat, und ich ein paar Varianten hatte, dann habe ich einfach die Designerin zu mir an den Tisch geholt und gesagt, setz dich mal kurz hin, lass das einfach mal live zusammen machen.

Und dann habe ich halt gecodet, aber ich musste dann trotzdem jedes Mal bauen, aus einem Simulator anzeigen und dann konnte man es ausprobieren. Ja, kannst du den Abstand noch ein bisschen größer machen? Dann habe ich es geändert, musst du nochmal komplett kompilieren, drauf machen. Das geht mit den neuen Maxen, so geht es schon viel schneller als früher. Aber ja, Vanessa, ich habe ja mit deinem Mann zusammengearbeitet, da kennen wir uns ja.

Und die App, an der wir damals zusammengearbeitet haben, die war so komplex und da war so viel Zeug dran, dass auf seinem Laptop, der langsamer war als mein, hat das Kompilieren 15 Minuten gedauert bei ihm.

Ich erinnere mich an diese Geschichten.

Ja, ja, genau. Und bei mir war, ich hatte doch den schnellen, da hat es nur sieben Minuten gedauert. Aber das heißt, Apple hat zwar gesagt damals, es gibt inkrementelles Bilden. Das heißt, wenn du nur ein File geändert hast, dann wurde auch nur das wieder alles. Es hat überhaupt nicht funktioniert. Teilweise hast du einfach einen hartgecodeten String geändert und das hat die komplette App neu gebaut. Einfach ein Clean-Bild gemacht.

Und eine Viertelstunde ist halt so, du drückst drauf und siehst schon wieder, okay, das fängt wieder bei Null an. Und du konntest halt einen Kaffee machen, konntest du gemütlich, konntest du ein bisschen in die Sonne reinsetzen, und kommt es zurück und um halt zu sehen, dass der String jetzt anders ist.

Ja, da sind wir wirklich ein bisschen verwöhnt im Web und deswegen muss ich auch immer, natürlich ist es immer, immer besser, wenn Sachen immer schneller funktionieren, aber daran muss ich immer denken und schmunzeln, wenn mir jemand sagt, das mit Viet des Bilden geht jetzt in 0,1 Sekunde statt mit Webpack in 15 Sekunden oder 50 Sekunden.

Und wo ich dann auch sage, ich weiß nicht, wie viel wir jetzt wirklich Zeit investieren müssen, um jetzt irgendwie ein Tooling hier zu wechseln, weil das Bilden dauert gerade 50 Sekunden.

Ja, also das spart man dann wahrscheinlich am falschen Ende. Oder man investiert ins Falsche.

Wobei, natürlich nur an der Stelle, falls es jemand zuhört, ich bin total für Bid, falls jemand das hier falsch versteht. Du hast vorhin nochmal auch wieder so von der Dreiviertelstunde wahrscheinlich gesagt, so wenn man dann mit der KI, habe ich mit der KI Bugs gefixt. Und so habe ich gar tatsächlich jetzt selber gar nicht so über KI und Code nachgedacht, weil bei mir ist es schon eher der Use Case wie, ich muss halt irgendwie mit CSS ein Grid bauen und jetzt weiß ich, damit Zelle 3 muss so die Special Sachen haben und Zelle 6 muss das können.

Also baue ich halt eher Features damit oder Tests oder Skripte. Aber ich habe tatsächlich selten daran gedacht, nach Bugfixen zu suchen. Wie funktioniert das? Ist es dann vor allem mit Winsurf oder wo du es reinkopierst?

Also, es kommt natürlich darauf an, also es gibt ja Bugs und Bugs, wenn ich jetzt zum Beispiel weiß, okay, diese Funktion berechnet irgendwas. Keine Ahnung. Bei der Streak App gibt es jetzt ein Beispiel, da, habe ich einfach ein Array, wo jedes Mal ein Timestamp rein, wenn ich halt mich einchecke, wird ein Timestamp erstellt und der wird dann halt einfach in so ein Array einfach reingespeichert, wo die ganzen Dates drin liegen.

Und dann gibt es eine Funktion, es berechnen wir den aktuellen Streak. Und auch den längsten Streak. Das heißt, es geht dann halt einfach, jetzt hat es einen Algorithmus, der geht dann halt einfach durch das Array durch und schaut dann, okay, wie viele Tage maximal am Stück habe ich mich eingecheckt, und wie lang ist der aktuelle Streak.

Und da gab es zum Beispiel in der Berechnung gab es halt irgendwie einen Fehler und dann habe ich halt diese einzelne Funktion, weil ich ja genau wusste, wo der Bug ist, habe ich dann mal in die KI reingeworfen, habe gesagt, ja, habe das Problem beschrieben, habe das dann fixen lassen und die Lösung war halt auch genau so, wie ich das gemacht hätte.

Aber es war halt ein bisschen mehr umschreiben, noch ein bisschen mehr reindenken und so weiter. Und dann hat es auch super funktioniert. Problematisch ist es halt, wenn du halt irgendwie so ein Edge-Case hast und du weißt nicht mal, wo genau du in der App jetzt suchen musst. Und da wird es dann, glaube ich, auch ein bisschen schwieriger.

Weil da kann es natürlich dann sein, dass du zwar der KI sagst, ah, guck mal, ich habe dieses eine Problem, aber vielleicht ist es auch nur ein Symptom für ein viel größeres Problem. Und dann machst du nur so ein Flicken drauf, aber eigentlich müsste man das Problem am Kern beheben. Bei dieser Berechnung weiß ich schon, okay, diese Berechnung ist halt einfach in dieser einen Funktion, das ist halt einfach falsch.

Und das wird auch nur dort gemacht. Und von dort wird das dann benutzt. Das ist ja praktisch schon der Kern. Aber wenn ich halt nicht weiß, wo genau die Ursache jetzt liegt, dann gebe ich nur das. Ich glaube, da funktioniert es dann halt nicht so gut, außer ich lasse es mir vielleicht erklären. Und da weiß ich auch gar nicht, wie gut die KIs aktuell sind, um die Ursache dann zu entdecken.

Also wenn ich jetzt nicht weiß, wo der Bug ist, dann kann ich halt die KI benutzen, hoffentlich. Da weiß ich eben auch nicht, wie gut es funktioniert, dass die KI dann praktisch mir genau die Stelle zeigt, wo der Quell des Problems liegt. Und dass ich mir das dann halt erklären lasse. Aber man muss dann halt auch genügend Erfahrung mitbringen, um dann zu verstehen, okay, ist das jetzt wirklich die Ursache oder ist es halt auch nur an der Stelle wieder ein Symptom, was halt einfach nur eine Ebene tiefer liegt.

Also man kommt halt immer wieder auf das gleiche Ergebnis, dass man trotzdem immer noch mal drüber gucken muss. Weil sonst baust du halt vielleicht irgendwie noch einen Bug ein und noch irgendwo und am Ende funktioniert gar nichts mehr und dann musst du ein riesen Refactoring machen.

Ja, ich habe das auch mal bei V-Zero so ähnlich gehabt, dass ich irgendwie einen grundlegenden Bug hatte und der AI gesagt hat, bitte schau doch mal nach, dass du den mal irgendwie fixt. Und dann drehst du dich halt immer irgendwie so im Kreis. Und dann kommt ein kleiner Fix, der macht es aber nicht besser. Da sagst du, das war es nicht, kannst du mal richtig reingucken, was ist Root Cause?

Und dann macht er das wieder rückgängig und dann kommt das Nächste, aber das fixt es halt auch nicht. Und einfach auch da wieder Kontext-Window ist wahrscheinlich ein Problem gewesen jetzt bei B-Zero. Aber grundsätzlich ist das halt immer so ein Thema, wie tief kann da so eine KI wirklich dann in alle Bereiche analysieren.

Ja, das ist halt genau das Problem. Aber es ist natürlich schon cool. Ich meine, es ist halt auch ein Enabler, weil viele Sachen, die ich halt davor jetzt nicht machen konnte, weil es halt nicht mehr mein Hauptjob ist, kann ich halt trotzdem machen. In einem gewissen Umfang. Also dahingegen bin ich schon sehr froh, dass es das gibt, aber man muss es halt mit Vorsicht zu genießen.

Ja, das ist wahrscheinlich auch so der Top-Takeaway von heute, glaube ich, dass wir halt sagen, irgendwie so, es enabelt halt einen unglaublich, ganz viele Dinge mehr zu machen, vielleicht auch in der dreifachen Geschwindigkeit wie so im Clickbait-Title, ja, vor allem, wenn man sich da halt nicht auskennt, ne?

Aber Vorsicht an der einen oder anderen Stelle. Und ich habe auf jeden Fall was von neuen KI-Tools gehabt, denn mit Windsurf habe ich noch nicht gearbeitet. Ich habe, wie gesagt, sehr viel mit der GPT und jetzt auch langsam mit Claw zu tun. Aber dann werde ich mir auch Windsurf und Cursor nochmal anschauen, um da mal wieder ein bisschen up-to-date zu sein.

Ja, schau es an, weil du kannst ja die Modelle auswählen. Also mit welchem Modell du arbeiten willst, einfach ein Dropdown-Medel. Das ist ganz interessant.

Super. Dann vielen lieben Dank dir, Kevin, dass du uns von deinen Erfahrungen berichtet hast. Ich bin sehr zufrieden jetzt, dass du ja nicht sagst, dass Skills-EntwicklerInnen ersetzen können damit und dass wir keine Code-Reviews mehr brauchen und so weiter, aber dass es sich wirklich durchaus tut, die KI als Sparing-Partner zu nutzen oder einfach für Wegwerf-Code oder Prototyping oder wenn es Konzept und Design, es ist ja alles das quasi drumherum, drumrum, was um den eigentlichen Code passiert und wahrscheinlich auch zum Debuggen.

Vielleicht geht es sich schneller, aber es ist halt nett, wenn man mit irgendjemandem reden kann, anstatt alleine vor sich hin zu debuggen. Gerade wenn man remote im Homeoffice sitzt und eben niemanden hat, der mit in den Bildschirmen schaut, dann kann man zumindest irgendeinen Chat-Chall fragen. Und dann geht es nämlich auch nächste Woche schon wieder weiter mit der nächsten KI-Episode mit Gen.AI für Web-Dev-Tooling.

Und ansonsten, wenn euch unser Podcast gefällt, dann unterstützt uns doch gerne mit ein paar Sternen auf iTunes und Spotify, denn das würde uns sehr viel helfen, gefunden zu werden. Und genauso findet ihr uns auf LinkedIn, Mastodon, Blue Sky, Instagram und TikTok. Ach, YouTube. YouTube hätte ich jetzt fast vergessen. Und das ist ein ganz wichtiger Punkt, weil den Kevin, dich findet man ja auch auf YouTube.

Vielleicht kannst du mal kurz den Channel-Namen durchgeben. Wir verlinken den sowieso.

Genau, also ganz spektakulär einfach Kevin Chromik mein Name. Also so heiße ich, wenn man Kevin Chromik, es gibt auch keine anderen, es gibt glaube ich in Deutschland nur einen anderen Kevin Chromik, aber der ist auf Social Media überhaupt nicht aktiv. Das heißt, wenn man Kevin Chromik sucht, dann findet man auch nur mich. Auf allen Plattformen.

Und dein Content, den du createst, der ist auch auf Deutsch auf YouTube.

Genau, alles deutsch.

Cool.

Kann man sich geben, wenn man sich ein bisschen für so Mobile-Entwicklungen, IT-Themen so ein bisschen interessiert, dann kann man mal vorbeischauen.

Ja, ich finde das auch eh immer schön, wenn man so ein bisschen über den Tellerrand blickt und dann halt vielleicht sieht, wie es eben in anderen Software-Welten ein bisschen aussieht oder in anderen Programmiersprachen. Dann an dieser Stelle bleibt mir nur noch so sagen, vielen Dank euch beiden, vielen Dank Hans, vielen Dank Kevin, vielen lieben Dank, dass du dir die Zeit genommen hast und uns besucht hast.

Ich freue mich auf jeden Fall schon sehr auf deine neuen KI-Videos, auch über Vibe-Coding und so weiter. Mal schauen, ob du eher Pro oder eher Kontra bist.

Ja, das muss ich mir noch entscheiden.

Und dann vielen lieben Dank fürs Zuhören und bis nächste Woche. Ciao, ciao. Danke auch an dich und danke auch von mir. Ciao.

Ciao, danke.

Anmelden oder registrieren

Jetzt

0:00 / 0:00