Tankstellen-Sparfuchs für Android und dessen Entwicklung

Präsentation 3 1

Hallo, wir sind Amadeus, Max und Simon, drei Studenten aus dem Münchner Landkreis. Wir haben heute das Vergnügen euch spannende Einblicke in die Entwicklung unserer App – Tankstellen-Sparfuchs – zu zeigen.

Hintergrundinfos

Erst seit kurzer Zeit ist es in Deutschland möglich, alle Tankstellenpreise in Echtzeit, also top aktuell, abzufragen um somit endlich den bis ins Absurde wachsenden Kraftstoffpreisen entgegenzuarbeiten. Denn jetzt kann jeder mit unserer App die billigste Tankstelle in seiner Umgebung finden und somit ganz einfach viel Geld sparen. Eine solche Software zu entwickeln ist mit großen Hürden und vor allem Arbeit verbunden Aber wir haben eine Menge Spaß dabei zu sehen, wie unser einstmals kleines Projekt immer mehr wächst und mittlerweile bei den Großen mitspielen kann.

Was kann die App?

Grundsätzlich lädt die App aufgrund deines Standortes die Tankstellen inkl. Preisen und Zusatzinformationen von unseren Servern und bietet dir eine schöne Übersicht über die Tankmöglichkeiten in deiner Nähe. Die Daten beziehen wir als offizieller Partner in Echtzeit vom Bundeskartellamt. Diese bekommen ihre Daten von den Tankstellen direkt, welche seit dem 31. August 2013 gesetzlich dazu verpflichtet sind, sämtliche Preisänderungen unverzüglich weiterzugeben.

Des Weiteren gibt es eine Manuelle Suche, sowie eine Favoritenfunktion.

Alleinstellungsmerkmal

Unsere neueste Funktion – ein Alleinstellungsmerkmal! – ist LSD (klingt genauso cool, wie es tatsächlich ist). Wir dachten uns, dass den Nutzer ja eigentlich nicht mal interessiert, was die Billigste Tankstelle ist, sondern vielmehr, was die lohnenswerteste. Dem widmet sich unsere „Lohnt Sich Das“-Funktion, indem sie eine Sortierung vornimmt, an welcher Tankstelle am meisten gespart werden kann. Um bessere Ergebnisse erzielen zu können sollten hierbei in den Einstellungen Angaben über Verbrauch und Tankvolumen gemacht werden.

Für die Zukunft steht noch sehr viel auf der ToDo-Liste, angefangen von großen, aufwändigen und komplizierten Features, hin zu kleinen Verbesserungen, bei denen man sich zunächst überlegen muss, ob das wirklich der Großteil der Nutzer wünscht, oder nur eine Minderheit. Ein jeder weiß ja – ein solches Projekt ist nie „fertig“, es gibt immer was zu verbessern oder erweitern.

Präsentation 1 1

Und warum ist unsere App besser als die anderen?

Schnell und intuitiv. Das Grundkonzept, das unsere App seit der ersten Codezeile prägt ist, dass sie schnell und intuitiv sein soll. Es gibt standardmäßig keine komplizierten Filter und Einstellungen oder überfüllte und unübersichtliche Ansichten – alles Wichtige findet man auf einem Blick.

Wir nutzen aktuelle Technik. Nein, hier wird auch nicht mit der Android Version 2.3 compiled (wie es gewisse andere Konkurrenten tun…).

Design ist wichtig. So orientieren wir unsere Gestaltung an den aktuellsten Google Design Guidelines.

Wir sind seriös. Im Sinne von, unsere App hat nur genau die Berechtigungen, die zwingend notwendig sind. Wir sammeln und speichern auch keine Nutzerdaten – was wollen wir denn auch damit? 😉

Hinter den Kulissen

Hier möchten wir nun einen kleinen Einblick in die Entwicklung bieten: Wie kamen wir auf die Idee, was lief gut, womit hatten wir zu kämpfen, eingesetzte Techniken, aktuelle Probleme etc. (bzw. gibt es eigentlich keine Probleme – nur Herausforderungen) 😉

Die Idee

Wie vermutlich viele gute Ideen, ist auch diese bei einem guten Kaffee in einem kleinen italienischen Restaurant entstanden. An einem verregneten Samstagnachmittag saßen wir zusammen und diskutierten über dieses und jenes, als auf einmal ein Zeitungsartikel über die bald bevorstehende Spritpreismeldepflicht der Tankstellen zur Sprache kam. Als Studenten, die eh die meistens Zeit keine Geld haben, freuten wir uns natürlich über die Möglichkeit, bald wenigstens ein paar Euro sparen zu können. Kurz darauf machten wir Witze darüber, selbst in das Sprittapp Geschäft einzusteigen, aber je länger wir darüber redeten, desto sinnvoller erschien uns die Idee, eine eigene App zu entwickeln.

