App Entwicklung mit Hilfe von KI

AnotherMacUser

Mitglied
Thread Starter
Registriert
01.02.2019
Beiträge
6
Reaktionspunkte
0
Hallo Leute,

Ich programmiere schon eine Weile mit Swift und wollte mal der KI eine Chance geben. Erste Versuche waren vielversprechend. Ich habe zwei Dinge probiert: zuerst mit Abacus.ai und einem 10 $ pro Monat Abo und dann mit einem ChatGPT Abo für 20 $ im Monat und der ChatGPT App auf dem Mac, welche Xcode Integration erlaubt.

Bei Variante 1 war positiv: Upload von Dateien klappte gut, schneller Response, lauffähiger Code, es gibt einen DeepAgent, der einem schon mal App Struktur und Code für eine komplette App liefert, welche aber nicht auf Anhieb lauffähig war.
Bei Variante 1 war negativ: Es wird bei der Antwort immer automatisch ein Model gewählt, welches (angeblich) am Besten zu der Anfrage passt, d.h. es wechselt ständig zwischen verschiedenen GPT Modellen, Gwen3 Coder, Claude Sonnet usw. hin und her. Eine Konfiguration des Models ist also ausgeschlossen. Hochgeladene Screenshots konnten nicht zuverlässig gelesen und ausgewertet werden.

Bei Variante 2 war positiv: Die Xcode Integration und somit die Möglichkeit, dass ChatGPT die Änderungen sofort selbständig im Code durchführt. Auf "automatisch" habe ich die Einstellung aber dann doch nicht gelassen, da das Ganze dann schnell zu unübersichtlich wurde. Das Model ließ sich zwar auch der OpenAI Website konfigurieren (Rolle, Tokens, etc), aber ich habe davon nicht viel "gespürt". Vielleicht habe ich es nur nicht richtig gemacht :)
Bei Variante 2 war negativ: ChatGPT konnte meine hochgeladenen Dateien irgendwie nie lesen. Ganze zip-Files gingen schon gar nicht. Downloads klappten trotz Google Drive Integration über den OpenAI Login auch nicht.

Was aber in beiden Fällen nicht wirklich klappte und was mich echt genervt hat war, dass:
1. Das Model den Chatverlauf und somit das Projekt nicht im Speicher behalten konnte und ich gefühlt immer wieder bei null anfing, alles zu erklären.
2. Die Models nicht wirklich in der Lage sind, logisch zu denken und vorzugehen (Beispiel: ich habe einen funktionierenden Ablauf, welcher Sensordaten lädt und anzeigt. Wir ändern etwas im Code und es werden keine Daten in der UI mehr angezeigt. Das Model will sofort alle Verbindungen nochmal prüfen und den Microcontroller checken, der die Daten sendet, obwohl absolut klar ist, dass sich daran nichts geändert hat und die logische Fehlerursache im geänderten Codeabschnitt liegen muss).
3. Das Model ist stets überambitioniert und schlägt ständig Dinge vor, die zwar generell sinnvoll scheinen, aber gerade überhaupt nicht den Prioritäten entsprechen.

Wie sind eure Erfahrungen? Welches Abo würdet ihr mir vorschlagen? Wie kann ich das Model so konfigurieren, dass es eine wirkliche Hilfe bei komplexen Progarmmieraufgaben ist? Ich weiß, dass es viele Programmierer gibt, die davon überzeugt sind, dass es besser ist, alles selbst und per Hand zu coden, aber ich möchte hier nur eine konstruktive Diskussion, wie man KI sinnvoll einbinden kann.

Gruss Martin
 
Es sind 3 Dinge die relevant sind:

Das LLM muss sehr genau erfahren was es tun soll. Die prompts müssen daher sehr exakt sein.

Änderungen in modernen Apps gehen in der Regel über viele Dateien. Chats reichen da nicht mehr, das LLM braucht Zugriff auf das ganze Projekt.

Änderungen haben auch eine zeitliche Komponente. Und auch diese Verläufe und deren Überschneidungen muss ein llm wissen.


Von daher ist das Dateiweise bearbeiten mit LLMs limitiert und produziert eben Fehler.

Ich empfehle mal Cursor als IDE zu testen, sollte auch mit Swift funktionieren:

