Seite 1 von 1

Terme üben mit einer Android-Applikation

Verfasst: Mittwoch 8. April 2020, 16:33
von lenaslnr
Ich möchte eine Android-Applikation für den Mathematikunterricht entwicklen, mit welcher Schüler spielerisch das Teilen von Termen üben können. Dazu möchte ich den Cross-plattform Python Framework Kivy verwenden.
Die Applikation soll mit einem Screen (Start-Screen) starten, auf welchem die Spielanweisung „Finde alle Teiler des unten stehenden Terms, indem du alle möglichen Teiler in dem 4x4 Feld antippst!“ zu sehen ist. Hier soll sich unten ein Button befinden mit dem man die Applikation startet.
Nachdem man auf dem Start-Button geklickt hat, öffnet sich ein neuer Screen (Game-Screen) auf dem sich das Spiel befindet. In einem 4x4 Feld stehen verschiedenen Teiler und darunter in einem eigenen Feld ein Term. Die Schüler sollen zu dem Term alle Teiler finden und diese antippen. Nachdem der Schüler seine Auswahl in einer vorgegebenen Zeit (ca 30 Sekunden) getroffen hat, bekommt er pro richtig gefundenem Teiler einen Punkt. Für die ablaufende Zeit und die aktuelle Punktzahl gibt es auf dem Screen zwei weitere Felder, wie man in der Abbildung erkennen kann. Auf der unteren Seite des Bildschirmrandes sollen sich zwei Buttons befinden, mit denen man das Spiel einerseits beenden kann und andererseits ein neues 4x4 Feld und einen neuen Term laden kann.
Wenn der Schüler den Beenden-Button des Spiels drückt, soll ein dritter Screen (Quit-Screen) erscheinen auf welchem seine erreichte Punktzahl erscheint und auch seine aktuelle beste Punktzahl.
Das Projekt soll mit Hilfe von Python und Kivy realisiert werden. Hierzu möchte ich das Design Pattern des Modell View Controllers verwenden. Dies bietet sich durch das Kivy-Framework an, da man hierdurch eine kv-file anlegt, in welcher alles was für die View gebraucht wird erstellt werden kann.


Jetzt meine Frage: Wie teile ich das ganze am besten auf Model und Controller auf?

Re: Terme üben mit einer Android-Applikation

Verfasst: Mittwoch 8. April 2020, 17:10
von __blackjack__
@lenaslnr: Vergiss MVC, orientiere Dich an dem was das GUI-Rahmenwerk bietet. Model und Controller würde ich nur trennen wenn das Sinn macht, und nicht einfach so auf Vorrat. Falls man die Trennung tatsächlich braucht, macht man die sowieso, weil man braucht sie ja dann.

Ich würde auch sagen vergiss Python für Android und nimm eine der dort offiziell unterstützen Programmiersprachen oder etwas anderes das problemlos auf der JVM von Android läuft.

Alternativ könnte man eine Webanwendung schreiben. Falls die nichts auf dem Server speichern oder dynamisch generieren muss, könnte sogar einfach eine Anwendung in JavaScript geschrieben werden, die komplett im Browser läuft.

Re: Terme üben mit einer Android-Applikation

Verfasst: Mittwoch 8. April 2020, 17:13
von __deets__
Ich kann die Meinung von __blackjack__ bezueglich Android und Python (leider) nur stuetzen. Das scheint alles *sehr* wackelig. Ein User hier, MupfSpace, hat das immer wieder mal probiert hier Hilfe zu bekommen, und die Untiefen die dabei zu Tage kamen sind leider beaengstigend. Und wirklich helfen konnte einem keiner von uns, weil das Thema zu speziell ist. Stattdessev mit Kotlin zB zu arbeiten wird *deutlich* weniger schmerzvoll werden!

Re: Terme üben mit einer Android-Applikation

Verfasst: Freitag 10. April 2020, 18:35
von lenaslnr
__blackjack__ hat geschrieben: Mittwoch 8. April 2020, 17:10 @lenaslnr: Vergiss MVC, orientiere Dich an dem was das GUI-Rahmenwerk bietet. Model und Controller würde ich nur trennen wenn das Sinn macht, und nicht einfach so auf Vorrat. Falls man die Trennung tatsächlich braucht, macht man die sowieso, weil man braucht sie ja dann.

Ich würde auch sagen vergiss Python für Android und nimm eine der dort offiziell unterstützen Programmiersprachen oder etwas anderes das problemlos auf der JVM von Android läuft.

Alternativ könnte man eine Webanwendung schreiben. Falls die nichts auf dem Server speichern oder dynamisch generieren muss, könnte sogar einfach eine Anwendung in JavaScript geschrieben werden, die komplett im Browser läuft.
danke für die Antwort!
Ich glaub das mit dem MVC krieg ich soweit hin. Ich würde es einfach trotzdem gerne mal mit kivy und python probieren! Weißt du denn oder jemand anderes wie ich einen Button in der kv file an eine Methode in einem Screen binde?

Re: Terme üben mit einer Android-Applikation

Verfasst: Freitag 10. April 2020, 21:47
von __blackjack__
@lenaslnr: Der erste Link auf der Kivy-Hilfeseite heisst „Getting started with Kivy“ und führt zu einem Tutorial. Das solltest Du einfach mal durcharbeiten. Da kommt gegen Ende auch ein Abschnitt Packaging — wie man das eigene Programm dann für verschiedene Plattformen bereitstellen kann. Ich denke mindestens bis dort hin solltest Du das ganze mal evaluieren, und schauen wie sich das für Dich anfühlt und ob Du damit klar kommst und ein Ergebnis erzielst mit dem Du zufrieden bist.

Die Frage finde ich ein bisschen zu abstrakt. Was hast Du denn versucht, und was funktioniert daran nicht?

Re: Terme üben mit einer Android-Applikation

Verfasst: Samstag 11. April 2020, 08:40
von lenaslnr
@__blackjack__
Danke dir für den Hinweis! Das Tutorial werde ich mal durcharbeiten.

Zu meiner Frage:
Ich habe für meine App drei verschiedene Screens erstellt in der kv-file und diese im Model deklariert. Jetzt sind auf jedem Screen verschiedene Buttons, welche unterschiedliche Methoden ausführen sollen, wie z.B. das Spiel zu starten oder zu beenden und die erreichte Punktzahl anzuzeigen. Mein Problem besteht darin, dass ich die Buttons in der kv-file erstellt habe und nicht weiß wie und wo ich die Methoden an die Buttons binde. Wenn ich nämlich meine Methode für den Start Button in der Klasse in der in den StartScreen deklariert habe schreibe, dann bekomme ich eine Fehlermeldung, dass Screen kein solches Attribut hat.