{"id":2169,"date":"2016-08-26T17:13:05","date_gmt":"2016-08-26T15:13:05","guid":{"rendered":"http:\/\/www.klassenmappe.de\/?p=2169"},"modified":"2018-03-30T22:17:25","modified_gmt":"2018-03-30T20:17:25","slug":"alte-zoepfe-neues-von-der-klassenmappe-3","status":"publish","type":"post","link":"https:\/\/www.klassenmappe.de\/?p=2169","title":{"rendered":"Alte Z\u00f6pfe (Neues von der Klassenmappe 3)"},"content":{"rendered":"<p>Bei der Arbeit an der 3. Version der Klassenmappe habe ich eine Entscheidung lange vor mir hergeschoben: Erm\u00f6gliche ich eine m\u00f6glichst gro\u00dfe Kompatibilit\u00e4t zur 2. Version oder trenne ich mich von \u201ealten Z\u00f6pfen\u201c.<\/p>\n<p>Als ich das Projekt Klassenmappe vor ca. 4 Jahren begonnen habe, handelte es sich nur um ein kleines Experiment f\u00fcr Windows &#8211; eine App f\u00fcr IOS oder gar den Mac war damals nicht geplant. Ohne gro\u00dfen Plan habe ich mich zu diesem Zeitpunkt daf\u00fcr entschieden, dass eine Klasse in jeweils einer Datei gespeichert wird. Das war am Anfang auch eine gute L\u00f6sung und erf\u00fcllte seinen Zweck.<\/p>\n<p>Doch in den folgenden Jahren kamen mit IOS und MacOS neue Anforderungen hinzu: Verschl\u00fcsselung 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 \u2026 dennoch wurde die Datenstruktur mit jeder Erg\u00e4nzung ein wenig fragiler.<\/p>\n<p>J\u00fcngst \u00e4rgerte mich, dass mein altes Dateisystem ein weiteres Problem hatte: wenn ein Sch\u00fcler z.B. aufgrund eines Kurses in zwei Klassen ist, musste der Sch\u00fclerdatensatz in jeder Klasse einzeln erstellt werden. Wenn sich die Telefonnummer \u00e4nderte, musste daher jeder Datensatz manuell ge\u00e4ndert werden. Stattdessen wollte ich aber die Sch\u00fcler aus den Klassen herausziehen und als unabh\u00e4ngige Datenbank speichern. Die Klassen sollten dann nur noch auf die Sch\u00fcler per Referenz verweisen.<\/p>\n<p>An dieser Stelle trat nun die Frage auf, wie ich dies technisch realisieren k\u00f6nnte. Ich experimentierte, z.B. indem ich eine extra Sch\u00fclerdatei und weiterhin die Klassendateien in der Datenablage speicherte. Auch wenn es einigerma\u00dfen funktionierte und die Kompatibilit\u00e4t mit der Klassenmappe 2 erreicht werden konnte, beruhte die Datenstruktur doch auf einem recht wackeligen und auch komplizierten Konstrukt. Also l\u00f6ste ich mich einmal ganz von der alten Dateistruktur und probierte eine einzige Datenbankdatei aus, in der alle Sch\u00fcler getrennt von den Klassen gespeichert werden. Sofort zeigte sich, welche Erleichterungen mit dieser Entscheidung einhergingen. Die Verkn\u00fcpfung mit Clouddiensten, Kennwortschutz, Sync, etc. \u2026 alles war nun deutlich einfacher zu realisieren &#8211; f\u00fcr mich als Programmierer und f\u00fcr den Benutzer.<\/p>\n<p>Es gab nur ein Problem: Die Klassenmappe 3 k\u00f6nnte dann zwar alte Klassendateien aus der Klassenmappe 2 importieren, aber ein Sync w\u00e4re mit \u00e4lteren Programmen nicht mehr m\u00f6glich. Neben der Klassenmappe f\u00fcr IOS m\u00fcsste auch die Mac- und Windows-Version als v\u00f6llig neue Version 3 erscheinen.<\/p>\n<p>Ich habe mir die Entscheidung daher nicht leicht gemacht, da ich einen erneuten \u201eCut\u201c 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\u00fcckgeben k\u00f6nnen. Es wird f\u00fcr alle Betriebssysteme eine v\u00f6llig neue App (Version 3) geben. Die Kosten f\u00fcr ein Update auf IOS und Mac werde ich \u00fcber den Trick eines App-Bundles verg\u00fcnstigen, d.h. wer bereits Version 2 hat, kann g\u00fcnstiger umsatteln.<\/p>\n<p>Damit ergeben sich f\u00fcr die 3. Version viele neue M\u00f6glichkeiten, die ich im Laufe der Zeit erg\u00e4nzen werde. Insbesondere Lehrer weiterf\u00fchrender Schulen werden die Kursfunktion sicher begr\u00fc\u00dfen.<\/p>\n<p>Aufgrund der ein oder anderen Schwierigkeit wird die Klassenmappe wohl nicht p\u00fcnktlich zum Erscheinen von IOS 10 herauskommen. Ich vermute, dass ich Ende Oktober \/ Anfang November soweit sein werde.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bei der Arbeit an der 3. Version der Klassenmappe habe ich eine Entscheidung lange vor mir hergeschoben: Erm\u00f6gliche ich eine m\u00f6glichst gro\u00dfe Kompatibilit\u00e4t zur 2. Version oder trenne ich mich von \u201ealten Z\u00f6pfen\u201c. Als ich das Projekt Klassenmappe vor ca. 4 Jahren begonnen habe, handelte es sich nur um ein&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/www.klassenmappe.de\/?p=2169\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,8],"tags":[],"class_list":["post-2169","post","type-post","status-publish","format-standard","hentry","category-klassenmappe","category-mobile-klassenmappe"],"_links":{"self":[{"href":"https:\/\/www.klassenmappe.de\/index.php?rest_route=\/wp\/v2\/posts\/2169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.klassenmappe.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.klassenmappe.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.klassenmappe.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.klassenmappe.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2169"}],"version-history":[{"count":1,"href":"https:\/\/www.klassenmappe.de\/index.php?rest_route=\/wp\/v2\/posts\/2169\/revisions"}],"predecessor-version":[{"id":2170,"href":"https:\/\/www.klassenmappe.de\/index.php?rest_route=\/wp\/v2\/posts\/2169\/revisions\/2170"}],"wp:attachment":[{"href":"https:\/\/www.klassenmappe.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.klassenmappe.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.klassenmappe.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}