Neue Features, Veränderungen und Updates

Wenn man bei einer Applikation an einen Punkt gelangt ist, an dem eine grosse Veränderung her muss, um neue Funktionen bieten zu können, ist dies immer ein großer Schritt.
Noch viel größer wird er, wenn man dabei Änderungen an der Datenspeicherung vornehmen muss.
Meist schreibt man dann einen Importer, der prüft, ob die neuste Struktur gegeben ist und der sonst die alten Daten einfügt.
Wenn nun aber schon mehrere dieser Änderungen vorgenommen wurden, wird es um einiges komplizierter… Soll man für jede der vorherigen Versionen einen eigenen Importer schreiben, oder ganz dreist verlangen, dass der Benutzer zunächst auf Version XY updaten muss?
Und was, wenn sich auf einmal die Hintergrundbedingungen ändern?

Wer schon einmal etwas in PHP3 geschrieben hat, das Ganze optimiert hat, als PHP4 kam und nun mit einer erneuten Aktualisierung auf PHP5 konfrontiert wird, weiss, wovon ich rede.

Bei All My Documents stehe ich im Moment vor dem Problem, dass die Änderungen, die ich mir vorstelle, am besten mit Core Data umgesetzt werden können. An sich kein Problem, da die App ja ohnehin auf 10.4 ausgelegt ist. Aber da das Projekt sich ja immer noch (das wird es wohl auch noch einige Zeit) in der Entwicklung befindet, habe ich in der Version 1.15 das Speicherungsformat geändert, um eine Suche über alle Dokumente zu ermöglichen.
Und wenn ich nun schon einmal eine derartige Überarbeitung mache, möchte ich natürlich auch am liebsten direkt ein Universal Binary anbieten können und AppleScript-Support einbauen.
Insgesamt sind es so viele Änderungen, dass es sich fast schon lohnen würde, das Projekt (fast) von vorn aufzubauen – wenn da nicht die alten Daten wären…
Fast der komplette Quellcode wäre hinfällig, wenn ich auf Core Data umsteigen würde. Dafür müsste ich aber insgesamt nur geschätzte 50% an Code mit diesem Speicherformat aufbringen, um das Ganze lauffähig zu machen. Die Import-Funktion oder -Klasse würden dabei allerdings schon einiges einnehmen.
Soll ich wirklich Importer für die früheren Versionen schreiben, oder einen Vermerk, dass erst ein Update gemacht werden muss? Die alten Daten einfach zu übergehen ist auf jeden Fall nicht der Weg, den ich bevorzuge.

Und schließlich noch die Frage an mich selbst, warum ich das eigentlich tue – schließlich habe ich die App doch eigentlich für mich selbst geschrieben und verdiene nicht daran… Aber wenn einen pro Tag mehrere Mails erwarten, die einem sagen, dass der jeweilige Benutzer das Programm gerne nutzt, ist es natürlich durchaus eine Motivation, es weiter zu entwickeln (auch, wenn man diese Entwicklungen selbst nicht ins Auge gefasst hat ;) ).


Ähnliche Artikel

Dein Kommentar:

Sämtliche Html-Tags werden gelöscht, der Kommentar kann mit Textile formatiert werden.
Vor dem Absenden müsst ihr euch einmal die Vorschau ansehen.