Hi,
ich und ein paar Kumpels testen leidenschaftlich gerne Wein. Darum hatte
ich mir überlegt, um auf Papier und Stift zu verzichten, dafür eine App
für Android zu programmieren. Es soll praktisch einfach ein neuer Test
angelegt werden können, dort wiederrum verschiedene Weine angelegt
werden, die eine Bewertung ("Note"), eine Beschreibung ("Textfeld") und
eine Markenvermutung ("Auswahl aus Dropdown-Menü mit allen verfügbaren
Marken") besitzen. Das ganze soll dann beim beenden als einfach zu
bearbeitendes Output File (am besten txt) exportiert werden können.
Ich will natürlich nicht, dass man mir jetzt vorkaut wie ich das
umsetze. Aber es wäre schön, wenn jemand abschätzen könnte mit viel
Zeitaufwand das ganze verbunden wäre. Davon hängt es auch ab, ob ich es
tatsächlich mache!
Ausgangslage ist, dass ich nicht der allzu leidenschaftliche
Programmierer bin. Java kann ich nur aus dem 1. Semester Uni und etwas
tiefer bin ich nur in der C-Programmierung drin. Vielen Dank schonmal!
Wie gesagt, geht nur um ne grobe Abschätzung des Zeitaufwandes.
Thorben
Thorben schrieb:> Wie gesagt, geht nur um ne grobe Abschätzung des Zeitaufwandes.
Der aber hängt extrem vom Vorwissen des Entwicklers ab. Wenn der noch
nie eine Android-App entwickelt hat, sieht der Zeitbedarf komplett
anders aus als bei jemanden, der das schon häufiger gemacht hat.
Dazu kommt, daß unterschiedliche Menschen unterschiedlich schnell lernen
und unterschiedlich schnell arbeiten.
Damit lässt sich Deine Frage hochpräzise mit "zwischen 'ner Stunde und
zwei Monaten" beantworten, was Dich ziemlich sicher nicht weiterbringt,
oder?
Thorben schrieb:> Es soll praktisch einfach ein neuer Test> angelegt werden können
In der App auf dem Handy? D.h. alles läuft auf einem Handy, und Du hast
keine Handy-Handy oder Handy-Server Kommunikation?
Dann brauchst Du so 6-12 Stunden nachdem Android SDK bei Dir läuft und
Du eine erste Testapp geschrieben, kompiliert und installiert hast.
> Dann brauchst Du so 6-12 Stunden nachdem Android SDK bei Dir läuft und> Du eine erste Testapp geschrieben, kompiliert und installiert hast.
Also in Summe: Rechne 1 - 2 Wochen a 8 Stunden. ;)
Vielen Dank schonmal für die Antworten!
Erfahrungen sind wie gesagt va hardwarenahe Programmierung und halt im
1. Semester Java, was aber schon 5 Jahre zurückliegt.
Das mit den Tabellentools werde ich mal ausprobieren!
Server oder sowas gibts nicht, wirklich nur mehrere Handys die
unabhängig voneinander laufen.
Denke auch, dass die Einrichtung natürlich auch immer recht viel Zeit
frisst.
Ich persönlich würde das ja eher anders lösen:
Nicht als native Smartphone-App, sondern als Web-App, die letztlich auf
irgendeinem Webserver läuft.
Zum einen macht es dann keinerlei Unterschied, was für ein Smartphone Du
und Deine Kumpels benutzen; wenn sich einer von euch dann z.B.
irgendwann ein iPhone oder ein Windows-Phone besorgen würde, wäre er
nicht ausgeschlossen.
Und viel interessanter ist es doch auch, wenn alle eure Bewertungen in
einer zentralen Stelle gespeichert werden, wo sie dann automatisch
zusammengefasst oder verglichen werden können, statt dass jeder von euch
nur seine eigenen Bewertungen in einer isolierten Datenbank auf seinem
eigenen Handy gespeichert hat, von wo aus sie dann erst kompliziert
exportiert werden müssen etc.
Eine native Smartphone-App hingegen ist nicht nur aufwändiger
umzusetzen, sondern bietet meiner Meinung nach in diesem konkreten Fall
auch nur einen einzigen Vorteil: man benötigt keinen zentralen Server.
Aber ein bisschen Webspace mit PHP-Unterstützung oder so kriegt man
heutzutage ja eh hinterhergeschmissen...
Denke die Lösung mit der Android App ist für unseren Zweck geeigneter!
Zum einem macht die Auswertung immer die selbe Person, zum anderen ist
die Idee des Programms, dass es eine Funktion gibt, wo die exportierten
Daten dann per E-Mail an den Auswerter geschickt werden!
Des Weiteren ist es einfach so, dass ich gerne mein Wissen in Java oder
generell im objektorientierten Bereich mal wieder auffrischen wollte,
daher schadet das sicher nicht!
Danke für die Anregugn!
Thorsten F. schrieb:> Denke die Lösung mit der Android App ist für unseren Zweck geeigneter!> Zum einem macht die Auswertung immer die selbe Person, zum anderen ist> die Idee des Programms, dass es eine Funktion gibt, wo die exportierten> Daten dann per E-Mail an den Auswerter geschickt werden!
Was genau daran geeigneter sein soll, erschliesst sich mir jetzt nicht
ganz: Im Gegensatz zu einer Lösung mit einem zentralen Server, bei dem
all das ganz automatisch geschieht, ist das doch offensichtlich deutlich
umständlicher und aufwändiger?
> Des Weiteren ist es einfach so, dass ich gerne mein Wissen in Java oder> generell im objektorientierten Bereich mal wieder auffrischen wollte,> daher schadet das sicher nicht!
Das wiederum ist ein Argument, das ich sofort einsehe. Wenn es Dir bei
der ganzen Geschichte zum grossen Teil auch einfach darum geht, mal
Deine Java-Kenntnisse ein wenig aufzufrischen und eine native
Smartphone-App zu entwickeln, dann ist das halt so.
Zur Aufwandsschätzung: Das hängt wirklich ganz stark von Deinen
Programmierkenntnissen ab. Wenn Du was Java-Programmierung betrifft noch
eher Anfänger, und was Android-Programmierung betrifft sogar kompletter
Anfänger bist, dann erscheint mir die obige Schätzung von 6-12 Stunden
tendenziell zu wenig.
Vielleicht mal als kleiner Richtwert: Ich habe gerade ein Angebot für
etwas ganz Ähnliches abgegeben - wo es ebenfalls darum geht, dass eine
Gruppe von Personen Getränke verkosten und dann über den Touchscreen
eines Smartphones oder Tablets bewerten soll, und am Ende wird das Ganze
dann ausgewertet. Da habe ich als Aufwandsschätzung für die reine
Software-Entwicklung 20 Stunden angegeben. Allerdings habe ich da mit
der verwendeten Softwareplattform vermutlich mehr Erfahrung als Du
bislang offenbar mit dem Android-SDK, ich würde Deinen Zeitaufwand
tendenziell also eher höher einschätzen.
Joachim S. schrieb:> Vielleicht mal als kleiner Richtwert: Ich habe gerade ein Angebot für> etwas ganz Ähnliches abgegeben - wo es ebenfalls darum geht, dass eine> Gruppe von Personen Getränke verkosten und dann über den Touchscreen> eines Smartphones oder Tablets bewerten soll, und am Ende wird das Ganze> dann ausgewertet. Da habe ich als Aufwandsschätzung für die reine> Software-Entwicklung 20 Stunden angegeben. Allerdings habe ich da mit> der verwendeten Softwareplattform vermutlich mehr Erfahrung als Du> bislang offenbar mit dem Android-SDK, ich würde Deinen Zeitaufwand> tendenziell also eher höher einschätzen.
Ja, das hatte ich mir schon gedacht, dass dies sehr optimistisch
geschätzt ist. Wenn ich abzüglich Einrichtung auf 50 Std hinkomme, wäre
ich schon sehr zufrieden.
Okay, dann bin ich wenig nicht der einzige mit diesen exotischen
App-Wunsch ^^
Hallo Thomas,
wenn es Dir in der Haupsache um die fertige App geht und nicht um die
professionelle Erstellung mit Java, könntest Du Dir auch mal den App
Inventor 2 vom MIT anschauen.
http://ai2.appinventor.mit.edu/
Das ist ein online im Webbrowser laufendes Programm (google konto), mit
dem man recht einfach Android Apps erstellen kann. Für Deine Anwendung
wäre es weit mehr als ausreichend und die Einarbeitung geht ziemlich
schnell. Die Befehle sind 'Puzzleteilchen', die mit der Maus
zusammengeschoben werden. Das klingt zwar nach Kinderspielzeug, aber es
lassen sich doch auch grössere, vernünftige Apps erstellen. Das Handy
kann über Wlan verbunden werden, und jeder Programmteil wird direkt in
Echtzeit auf dem Handy ausgeführt und angezeigt.
Also ein paar Textfelder, Buttons und scrollbare Auswahlliste (ist schon
vorhanden, muss nur befüllt werden(könnte auch aus einer txt Datei vom
Handy gelesen werden)) und die Eingaben in eine Variablen-Liste, die
dann als txt Datei in den Handy Speicher gespeichert wird, oder auch
direkt aus der App ge-Emailed wird, sind ohne Probleme machbar. Durch
die Echtzeit Anzeige kann man jeden Befehl sofort testen und man lernt
direkt beim Programmieren. Nach meiner Erfahrung braucht man ca 70% der
Zeit für das Bildschirm-Layout und 30% zum programmieren.
kannst ja mal nach app inventor 2 googeln oder youtuben
gruss
herrmmueller
Schau' dir mal "Processing" an. Das ist eine Open Source-IDE für C++,
die ist selber in Java realisert, läuft auf Mac, Win-PC und unter Linux.
Es gibt dafür auch ein Android-"Compiler"-Tool, da kommt dann hinten
eine APK-Datei 'raus, die direkt auf dem Handy installiert werden kann.
Für die GUI verwendet man die Lib "G4P", die man in der IDE runterladen
und installieren kann.
Ich benutze das Tool immer für meine Kurse "Grundlagen der
Programmierung" und kann damit meinen Teilnehmern recht schnell
Anfangserfolge beschreren.
Als Einstieg dazu macht sich das Buch von Bartmann "Processing" recht
gut. Der spätere Übergang zu Java ist wegen der großen Verwandschaft
recht einfach, die Einsteigshürden liegen m.E. aber deutlich niedriger.
Look and Feel ist vergleichbar mit der Arduino-IDE, die beide auch
irgendwie verwandt sind ...
Eine sehr schwierige Frage.
Ich könnte so ein Programm in 1-2 Stunden entwickeln, aber das wird dir
natürlich niemand so machen, da man sich nicht unter Wert verkaufen
will. Außerdem dauert es immer deutlich länger, wenn man für jemanden
entwickelt, der nicht man selbst ist. Dir sind deine Anforderungen und
Testszenarien genau klar, eine dritte Person muss die erst mühsam
erarbeiten.
Von der Sache her ist es relativ einfach, die größte Schwierigkeit sehe
ich bei dem Dropdown. Hier würde ich, wenn ich dir die Anwendung
entwickeln würde, erstmal nachfragen, wieviele Marken es denn gibt und
dann ggf. eine Lösung vorschlagen, die besser benutzbar ist, z.B.
irgendwas mit einer Suchfunktion oder Auto-Vervollständigung. Das
einfach auswertbare Format müsste auch erstmal definiert werden. Wie
sollen die Daten nachher ausgewertet werden und wie baut man sich das
Format so, dass du das auch geschickt umsetzen kannst? Bis man das alles
durchdiskutiert hat, vergeht schnell mal eine Stunde.
Einem Android-Anfänger, der aber objektorientiert mit Java programmieren
kann, würde ich so ein Programm als Übungsaufgabe für einige Wochen
vorsetzen. Letztendlich ist es eher einfach, aber man braucht natürlich
schon ein wenig Zeit. Die 50 Stunden sind also gar nicht so schlecht
geschätzt, je nachdem, wie gut du objektorientiert denken kannst.
lalala schrieb:> Dann brauchst Du so 6-12 Stunden nachdem Android SDK bei Dir läuft und> Du eine erste Testapp geschrieben, kompiliert und installiert hast.
Hatte ich zwar geschrieben. Aber das
Thomas F. schrieb:> Daten dann per E-Mail
ist meiner Meinung nach eine neue Zusatzanforderung. Speichern einer
Datei (Originalanforderung) ist um längen einfacher.
Ich verdopple mal die Schätzung auf 24h. Und da bestimmt noch eine Menge
andere versteckte Zusatzanforderungen kommen, gleich nochmal.
Also Android-Apps zu schreiben ist eigentlich kein Problem wenn man ein
wenig Java kann. Schließlich gibt es auch viele vorgefertigte
Code-Schnipsel im Netz, die für den Anfang m.M. nach unverzichtbar sind.
Solange es nur auf einem/zwei Smartphone(s) laufen soll würde ich
persönlich das Ganze lokal auf dem Gerät machen und keine
Serverkommunikation bzw. Web-App dafür hernehmen.
Für eine Web-App braucht man immer mobiles Datennetz, was in diversen
Weinkellern aufgrund des nicht verfügbaren Netzes vermutlich nicht
verfügbar sein wird ;-)
Klicke dir ein Formular zusammen (Android Studio) und nutze für die
Archivierung der Daten eine Datenbank. Ich kann dir dafür SQLite
empfehlen.
Sie hat den annäherenden Funktionsumfang einer mySQL-DB und ist
"relativ" einfach zu nutzen.
Aus einem reinen Textfile zu lesen, nun, daran bin ich auch schon für
eine ach so triviale App gescheitert, weshalb ich dann auch bei SQLite
gelandet bin.
Kleiner Tipp:
Starte schon heute den Android-Emulator, damit du morgen dein erstes
Hello-World-Äppchen emulieren kannst ;-)
Viel Erfolg!