https://cursor.com/
 
Ich hab Cursor intensiv getestet um auch eine App zu entwickeln. Vorher hatte ich ein wenig Swift Erfahrung aber nicht wirklich viel.
Mein Eindruck ist: Am Anfang geht super schnell und ist sehr beeindruckend. Aber das Ausarbeiten empfinde ich ähnlich wie du.
Die KI konzentriert sich auf völlig falsche Sachen oder man gerät in Loops. Ich habe keine Ahnung wie man da wieder rauskommt :)

Können größere Projekte überhaupt funktionieren? Das frage ich mich. Irgendwann gibt es ja so viel Code, dass "die KI" ja garnicht mehr alles überblicken bzw jedesmal alles in Tokens schicken kann, oder?
 
Unsere Erfahrungen mit KI in der Software-Entwicklung sind eher mässig. Code-Snippets für konkrete Lösungen, ok, geht. Komplexerer Probleme ... da verrennt sich die KI gerne und findet eigentlich nie die Beste Lösung. The Brain scheint da immer noch ein bissel besser zu sein.
 
Da muss ich anmerken finde ich Apples Ansatz ganz spannend KI für Korrekturen von Code zu verwenden.
 
Die KI konzentriert sich auf völlig falsche Sachen oder man gerät in Loops.
Dann läßt man die KI Dinge tun, die sich nicht tun sollte! Genau das meinte ich mit sehr exakten Prompts.

Dazu gehört auch zunächst den "Plan" Mode zu nutzen und mit KI einen Plan für den Entwurf zu erstellen ( das wird dann eine Markdown Datei im .cursor Verzeichnis) und mittels dieser Datei dannn koordiniert einzelne Etappen abzuarbeiten.

Ich würde auch nie die KI alles allein machen lassen. Da gilt das was @gishmo schrieb: ohne "The Brain" geht da nichts. Es bin noch immer ich, der die Anwendung schreibt. Ich nutze die KI dann selektiv für einzelne Aufgaben, in der Regel komplexe Refactorings, die sowohl plan- als auch überschaubar sind und ein definiertes Ende haben.

KI ist ein Werkzeug von Vielen und es sollte nicht von 0 auf 100% KI Nutzung gehen. Das kann nur schief gehen. Aber als Assistenten oder Agents macht das sehr viel Sinn.
 
Ich hab nen relativ simplen Test gemacht.
Ein simples Script in Typescript, welches ne Website abgrast und entsprechende Infos in nem Job per SMS versendet.

3 Tage Gemini - 3 Tage ChatGPT. Jeweils die Bezahlversion.

Ja, man bekommt Snippets, die teilweise funktionieren in ihren Grundzügen. Und da endet es. Es ist wie so ein Junior, der gewisse Dinge durchaus versteht und dir auch erstmal so nen inperformanten, ersten Entwurf vor die Füße wirft. Und dann sagst ihm, wie es besser geht, er entschuldigt sich und passt seinen Code an. Der dann nicht funktioniert.

Also man muss schon wissen, was man tut. Den Knecht ständig verbessern, ihm Links zu Dokumentationen geben weil felsenfest was falsches behauptet wird, und zwischendurch zig Entschuldigungen ertragen, weil er laufend daneben haut.

Also „irgendwas“ kommt schon raus. Und als OneMan Show hat man nen Kumpel um über Probleme zu Quatschen. Aber ich hab echt Angst vor dem, was da auf uns zukommt. Die ganzen Ahnungslosen, die dann mittels solcher Tools irgendwas zusammenschustern - und am Ende crasht alles, weil sich auch ChatGPT nicht ums Errorhandling geschert hat.
 
das ändert sich durchaus, wenn man eben tools wie Cursor nutzt oder Junie bei den Jetbrains IDEs @Dextera . Das Vorgehen ist dann leicht anders und der Überblick den diese Tools haben ist auch ein erschreckend Besserer. Die finden Fehler-Möglichkeiten und schlagen deren Abfangen vor, die mir beim ersten Entwurf entgangen waren. Da würde ich in der Tat schon von nützlichen Assistenten sprechen.

