# ständig ändernden Inhalten in einer App



## ---> (5. Jan 2016)

Sehr geehrte Community,

bei einigen App,
beispielsweise App in denen Lehrer ihren Schülern Hausaufgaben miteilen können
oder Apps in denen der Vertretungsplan der Schule/ Universität angeziegt wird,
ändern sich Inhalte ständig.
Außerdem aktualiesiert die App ihre Inhalte selbständig.
Diese Inhalte werden ja nicht wie Daten normalerweise fest einprogrammiert
und höchstens bei einem Update aktualisiert sondern sind dynamisch.

Über die Grundlagen in der Androidprogrammierung
(für Native Apps in Java und auch für Web Apps) verfüge ich,
ich denke Quellen kann ich in der Regel verstehen und mit ihnen arbeiten.

 (1.1) (Wie?) zurgrundeliegende Technologie:
  Nun ist meine Frage, wie werden solche App normalerweise umgesetzt und auf welche
  Technologie wird zurückgegriffen?

 (1.2) (Wie?) Darstellung komplexer Inhalte und professionelle Herangehensweise:
  Oft werden solche Inhalte ja in einer App festgelegt
  und an andere Nutzer übermittelt (z.B. der Chat bei WhatsApp),
  was ist aber wenn dynamische Inhalte,
  beispielsweise bei einer Nachrichten-App formatiert werden müssen?
  Wie gehen große Unternehmen wie die Frankfurter Allgemeine Zeitung,
  mit genügent Kapital und Nutzern damit um?
  Wie funktionert dies bei Web-Apps?

------------------------------------------------------------------

Ich würde gerne Inhalte meiner App (Texte, event. Bilder)
in einer Desktopanwendung festlegen und ggf. an die App übermitteln.
Die App soll sich selbst aktualiesieren und die in der Desktopanwendung festgelegten Texte, Bilder und Formatierungen darstellen.

(2.1) (Was?) Native App oder Web-App:
  Ist es eurer Meinung sinvoller, wenn man vorhat eine App zu programmieren,
  die nur Texte und Bilder darstellt und vieleicht noch ein Menü besitzt
  eine Native App mit Java zu programmiern
  oder ist eine Web App,
  die sich mit Tools wie Phone Gap
  in eine Native App umzuwandeln lässt für diesen Anwendungsbereich passender?
  Der große Vorteil bei einer Web-App wäre die Platformunabhängigkeit,
  so dass die App z.B. auch auf Apple- oder Blackbarry-Geräten verwendet werden könnte.
  Was ist wenn eine Native App die durch die Umwandlung (PhoneGap)
  aus einer Web-App enstanden ist ein Widget besitzen soll?

(2.2) (Wie?) Datenübermittlung und Darstellung:
  Auf welche Technologie ist es sinfoll zurückzugreifen?
  Welche Schnitstellen soll zur Übermittlung von Daten verwendet werden?
  In welcher Sprache soll ich die Desktopanwendung programmieren, damit sie flüssig läuft?
  Brauche ich eine Server Anwendung als Schnitstelle?
  Wie finktioniert dies, sowohl bei Nativen Apps, als auch bei Web-Apps?

 (2.3) (Wo?) Beispiele:
  Grundsetzlich ist die Technik mir der so eine App umgesetzt werden könnte
  relativ allgemein Gebräuchlich.
  Kennt ihr Code-Beispiele, Tutorial, Forenbeiträge, Internetseiten,
  Bücher, eine Stelle in der ofizellen Dokumentation von Google usw.
  in der eine einfache App die Texte und Bilder darstellt,
  die sich (wie bei einer Nachrichtenapp) über eine andere Anwendung festlegen lassen
  und selbst aktualiesiern (sowol für Native, als auch für Web-Apps)?

Ich hoffe ich habe euch mit meinen Fragen nicht "erschlagen".
Auch über Teilantworten, Anregungen
und die Beantwortung nur einiger meiner Fragen würde ich mich sehr freuen.

Danke, schonmal im voraus.

Mit freundlichen Grüßen

"#Veni.Vidi.Codi"

#Alle halbwegs nützliche Antworten werden gut bewertet.


----------



## kneitzel (6. Jan 2016)

