Beiträge von Kollisionskurs

    Hallo zusammen,


    nun stehe ich an dem Punkt meine erste App schreiben zu dürfen bzw. zu müssen. Dazu habe ich noch ein paar grundlegende Fragen bez. meines Konzepts.


    Auch nach vielem Lesen und Recherchieren bin ich mir noch in einem Punkt unsicher: Über welche Möglichkeiten bilde ich meine Hintergrundaktivitäten am besten ab.


    Die grundlegende Funktion der App versuche ich vereinfacht zu erklären:


    1. Der Benutzer erhält nach Programmstart eine Liste mit Einträgen vom Typ "Automarken" - diese werden aus einer lokalen SQLite Datenbank gelesen.
    2. Der Benutzer wählt ein "Auto" aus bzw. klickt darauf, und kann die technischen Daten zu diesem Auto ergänzen/abändern - dies wird wiederrum in der SQLite Datenbank gespeichert.
    3. Ein Hintergrundprozess vergleicht den Datenbestand mit einem Server und synchronisiert diesen bei Bedarf (nur bei Unterschieden bzw. werden Hashwerte vom lokalen Datenbestand und vom Datenbestan auf dem Server gebildet und verglichen)


    Lösung zu 1 und 2.
    Lese- und Schreibvorgänge in die Datenbank werden in einem AsyncTask abgebildet. Das Laden der Einträge in die Liste (ListActivity) wird über einen LoaderManager (inkl. Content Provider) realisiert - welcher meines Wissens nach sowieso einen "Hintergrundprozess" für die Datenabfrage initiiert:


    Java
    public class MyClass extends ListFragment
    								implements LoaderManager.LoaderCallbacks<Cursor>
    .....


    auch interessant:
    http://journeyman.janusz.de/?p=84


    Lösung zu 3.
    da ist der Knackpunkt....ich bin mir unsicher ob ich einen Local Service, einen Remote-Service oder einen Intent-Service nehmen soll bzw. was macht von der Implementierung her am meisten Sinn.


    Der Prozess muss lediglich einen Status zurück an das UI melden bzw. möchte ich diesen Status als Notification anzeigen. Ansonsten ist keine Kommunikation mit dem MainThread notwendig.


    Allerdings soll der Service auch eigenständig ausgeführt werden, wenn sich der Netzwerk-Status ändert: Ich abonniere im Manifest einen Broadcast Receiver (Connectivity_Change). Sobald ein Netzwerk verfügbar ist, soll der Service starten (ohne das zuvor logischerweisse die Applikation gestartet wurde) und versuchen die Daten zu übertragen (sofern der Server erreichbar ist).


    ein schöner Vergleich zwischen den einzelnen Möglichkeiten:


    http://techtej.blogspot.com/20…ead-constructspart-4.html


    Wie sind eure Erfahrungen bzw. wie würdet ihr das ganze realisieren...


    Danke und Grüße


    Koll.

    Danke erst einmal fürs Feedback! :Android:


    Florian:


    Genau in diese Richtung soll es gehen bzw. eine kleine und smarte Applikation auf dem Device. Allerdings muss diese autark und ohne Netzanbindung lauffähig sein - ich kann nicht davon ausgehen das jeder Kunde an jedem Zähler auch ein Netz (für die direkte Datenübertragung) zur Verfügung hat. Das Programm verarbeitet den Input des Benutzers - berechnet zum Beispiel den Verbrauch anhand dem (gerade eingegebenen) neuen Zählerstand minus dem alten Zählerstand (welcher ja noch in der xml Datei steht) usw. Nach der Eingabe aller Zähler, wird die Ausgabedatei auf den Server übertragen und dort verarbeitet bzw. die Zählerdaten in die Datenbank übertragen. Prinzipiell ist das schon ein eigenständiges Programm mit einer überschaubaren Logik - ich muss die Plausibilitätsprüfung und Auswertung auf dem mobilen Gerät ausführen, der Bearbeiter muss sofort vor Ort eine Information erhalten wenn etwas nicht stimmt bzw. plausibel erscheint (unabhängig von der Serverapplikation).


    Meines Erachtens gibt es zwei Möglichkeiten:


    1. Entweder ich beschränke mich auf eine Plattform (z.Bsp. Android) oder ich programmiere die Applikation für jede gewünschte Plattform einzeln und extra (extremer Mehraufwand).


    2. Die Programmierung erfolgt via html5, CSS & JS - quasi Plattformunabhängig. Via Phonegap (thx Thrakbad) wird es für die jeweilige Plattform angepasst !?!.


    Aufgrund nicht vorhandener Erfahrung möchte ich mir natürlich im Vorfeld sicher sein, was die bessere Lösung ist.
    Habe ich via HTML5 etc. uneingeschränkten Zugriff auf die System-Hardware, wie z.Bsp. in meinem Fall die Kamera?


    Danke & Grüße


    Kollisionskurs

    Hallo zusammen,


    ich bin absolut neu hier bzw. stehe ich ganz am Anfang bei der Konzeptionierung meiner Anwendungsentwicklung - quasi erst einmal Ideen sammeln etc.
    Kurz zum Hintergrund:


    Wir vertreiben Messgeräte aller Art bzw. sind im Bereich Energiedatenerfassung zu Hause. Und dazu haben wir die passende Software zur Auswertung - webbasierend und Windows lastig.
    Stellt euch einfach ein Betrieb bzw. eine größere Firma vor - dort werden verschiedene Energieformen gemessen a'la Strom, Gas, Druckluft, Wasser usw. Überall dort wo kein Messgerät eingebaut ist (über TCP/IP mit der Software verbunden), sind ganz normale Ablesezähler verbaut - so wie bei jedem in seiner Zählerverteilung im Haus. Diese Zähler werden (vom jeweiligen Ableser im Betrieb) Monat für Monat abgelesen - kann einen Mann 1-2 Tage voll beschäftigen.


    Und jetzt kommts:


    Bisher haben wir für diese "mobile Zählererfassung" eine kleine Software für den handelsüblichen PDA - lauffähig unter Windows Mobile. Somit hat der Ableser (die arme Sau) ein geniales Werkzeug in der Hand - läuft mit seinem PDA seine Zähler ab, trägt den Zählerstand in den PDA, um dann nach einer direkten Plausibilitätsprüfung an den nächsten Zähler zu laufen. Im Anschluss wird der PDA an den Rechner "gedockt", und die Zählerdaten (als xml Datei) werden direkt in die Datenbank geschrieben.


    Fakt:


    PDA's sind am aussterben bzw. mittlerweile fast gar nicht mehr erhältlich - abgelöst durch Smartphones etc. Wir brauchen eine App - vom Leistungsumfang sollte diese natürlich das gleiche können wie die Vorgängerversion unter Windows Mobile.


    - GUI zur Zählerstandserfassung
    - Input/Output als xml Datei etc.


    und zusätzlich stellen wir uns vor das der Barcode des Zählers mit der Kamera "erfasst" werden kann - zur eindeutigen Identifikation.


    Jetzt stellen sich für mich folgende Fragen:


    1. Generell realisierbar? Für jeden Tipp etc. dankbar bzw. wie gehe ich am besten so ein Projekt an. Java Kenntnisse sind dezent vorhanden bzw. denke nicht das (nach einer gewissen Einarbeitungszeit) dies ein Problem darstellt.


    2. Die "Pad's" werden eventuell von uns dazu verkauft - aber: Bei den PDA's war es seinerzeit das selbe - entweder wir haben dem Kunden eines verkauft, oder er hatte schon eines in seinem Besitz. Mal angenommen (in naher Zukunft) der Kunde besitzt schon ein Pad - allerdings mit einem Windows Betriebssystem, oder gar ein iPad. Dem brauche ich nicht mit einer Android App kommen - -deshalb:


    würde es deswegen nicht Sinn machen, das Ganze als HTML5 App zu programmieren - um damit Platformunabhängig zu werden? Wie gesagt - bin gerade am Ideen zusammen suchen, aber ich bin vorhin über folgendes Buch gestossen:


    [amazon] 3645600523[/amazon]


    Ein Traum wäre eine Applikation, welche unter meinem geliebten Androiden, "Windows XYZ Mobile" und auch auf der "Spielweise von Steve Jobs" läuft. Was meint Ihr dazu?


    Danke im Voraus für die Infos...


    Grüße Kollisionskurs!