Hallo
Ich würde gerne eine Handy App entwickeln, die per WLAN oder Mobilfunk
mit einem Mikroprozessorsystem kommuniziert.
Dabei soll ein eigenes Protokoll zum Einsatz kommen, welches TCP/IP
verwendet. Das Protokoll ist ein Klartext Protokoll und man kann mit
einem Telnet Client die gesamte Kommunikation auch von Hand durchführen.
Da ich derzeit ein Android Smartphone / Tablet besitzte, soll Android
die primäre Zielplattform sein.
Allerdings möchte ich die App so entwickeln, dass sie ohne "Rooten" des
Telefons auskommt.
Auch möchte ich Megabyteschwere "Frameworks" vermeiden, wenn diese
separat herunter geladen und installiert werden müssen.
Wenn sie fest in der App inkludiert werden können oder so gängig sind,
dass sie ohnehin installiert sind, ist es hingegen okay.
Auf jeden Fall möchte ich die App so erstellen, dass sie zu einem
späteren Zeitpunkt relativ problemlos auf Apple IOS und Windows Phone
portiert werden können.
Ich würde mich über einen Erfahrungsaustausch und Tipps zur App
Entwicklung für Android und Portierung auf IOS/Windows Phone freuen.
mfg
Das klingt nach einer 08/15 Android-App... Die API kann das schon lange
alles - höchstens für die GUI brauchst noch ein paar Libs, damit es
schöner wird.
Das ist (scheinbar, deiner Beschreibung nach) so einfach, dass du sie
eventuell mit HTML5 erschlagen kannst - dann läuft sie auf alles
Smartphones und modernen Rechnern.
Ja, GUI wäre nicht schlecht. Halt die Standardsachen wie Buttons,
Textfelder, Inputs, Checkboxen, Bildausgabe usw.
Ich muss auch Text in verschiedenen Farben und Größen ausgeben und ich
benötige die Möglichkeit, Graphen zu zeichnen.
XML Parsing brauche ich auch.
Dennis schrieb:> Ja, GUI wäre nicht schlecht. Halt die Standardsachen wie Buttons,> Textfelder, Inputs, Checkboxen, Bildausgabe usw.>> Ich muss auch Text in verschiedenen Farben und Größen ausgeben und ich> benötige die Möglichkeit, Graphen zu zeichnen.> XML Parsing brauche ich auch.
Ich sehe das Problem nicht... Schnapp dir Eclipse mit dem Android-Zusatz
und los gehts... Tutos gibs im Netz genug...
Oder halt HTML5, Problem ist nur man muss beide Sprachen können...
iOS würde ich mal rauslassen, zum richtigen programmieren brauchst du
einen Mac, und der Appstore schreibt dir soo viele Sachen vor...
Windowsphone habe ich keine Erfahrung wie das da läuft...
Ich empfehle dir HTML5
MaWin schrieb:> Das ist (scheinbar, deiner Beschreibung nach) so einfach, dass du> sie> eventuell mit HTML5 erschlagen kannst - dann läuft sie auf alles> Smartphones und modernen Rechnern.
Ja, im Browser läuft alles.
Mit AJAX und HTML5 ließe sich das alles realisieren.
Das Problem ist folgendes: Sobald das Smartphone den Bildschirm
ausschaltet, reisst die Verbindung ab und ich muss auf Aktualisieren
gehen.
Ich müsste mit meiner App den Standby Modus deaktivieren und das
kontinuierliche Zeichnen der Graphen und Textausgabe sicherstellen, oder
zumindest einen automatischen Refresh nach Standby Modus sicherstellen.
Ein weiteres Problem ist auch, wenn die WLAN Verbindung kurz abreist,
das bringt einen "Seitenladefehler" und man muss im Browser auf Reload
gehen.
Am Besten wäre natürlich folgendes: Datentransfer, caching und
Aktualisierung über eigenes Protokoll, und zur Ausgabe einen "Embedded
Browser" bzw "HTML5 Output Box" nutzen, sofern es sowas gibt.
Dennis schrieb:> Ja, GUI wäre nicht schlecht. Halt die Standardsachen wie Buttons,> Textfelder, Inputs, Checkboxen, Bildausgabe usw.
Wenn dein uC genug Power hat, um auch die Auswertung zu machen, dann
könnte man gleich einen kleinen Web-Server drauf laufen lassen. Jedes
Smartphone bzw. PC fungiert dann nun noch als eine Art "Terminal". Das
alles sollte mit einem 32bit uC kein Problem sein. Vorteil: Man spart
sich komplett die App Entwicklung für diverse Smartphones und PC. Auch
muss man Apple nicht noch mehr Geld in den Rachen schmeißen (heute
gehört: Apple wird mit über 700 Milliarden Dollar bewertet, Wahnsinn)
Dennis schrieb:> Ja, im Browser läuft alles.
Ok, Energiesparmodus usw. dürfte schwierig in Browser zu händeln sein.
Dann doch eine "richtig" Android App.
Dennis schrieb:> Ja, GUI wäre nicht schlecht. Halt die Standardsachen wie Buttons,> Textfelder, Inputs, Checkboxen, Bildausgabe usw.>> Ich muss auch Text in verschiedenen Farben und Größen ausgeben
Das geht mit der Standard-API von Android
> und ich benötige die Möglichkeit, Graphen zu zeichnen.
Geht glaube ich auch, aber ich nehme dafür
https://github.com/PhilJay/MPAndroidChart> XML Parsing brauche ich auch.
kann Android/Java auch von Haus aus
Als Controller habe ich ja einen Rasberry Pi. Webserver und
Rechenleistung stellt also kein Problem dar.
Im Browser klappt auch alles, aber der Energiesparmodus vom Smartphone
oder WLAN Funklöcher macht eben alles zunichte.
Das mit dem manuellen Refresh nervt doch ganz schön.
Ideal wäre natürlich auch, wenn man die App ständig im Hintergrund
laufen lassen könnte, sie immer wieder pollt (auch im Standby, ohne bei
Netzwerkfehlern eine Unterbrechung der App zu bekommen), und die App
auch eine Benachrichtigung macht, wenn eine bestimmte Bedinung eintritt.
Außerdem wäre ein eigenes Protokoll etwas besser als HTML, da ich dann
gerade das Polling deutlich flexibler machen könnte.
Zum pollen könnte ich dann bequem eine Telnet Verbindung aufmachen, wo
dann zum Pollen und für die Rückmeldung "Neue Daten vorhanden" nur
jeweils ein einzelnes ASCII Steuer-Zeichen erforderlich ist. Den Abruf
der Nutzdaten kann man dann immer noch per HTML machen. Oder man schickt
es gleich über Telnet.
Ein Kompromiss wäre, bei der Entwicklung nur auf Android zu gehen, aber
dann würde ich es doch schon gerne so machen, dass ich die
Portierbarkeit nicht komplett aus den Augen verliere. Man weiß ja
schließlich nicht, was die Zukunft bringt.
Dennis schrieb:> Das Problem ist folgendes: Sobald das Smartphone den Bildschirm> ausschaltet, reisst die Verbindung ab und ich muss auf Aktualisieren> gehen.
Mach Dich schlau über Lebenszyklen der einzelnen Prozesse bei Android
und wie man diese auch im standby weiternutzen kann:
wenn das Phone ohne zutun des Benutzer auf standby geht
wenn das Phone durch den Benutzere auf standby geht
wenn das Phone aus dem standby erwacht
> Ich müsste mit meiner App den Standby Modus deaktivieren und das
Du kannst einen Service schreiben, der ständig aktiv ist und darin legst
fest, welche Aufgaben der Service machen soll.. eben bei die Verbindung
aufrecht erhalten...
> kontinuierliche Zeichnen der Graphen und Textausgabe sicherstellen,
das kann er machen, auch zwischenspeichern, ..
> oder> zumindest einen automatischen Refresh nach Standby Modus sicherstellen.
das geht auch, nach einem "Resume" aus dem Standby lädst dir deine
sachen wieder ein, zwischengespeichertes wieder auf todo.. usw
>> Ein weiteres Problem ist auch, wenn die WLAN Verbindung kurz abreist,> das bringt einen "Seitenladefehler" und man muss im Browser auf Reload> gehen.
wenn du nicht zwingend auf einen Browswer angewiesen bist, kannst du dir
die Webfläche selbst erstellen und einen Reconnect bei
Verbidnungsabbruch einbauen; auch wenn du die Android üblichen Browser
verwendest, kannst über das package das steuern und ein Reload
veranlassen, beim Download einer Datei kannst dabei auch auf Fortsezung
gehen und musst nicht neu laden.
>> Am Besten wäre natürlich folgendes: Datentransfer, caching und> Aktualisierung über eigenes Protokoll, und zur Ausgabe einen "Embedded> Browser" bzw "HTML5 Output Box" nutzen, sofern es sowas gibt.
Das ist alles kein Problem.
"HTML 5 Output Box" kenn ich zwar nicht aber das wird das sein was du
dazu brauchst :-).. nur anders umschrieben.
btw, eine letztes Jahr entwicklete App für einen Discounter hat so einen
Service als Sicherheitsservice in einer Box eingebaut, überwacht wird
per GSM, verlässt das 'vehicle' den zulässigen Bereich, wird
kontinuerlich in einem definierten Zeitraster der aktuelle Standort
übertragen, bei Funkloch wird zwischen gespreichert, wenn es wieder
online geht, werden gespreicherte Daten übertragen ... usw dabei werden
alle möglichen Übertragungswege genutzt, die zur Verfügung stehen. ..
;)
empfehle Dir dazu Basic4Android
du machst damit mit einer Syntax Programme für
-> Android
-> IOS ( sofern du auch B4i nutzt )
-> alle OSen ( sofern du auch B4J nutzt )
http://www.b4x.com/
und es macht tierisch Spass damit