Also da hast Du jetzt sehr viele Punkte aufgeworfen.

Also wie bekommen Apps dynamische Daten?
- Indem sie sich zu einem Server verbinden und diese Daten über ein definiertes Protokoll herunter laden. Welches Protokoll dies ist, ist dabei erst einmal egal. Ein Entwickler kann sein eigenes Protokoll entwickeln oder ein bestehendes verwenden. Viele Anwendungsbereiche haben bereits Protokolle, die sich bewährt haben. Für Emails gibt es SMTP, POP3, IMAP... Chatserver können das IRC Protokoll nutzen, Newsserver haben NNTP., ....
Wenn man keinen Spezialfall hat und auf ein bestehendes Protokoll gehen möchte, dann kann man sich überlegen, was man statt dessen möchte. Es gibt ein Rahmenwerk, welches sich Web Services nennt. Das ist wie ein Webserver nur eben speziell für automatische Abfragen gedacht. Darauf kann man sehr gut aufsetzen, um seine eigenen Interfaces online zu bringen und man muss nicht mehr das Rad neu erfinden. Die Services beschreiben sich auch selbst und es gibt dann z.T. Tools, die für einen bestehenden Webservice den notwendigen Code direkt schreiben.

Die Daten werden dann von der Applikation ggf. noch lokal zwischengespeichert.

- dynamische Inhalte, die formatiert sein sollen
Hier kann man einen eigenen Standard festlegen wenn man möchte oder einfach einen der vielen Standards nutzen, die es schon gibt. HTML, PDF, RTF, ... Möglichkeiten gibt es viele.
Ich habe es als nützlich empfunden, wenn die Daten strukturiert als XML vorliegen und dann erst auf der Clientseite transformiert wird z.B. in ein HTML. Hat den Vorteil, dass man stärker auf die Bedürfnisse des Clients eingehen kann. So könnte aus einem Datensatz z.B. auch mehrere Seiten entstehen, die der Nutzer dann auf seinem Handy besser überblicken kann.
Generell ist Dir da aber keine Grenze gesetzt.

Native-Apps haben mehr Möglichkeiten innerhalb der Applikation aber sind natürlich auf eine Plattform begrenzt. Das ist in meinen Augen nicht schön. Der Weg über universelle Apps (Egal ob über HTML/Javascript wie in PhoneGap oder z:b. über eine Sprache wie C# wie es z.B. Xamarin macht) ist gerade für Applikationen, die nicht zu sehr in die tiefen des Zielsystems müssen oder die die letzte Performance herausholen müssen aber eine sehr gute Wahl. Dies führt in meinen Augen zu einer besseren Wartbarkeit und ermöglichen einem einzelnen Entwickler erst, Plattformübergreifend zu entwickeln.
Teilweise mag es sogar recht universell werden, so habe ich auch schon ein Projekt MacGap gesehen und so - die Idee ist also, dass eine Applikation wirklich fast überall läuft. Habe ich aber nicht im Detail ausprobiert.
Die PhoneGap Lösung sieht in meinen Augen sehr vielversprechend aus. Der OpenSource Ansatz (Apache Cordova steckt da ja drin) macht es auch relativ zukunftssicher. Probleme mit den AppStores gibt es eigentlich nicht, da unter dem Strich doch native Apps erstellt werden. Also durchaus ein gangbarer Weg, den ich mir in der Vergangenheit auch schon einmal genauer angesehen habe.

Bezüglich Datenübertragung habe ich ja bereits einiges geschrieben.

Beispiele gibt es viele. Musst Du aber erst einmal eine Entscheidung treffen, was Du denn machen willst. Eine Android Applikation in Java? Eine Lösung mit PhoneGap?

Konrad


----------



## ---> (6. Jan 2016)

Hi kneitzel/ Konrad,
danke für deine umfassende Antwort.
Sie zu schreiben hat bestimmt viel Arbeit gemacht.

Du hast mir viele gute Anregungen geliefert.
In einem neuen Thema habe ich näher beschrieben was ich vorhabe.

http://www.java-forum.org/thema/fragen-zur-richtigen-umsetzung-eines-projektes.171233/

Mit freundlichen Grüßen

"--->"


----------

