Bestehende App weiterentwickeln. Neue Features in gewachsenem Code.
Deine App ist im Store, und jedes neue Feature dauert länger als das letzte? Ich baue mit Deinem Team im vorhandenen Code weiter und bringe die App dabei auf den aktuellen Stand.
Vertrauen von Kunden wie
Deine App soll mehr können.
Dein Team hat die App über Jahre gebaut: frühe Entscheidungen, schnelle Lösungen vor Terminen, Pakete, die inzwischen älter sind. Das gilt für Branchensoftware genauso wie für Apps für Endkunden. Neu anfangen musst Du deshalb selten: Das nächste Feature passt meist in den Code, der da ist.
-
Neue Features für bestehende Nutzer.
Deine Nutzer arbeiten jeden Tag mit der App. Ein Update mit neuen Features darf nichts kaputt machen, was heute funktioniert.
-
Code, der mitgewachsen ist.
Mit jedem Release kam etwas dazu, manches davon von Entwicklern, die heute nicht mehr im Team sind. An manchen Stellen braucht das nächste Feature deshalb einen Umbau.
-
Neue Versionen und Vorgaben.
Frameworks und Betriebssysteme erscheinen in neuen Versionen, und Apple und Google ändern ihre Vorgaben. Ziehst Du nicht nach, kannst Du irgendwann keine Updates mehr veröffentlichen.
Einarbeitung vor der ersten Änderung.
Bevor ich etwas ändere, lese ich mich ein: Aufbau der App, Herkunft der Daten, der heutige Release-Weg. Dein Team hilft mir dabei am meisten. Danach übernehme ich das erste Feature und ordne die ArchitekturArchitekturWie die Software geschnitten ist. Sie entscheidet, ob das nächste Feature leicht oder teuer wird.Mehr im Glossar → nur so weit, wie das Feature es verlangt.
-
Tests vor dem Umbau.
Bevor ich Code anfasse, halte ich mit Tests fest, was heute funktioniert.
-
Kleine Schritte.
Jede Änderung geht durch Dein ReviewCode ReviewVier-Augen-Prinzip, bevor Code zusammengeführt wird. Fehler fallen früh auf, und das Wissen verteilt sich im Team.Mehr im Glossar → und Deine PipelineCI/CD und PipelineEin automatischer Ablauf, der die App baut, testet und in die Stores lädt. Jeder im Team kann ihn starten.Mehr im Glossar →.
-
Festgehaltene Entscheidungen.
Warum etwas so gebaut ist, schreibe ich in die Dokumentation Deines Teams.
Typische Aufgaben bei bestehenden Apps.
Seit 2020 arbeite ich in Kundenteams an bestehenden Apps. FlutterFlutterEin Framework von Google, mit dem aus einer Codebasis Apps für iOS und Android und auch Weboberflächen entstehen. Das spart ein zweites Team und hält beide Plattformen auf demselben Stand.Mehr im Glossar → steht im Mittelpunkt, native Apps in SwiftSwiftApples Programmiersprache für Apps auf iPhone, iPad und Apple Watch. Sie kommt zum Einsatz, wenn eine App nativ entsteht oder eine Flutter-App Funktionen braucht, die nur iOS bietet.Mehr im Glossar → und KotlinKotlinDie Programmiersprache für native Android-Apps, auch auf dem Server einsetzbar. Sie kommt für Android-Funktionen und für Backend-Dienste zum Einsatz.Mehr im Glossar → übernehme ich genauso.
- Flutter
- Dart
- Swift
- Kotlin
- Android
- iOS
- Firebase
- Supabase
- React
- Node.js
- Docker
- Git
- Codemagic
- GitHub Actions
-
Neue Features
Ich baue neue Screens und Abläufe, die sich in das einfügen, was schon da ist.
-
Versionswechsel
Framework, Sprache und Pakete bringe ich Schritt für Schritt auf den aktuellen Stand, zum Beispiel Flutter und Dart.
Mehr zum Thema -
Features auslagern
Ich lagere große Bereiche in eigene Packages aus, bis hin zum MonorepoMonorepoMehrere Apps in einem gemeinsamen Projekt, damit gemeinsamer Code nur einmal existiert. Sinnvoll, sobald aus einer App mehrere werden.Mehr im Glossar →. Dein Team ändert einen Bereich, ohne den Rest anzufassen.
Mehr zum Thema -
Tests nachziehen
Die Abläufe, die beim Release funktionieren müssen, sichere ich mit Unit-TestsUnit-TestEin automatischer Test für ein kleines Stück Logik, etwa eine Berechnung. Er läuft in Sekunden und schlägt an, sobald eine Änderung etwas kaputt macht.Mehr im Glossar → und Widget-TestsWidget-TestEin automatischer Test für einen Teil der Oberfläche in Flutter. Er prüft, ob ein Bildschirm das Richtige anzeigt und auf Eingaben richtig reagiert.Mehr im Glossar → ab.
-
Release-Pipeline
Ich richte Build, Tests und Upload so ein, dass Dein Team selbst ausliefert.
-
Updates über die Stores
Ich setze neue Vorgaben von Apple und Google um und begleite SignierungSignierungDer digitale Nachweis, dass eine App wirklich vom Herausgeber stammt und unverändert ist. Ohne gültige Zertifikate und Schlüssel nimmt kein Store ein Update an.Mehr im Glossar → und Freigabe.
Stimmen aus der Zusammenarbeit.
„Julian hat mit seiner außergewöhnlichen Expertise eine komplexe Coaching-App für COI entwickelt, die unsere Erwartungen bei weitem übertroffen hat. … Die Zusammenarbeit mit Julian war geprägt von seiner bemerkenswerten Schnelligkeit, Termintreue und der konsequenten Lieferung von höchster Qualität.“
Dirk Kröger Gründer, COI „Julian arbeitet absolut zuverlässig und professionell! … Ich schätze besonders, dass er während des gesamten Entwicklungsprozesses mitdenkt. Julian ist uneingeschränkt zu empfehlen!“
Raffael Filusch Location-Based Game App, Applorer Der Einstieg in Dein Projekt.
Ich arbeite in Deinem RepositoryRepositoryDer Ort, an dem der gesamte Quellcode eines Projekts mit seiner Geschichte liegt, meist bei GitHub oder GitLab. Wer Zugang hat, sieht jeden Stand und jede Änderung.Mehr im Glossar →, mit den Werkzeugen und Abläufen Deines Teams.
- 1
Gespräch
Dreißig Minuten per Video. Du erzählst, was Deine App heute kann und was als Nächstes dazukommen soll. Ich sage Dir, ob und wie ich helfen kann.
- 2
Einstiegsphase
Zum Festpreis, mit festem Ergebnis: das Feature, das als Nächstes ansteht. Dabei lerne ich, wie Releases in Deiner App heute laufen.
- 3
Im Sprint
Danach arbeite ich in Deinem SprintSprintEin fester Arbeitszeitraum von meist zwei Wochen. Das Team setzt sich ein Ziel und zeigt am Ende ein Ergebnis vor. Danach plant es, was als Nächstes kommt.Mehr im Glossar → weiter, Update für Update. Jede Version geht als Testversion an Dein Team, bevor sie in den Store kommt.
Wie ich über gewachsene Apps denke.
Flutter-Migration Schritt für Schritt
Wie eine App auf eine neue Flutter-Version kommt, ohne dass der Betrieb stockt.
Weiterlesen ArchitekturGroße Features auslagern
Wie große Features in eigene Packages wandern, damit die App wartbar bleibt.
Weiterlesen AuslieferungCI/CD für Flutter-Apps
Bitbucket Pipelines oder GitHub Actions, und worauf es bei der Wahl ankommt.
WeiterlesenFragen zur Weiterentwicklung Deiner App.
Für wen entwickelst Du bestehende Apps weiter?
Für Teams, deren App schon im Store ist, ob Branchensoftware oder App für Endkunden. Ich bin Julian Giesen, Senior Software Engineer aus Dinslaken, und entwickle sie mit Deinem Team weiter, meist mit Flutter.
Übernimmst Du auch Apps mit einer alten Flutter-Version?
Ja. Ich bringe Flutter, Dart und die Pakete Schritt für Schritt auf den aktuellen Stand. Vorher halte ich mit Tests fest, was funktioniert. Jede Zwischenstufe geht an Dein Team, bevor sie in den Store kommt.
Müssen wir die App vorher aufräumen oder neu schreiben?
Nein. Neue Features kommen in den Code, der schon da ist. Umbauten mache ich dort, wo das nächste Feature sie braucht, in kleinen Schritten durch Dein Review.
Was merken unsere Nutzer davon?
Deine Nutzer sollen nur die neuen Features merken. Ich sichere Änderungen mit Tests ab. Dein Team prüft sie als Testversion, bevor sie in den Store kommen.
Entwickelst Du auch native Apps in Swift oder Kotlin weiter?
Ja. Flutter ist mein Schwerpunkt, bestehende native Apps in Swift und Kotlin entwickle ich genauso weiter. Signierung, Freigabe und die aktuellen Vorgaben von Apple und Google gehören dazu.
Reden wir darüber, was Deine App als Nächstes können soll.
Erzähl mir in dreißig Minuten, welches Feature als Nächstes ansteht. Ich sage Dir, ob und wie ich mitarbeiten kann.
- Per Video, ohne Vorbereitung
- Antwort spätestens am nächsten Werktag