Bei der Arbeit 1

Die Idee war geboren, den Namen („Tankstellen Sparfuchs“) wählten wir sehr spartiatisch: Er sollte „Tankstelle“ enthalten, wirklich ein Name sein (und nicht „Tanken App“), und am besten auch noch Preis, Sparen oder ähnliches beinhalten. „Sparfuchs“ eignet sich natürlich auch gleich für eine bildliche Interpretation. Daraufhin folgten Tage (und vor allem Nächte), Wochen, mittlerweile viele Monate der Planung und extensiver Programmierarbeit.

Wir hatten zwar alle Erfahrungen in der App Entwicklung, jedoch war keiner von uns je mit einem so großen Projekt konfrontiert worden.

Die Entwicklung

Was dem Nutzer hierbei oft verborgen bleibt, sind die vielen Probleme und Herausforderungen, die hinter jeder noch so kleinen Änderung stecken. Genau deswegen dachten wir uns, wäre ein solcher Artikel sehr interessant für euch!

Die ersten Probleme traten schon auf, bevor wir überhaupt begonnen hatten, zu Arbeiten. Wir erhofften uns, gleichzeitig mit allen anderen „Verbraucherinformationsdiensten“ in das Geschäft einsteigen zu können, aber leider wurden nur die Großen Anbieter (Telekom, ADAC, mehr-tanken.de, clever-tanken.de) von der Markttransparenzstelle für Kraftstoffe (MTS-K)  in die sog. „Betaphase“ aufgenommen, und konnten damit schon über 2 Monate im Voraus in den Markt einsteigen, bzw. früher mit der Entwicklung beginnen. Unabhängig von dieser Beta-Phase war es allerdings auch eine unglaubliche Qual, überhaupt mit der MTS-K zu kommunizieren. Auf Emails wurde nicht reagiert, d.h. Briefe hin-und-herschicken. Da hatte man dann Chancen auf eine Antwort innerhalb der nächsten 4 Wochen.

Bei der Arbeit 2 1

Nachdem wir dann letztendlich wesentlich später Zugriff auf die Live-Daten erhielten, fiel es sehr schwer in den schon fast gesättigten Markt einzudringen und auch der Pressehype um das neue Thema Tankstellenmeldepflicht war schon Großteils vorüber gegangen. Dennoch wollten wir das Projekt nicht aufgeben und verließen uns darauf, über Intuitivität, modernes Design und eine einfach zuverlässige App unser Defizit aufholen zu können. Jetzt ist unser Tankstellen Sparfuchs bereits seit fast 1,5 Monaten online und unsere Downloadzahlen und gerade die Bewertungen bestätigen uns darin, dass wir unserem Projekt treu geblieben sind und an unsere Fähigkeiten geglaubt haben.

In allen relevanten Suchanfragen, wie z.B. „Tanken app“ oder auch nur „tanken“ werden wir im Play Store nun unter den Top 5 gelistet, teilweise sogar vor der Telekom oder dem ADAC.

Jetzt werden wir mal bisschen technischer:

Unsere Infrastruktur sieht so aus, dass wir 3 Server haben welche alle Daten vom Kartellamt abfragen. Die Android App wiederum stellt dann eine Anfrage an einen dieser drei Server und bekommt „sinnvoll“ aufbereitete Daten zurück.

Unsere Server fragen die „variablen Daten“ (sprich primär Preise) im 5 Minutentakt von den Servern des Kartellamts ab, verarbeiten, sortieren und speichern diese. Dies ist also ein PULL Verfahren. Kommt eine Anfrage von der App, gibt unser Server diese gespeicherten und aufbereiteten Daten zurück (und muss nicht erst erneut den Kartellamt Server anfragen), weshalb unsere App mit einer Antwortzeit von <2 Sekunden (Favoriten sogar <1s) ziemlich schnell ist.

Diese 5-minütliche Abfrage dauert jeweils ca. eine Minute (man denke daran, dass 14.000 Tankstellen abgefragt und verarbeitet werden). Damit während dieser Zeit auch weiterhin Anfragen aus der App möglich sind, haben wir von all unseren Datenbanken 2 Versionen. Die eine enthält dann immer Daten, die an die App rausgegeben werden und in der anderen können die Server die Aktualisierungen vornehmen. Dies ist notwendig damit es zu keinen Konflikten zwischen den Schreib- und Lesezugriffen kommt. Ist die Abfrage beendet, wird ein Flag (also ein Hinweis) gesetzt, welche der Datenbanken für die Antwort an die App hergenommen wird, sprich welche die aktuellere Version ist. Ca. 4 Minuten später wiederholt sich das Ganze, nur mit der jeweils anderen Datenbank Version.

