Quizduell - Es geht noch immer?!
Zweieinhalb Jahre ist es her, dass auf diesem Blog ein Beitrag über Quizduell verfasst wurde. Damals, wie auch heute, ging es um das farbliche hervorheben der richtigen Antwort bevor man auf eine Antwort drückte. Der Beitrag ist auch der mit den meisten Kommentaren auf dem Blog! Es wurde über die SSL Zertifikate, das Signieren der App und sogar über fertige Bot-Implementationen und APIs diskutiert. Mehr über Zufall fand die aktuelle Quizduell-App wieder ihren Weg auf mein Handy. Während dem Spielen packte mich wieder die Lust, der App unter die Haube zu schauen. Nach ein paar Probleme beim Unpacken mit dem apktool stand ich wieder vor vielen Klassen. Das erste was auffiel: die Obfuscation war geändert worden, es waren garkeine Klassennamen mehr auszumachen. Und auch der Fragen-Klasse fehlte die Methode zum setzen der richtigen Antwort-Attribute, die wiederrum direkt in der UI angezeigt werden. Stattdessen gab es zwei Funktionen “setWrong()” und “setCorrect()”, die im Prinzip das gleiche machten. Nur wie und wo aufrufen? Die Lösung: Über einen Smali-Patch wird nach erstellen der Darstellung per Iterator alle Fragen durchlaufen und die intere Flag vergleichen. Je nachdem wie der Wert dieses Enums war, wurden dann die setWrong/setCorrect Methoden aufgerufen, die praktischerweise direkt die Farbe in der UI ändert. Zwar ein bisschen anderer Ansatz, aber dennoch das selbe Prinzip. Und auch nur 10 Zeilen zusammenkopierter Code.
Weitere technische Infos gibt es in diesem Beitrag auch garnicht. Er er ist mehr Nachruf an den alten Beitrag gemeint. Und vielleicht als Erinnerung an FEO Media dass man die richtige Antwort der Frage besser auf einem Server hinterlegen sollte
Die “Sicherheit” bei Quizduell geht vermutlich aufgrund der Benutzerfreundlichkeit verloren. Wenn ein Nutzer gerade schlechtes oder kein Internet hat und deswegen die Zeit abläuft, wäre das sehr ärgerlich und bei einem Smartphone Game kommt das nicht selten vor.
Mir gefällt dein Ansatz die richtige Antwort zu markieren auf jeden Fall sehr gut, keep it up!
Da geb ich Dir natürlich Recht, es ist für den User viel angenehmer instant zu sehen ob die Antwort richtig ist. Mein Ansatz wäre ehr, die richtige Antwort “einzuloggen” und dabei zu speichern ob die Antwortzeit noch nicht angelaufen war. Das kann dann auf einen Server synchronisiert werden (wenn wieder Internet vorhanden ist)der wiederrum zurückgibt: alles im Rahmen, Antwort richtig.
Danke!