Ich entwickle auch für mehrere Plattformen, ohne Android. Ich finde, Plattformbesonderheiten kann man recht gut verstecken. Ein Stapel IFDEFs ist nicht vermeidbar, dazu getrennte Methoden, die abhängig von der Umgebung verwendet werden sollen. Alles normal. Wenn nun eine Änderung erfolgt, die nicht spezifisch für eine Plattform ist, muss die in alle Zweige eingebaut werden, also muss doch gemerged werden. Du könntest jetzt von Deinem Master immer wieder in die jeweiligen Besonderheiten mergen, oder eben doch einen Master mit allen Plattformen haben, von dem lediglich aktuelle Entwicklungs- und Testzweige abgehen. Der Vorteil Deines Ansatzes ist die klare Trennung der Plattformen im Repository, erkauft mit unter Umständen abweichenden Implementierungs- und Featureständen und Redundanzen. Meine Variante erledigt die Trennung im Code, was ihn ab einer bestimmten Detailebene unübersichtlich macht.
Und ich entwickle nur für eine
IDE Version... Fehler, die in Kompilaten auftreten, die mit einer alten Version gemacht wurden, werden durch ein Update bereinigt.
Sherlock