Ergänzend zu diesen „variablen Daten“ fragen die Server einmal in der Woche (nachts um 4:00), die „Grunddaten“ ab. Diese beinhalten dann Informationen, die sich normalerweise nicht regelmäßig ändern, wie zB. Koordinaten, Adressen, Name der Tankstelle, Öffnungszeiten, etc. Dieser Vorgang dauert sogar an die 10 Minuten.

So viel zur aktuellen Situation (unsere Server pullen von den Kartellamt Servern) – jetzt eine kleine Anekdote, wie das im Februar aussah: Die MTS-K hatte sich nämlich ursprünglich kein PULL-Verfahren vorgestellt, sondern wollte allen Ernstes die Server aller Verbraucherinformationsdiensten im Minutentakt mit 14.000 Datensätzen zu-spammen (PUSH Verfahren). Warum will man sowas? Ich weiß es nicht… Fakt ist jedoch, dass da unsere Server wohl nicht lange mitgemacht hätten, sobald parallel auch noch ein paar Anfragen von den Apps kommen.

Übrigens: Aktuell haben wir nach ca. zwei Monaten Probebetrieb (und ohne größere Marketingarbeiten) knapp 25.000 aktive Installationen und oft bis zu 150 parallele Anfragen an unsere Server.

So viel zu unserem Server, nachfolgend ein paar Hintergrundinfos über unsere Android App.

In unserer App verfolgen wir die Idee, dass wir das User Interface so intuitiv wie möglichst zu gestalten, und eine schnelle Benutzung der App zu gewährleisten. Deshalb verzichten wir auf die unnötige Eingabe einer Vielzahl an Filtern, die auch noch die Ansichten zumüllen, sondern man öffnet unsere App und findet gleich alles vor, was einen interessiert. Wir entwickeln zurzeit in Eclipse, auch wenn wir Android Studio (oder grundsätzlich auch IntelliJ (welches das Grundgerüst von Android Studio darstellt)) gegenüber Eclipse bevorzugen. Jedoch bringt das Build System Gradle in Studio seine eigenen Problemchen mit, welche gerade bei Updates kombiniert damit, dass wir zu dritt auf das Projekt zugreifen wollen, etwas kompliziert ist und unnütze Konfigurerei und Beheben von Dependencies fordert.

Echte technische Probleme und Hürden gab es eigentlich nicht, und wenn dann haben wir sie uns selbst durch chaotisches Verhalten und eine unübersichtliche Struktur etc. eingebrückt. Btw, Refactoring ist auch eine häufige Arbeit, die nur wenig Spaß macht. Sprich die Hierarchie und Struktur des Programmes anpassen und überarbeiten. Vielleicht wäre es mit einer besseren Planung nicht in diesem Maße ausgefallen, aber hey „Planung ersetzt Zufall [auch nur] durch Irrtum“.

Aktuell geht es uns allerdings so, dass wir mehr Zeit mit Bug Fixes verbringen als mit der Entwicklung unserer neuen Funktionen. Dies liegt unter anderem an dem Android-Ökosystem, das mit vielen Geräten mit unterschiedlichen Android-Versionen, Bildschirmauflösungen und sonstigen Eigenheiten daherkommt, was es uns Entwicklern etwas schwieriger macht hier das gleiche Erlebnis auf allen Geräten zu gewährleisten. Aber unsere App ist noch jung – bald sollten die meisten dieser Kompatibilitätsprobleme hoffentlich gelöst sein, dann fällt die nicht ganz so unterhaltsame Arbeit der Fehlersuche wohl geringer aus.

Unsere beiden Projekte (Server und Android App) sind jetzt doch schon recht umfangreich geworden, da fragt man sich natürlich, wie man es managed, da mit mehreren Leuten gleichzeitig dran zu arbeiten.

Hier kommen sog. Version Control Systems zum Einsatz, wobei wir auf git setzen, welches wohl neben svn das bekannteste ist (und gerade in jungen Projekten scheinbar SVN immer mehr vertreibt). Gleichzeitig nutzen wir die Platform GitHub  zum hosten unserer Dateien, sowie den hauseigenen Issue-Tracker um den Überblick über geplante Funktionen, Bugs und Diskussionen nicht zu verlieren.

Dies war jetzt ein kleiner Einschnitt in unsere Tätigkeiten, schön, wenn ihr bis hierher gelesen habt und der Artikel euch gefallen hat!

Falls ihr Fragen oder Feedback habt, schreibt es einfach in die Kommentare oder wendet euch auch gerne direkt per Mail an uns. Weitere Infos findet ihr auch auf unserer Website: tankstellen-sparfuchs.de

Gerne könnt ihr uns auch auf Facebook folgen – dort fragen wir regelmäßig nach euren Vorlieben, sodass wir auch wissen, worauf wir bei der Entwicklung Wert legen müssen. Aktuelle News erscheinen ebenfalls auf dieser Seite:

Präsentation 2 1

Produktempfehlung

Tarifvergleich

Hinterlasse deine Meinung