Alte Zöpfe (Neues von der Klassenmappe 3)
Bei der Arbeit an der 3. Version der Klassenmappe habe ich eine Entscheidung lange vor mir hergeschoben: Ermögliche ich eine möglichst große Kompatibilität zur 2. Version oder trenne ich mich von „alten Zöpfen“.
Als ich das Projekt Klassenmappe vor ca. 4 Jahren begonnen habe, handelte es sich nur um ein kleines Experiment für Windows – eine App für IOS oder gar den Mac war damals nicht geplant. Ohne großen Plan habe ich mich zu diesem Zeitpunkt dafür entschieden, dass eine Klasse in jeweils einer Datei gespeichert wird. Das war am Anfang auch eine gute Lösung und erfüllte seinen Zweck.
Doch in den folgenden Jahren kamen mit IOS und MacOS neue Anforderungen hinzu: Verschlüsselung und Synchronisation sind nur zwei Beispiele, die mit der damals getroffenen Entscheidung nicht ganz problemlos funktionierten. Nur mit ein paar Kniffen konnte ich das ein oder andere einbauen … dennoch wurde die Datenstruktur mit jeder Ergänzung ein wenig fragiler.
Jüngst ärgerte mich, dass mein altes Dateisystem ein weiteres Problem hatte: wenn ein Schüler z.B. aufgrund eines Kurses in zwei Klassen ist, musste der Schülerdatensatz in jeder Klasse einzeln erstellt werden. Wenn sich die Telefonnummer änderte, musste daher jeder Datensatz manuell geändert werden. Stattdessen wollte ich aber die Schüler aus den Klassen herausziehen und als unabhängige Datenbank speichern. Die Klassen sollten dann nur noch auf die Schüler per Referenz verweisen.
An dieser Stelle trat nun die Frage auf, wie ich dies technisch realisieren könnte. Ich experimentierte, z.B. indem ich eine extra Schülerdatei und weiterhin die Klassendateien in der Datenablage speicherte. Auch wenn es einigermaßen funktionierte und die Kompatibilität mit der Klassenmappe 2 erreicht werden konnte, beruhte die Datenstruktur doch auf einem recht wackeligen und auch komplizierten Konstrukt. Also löste ich mich einmal ganz von der alten Dateistruktur und probierte eine einzige Datenbankdatei aus, in der alle Schüler getrennt von den Klassen gespeichert werden. Sofort zeigte sich, welche Erleichterungen mit dieser Entscheidung einhergingen. Die Verknüpfung mit Clouddiensten, Kennwortschutz, Sync, etc. … alles war nun deutlich einfacher zu realisieren – für mich als Programmierer und für den Benutzer.
Es gab nur ein Problem: Die Klassenmappe 3 könnte dann zwar alte Klassendateien aus der Klassenmappe 2 importieren, aber ein Sync wäre mit älteren Programmen nicht mehr möglich. Neben der Klassenmappe für IOS müsste auch die Mac- und Windows-Version als völlig neue Version 3 erscheinen.
Ich habe mir die Entscheidung daher nicht leicht gemacht, da ich einen erneuten „Cut“ eigentlich vermeiden wollte. Letztlich hat das alte Dateisystem aber so viele Nachteile und wurde mit jedem Update zunehmend fragiler, dass ich diesen Weg nicht weitergehen wollte. Die Entscheidung ist getroffen: Die Klassenmappe Version 3 wird zwar Daten aus den alten Klassenmappen importieren, diese aber nicht mehr per Sync an die alten Klassenmappe zurückgeben können. Es wird für alle Betriebssysteme eine völlig neue App (Version 3) geben. Die Kosten für ein Update auf IOS und Mac werde ich über den Trick eines App-Bundles vergünstigen, d.h. wer bereits Version 2 hat, kann günstiger umsatteln.
Damit ergeben sich für die 3. Version viele neue Möglichkeiten, die ich im Laufe der Zeit ergänzen werde. Insbesondere Lehrer weiterführender Schulen werden die Kursfunktion sicher begrüßen.
Aufgrund der ein oder anderen Schwierigkeit wird die Klassenmappe wohl nicht pünktlich zum Erscheinen von IOS 10 herauskommen. Ich vermute, dass ich Ende Oktober / Anfang November soweit sein werde.