Die Stufe mit ich werfe einem LLM ein Skript hin und lasse es so lange Pingpong spielen bis das Skript fertig ist, ist zum einen als Verfahren nicht sinnvoll (darum auch kein gutes Ergebnis) und es fehlt eben der Überblick, denn welche Anwendung besteht schon aus nur einer Datei?
 
das ändert sich durchaus, wenn man eben tools wie Cursor nutzt oder Junie bei den Jetbrains IDEs @Dextera . Das Vorgehen ist dann leicht anders und der Überblick den diese Tools haben ist auch ein erschreckend Besserer. Die finden Fehler-Möglichkeiten und schlagen deren Abfangen vor, die mir beim ersten Entwurf entgangen waren. Da würde ich in der Tat schon von nützlichen Assistenten sprechen.

Die Stufe mit ich werfe einem LLM ein Skript hin und lasse es so lange Pingpong spielen bis das Skript fertig ist, ist zum einen als Verfahren nicht sinnvoll (darum auch kein gutes Ergebnis) und es fehlt eben der Überblick, denn welche Anwendung besteht schon aus nur einer Datei?
Mittlerweile finde ich den Claude-Agenten in Jetbrains besser als Junie. Junie (bzw. vermutlich GPT5) hat mittlerweile die Angewohnheit bei Problemen nicht exakt die Ursache zu suchen, sondern auf Basis einer ersten Vermutung irrsinnige Mengen an "failsafe" Code vorzuschlagen, der am Kern des Problems vorbeigeht.
Separation of Concerns etc. hilft auch zu vermeiden, dass der Kontext zu groß wird.
 
Dann läßt man die KI Dinge tun, die sich nicht tun sollte! Genau das meinte ich mit sehr exakten Prompts.

Dazu gehört auch zunächst den "Plan" Mode zu nutzen und mit KI einen Plan für den Entwurf zu erstellen ( das wird dann eine Markdown Datei im .cursor Verzeichnis) und mittels dieser Datei dannn koordiniert einzelne Etappen abzuarbeiten.

Ich würde auch nie die KI alles allein machen lassen. Da gilt das was @gishmo schrieb: ohne "The Brain" geht da nichts. Es bin noch immer ich, der die Anwendung schreibt. Ich nutze die KI dann selektiv für einzelne Aufgaben, in der Regel komplexe Refactorings, die sowohl plan- als auch überschaubar sind und ein definiertes Ende haben.

KI ist ein Werkzeug von Vielen und es sollte nicht von 0 auf 100% KI Nutzung gehen. Das kann nur schief gehen. Aber als Assistenten oder Agents macht das sehr viel Sinn.
Dann habe ich mich ja garnicht sooo falsch angestellt.
Habe mich vor dem programmieren lange mit der ki unterhalten und erstmal Funktionen/Namen und Strategien diskutiert und dann am ende in einer Markdown festgehalten. Genau so, habe ich mit der KI immer wieder bestimmte Ideen/Strategien aufgeschrieben und die KI gebeten, da auch immer wieder reinzuschauen. Trotzdem: Meine Erfahrung ist, ab einer Gewissen Größe der App oder auch länge der Unterhaltung beginnt man sich im Kreis zu drehen und es ensteht viel Sch**ss.


Ich programmiere seit Jahren Websites und habe durchaus etwas Ahnung davon.
Gestern wurde mir erzählt wie ein Programmierer eine grosse Plattform mit verschiedenen Nutzerrollen, Terminkalendern, VideoChat, Inventarverwaltung, Payments und vielem mehr programmiert. Das ist aus meiner Sicht kaum alleine zu schaffen sondern bräuchte ein Team das kontinuierlich daran arbeitet.
Ich frage mich, ob ein einzelner mit KI so etwas wirklich schaffen kann. Was denkt ihr? Geht das schon wenn man viel Ahnung von der Materie hat?
 
Die Stufe mit ich werfe einem LLM ein Skript hin und lasse es so lange Pingpong spielen bis das Skript fertig ist
Was ja nicht passiert ist.
Das waren Prompts - das Skript sollte das Ergebnis werden.

Und 1 Skript - bei dem die Teile von hinten bis vorn gescheitert sind - erschien mir wesentlich simpler als ein komplexes Programm mit zig Klassen & Co.

PingPong ist halt nötig, wenn man alles zig mal Ausbessern muss.
 
Zurück
Oben Unten