![]() |
Online/Offline-Software-Konzept für Win, Apple, Android
Hallo Leute,
nach längerer "Denkphase" würde ich gerne mal eure Ansätze für folgende Idee hören :-) EINE Codebasis in Delphi Rio 10.3.3 für eine Anwendung, die auf Win, Android und Aplle läuft. Ein "Datenbank-Zwischenspeicher-Konzept", falls das Win10 Netbook, das iphone oder das Android Table NICHT im Internet ist.. Synchronisierung mit der Datenbank am Server - sobald das Device wieder online ist
... Vielen Dank für Hinweise Erich |
AW: Online/Offline-Software-Konzept für Win, Apple, Android
Zitat:
Zitat:
Zitat:
|
AW: Online/Offline-Software-Konzept für Win, Apple, Android
Zitat:
|
AW: Online/Offline-Software-Konzept für Win, Apple, Android
Zitat:
Als lokaler, einheitlicher Speicher eigenet sich m.E. nur ein einziges RDBMSystem, SQLite. Denkbar wäre vielleicht auch, lokal ausschließlich mit JSON oder XML zu arbeiten. Ich hab keine Ahnung, welche Daten Du speichern willst und wie flexibel Du sein musst/willst. Ich sehe zum Datenaustausch auch eine REST Schnittstelle als sinnvoll an. Ich würde allerdings gar nicht mit 2 Speicherverfahren arbeiten. Natürlich muss die Anwendung die beiden Zustände jederzeit (er)kennen und bei Bedarf auch dem User vermitteln. Aber ich würde immer lokal speichern und nur Änderungen austauschen. Spannend vielleicht, wie häufig (überhaupt) konkurrierende Datenänderungen gemacht werden und Konflikte entstehen können. |
AW: Online/Offline-Software-Konzept für Win, Apple, Android
Was das "Local DB" betrifft:
Schau dir mal ![]() ![]() ![]() ![]() Es läuft auf Sqlite, was automatisch auf allen Platformen die einfachste Lösung ist, weil es z.B. Android/iOS schon von Haus aus mitbringt. Ansonsten fände ich für den Server auch FB OK, aber das ist ein weites Feld. |
AW: Online/Offline-Software-Konzept für Win, Apple, Android
ich hatte vor einigen Tagen auf einer Lazarus Konferenz in den Niederlanden mal genau zu dem Thema
eine präsentation gemacht, die dort zwar auf pas2js und lazarus gezeigt wurde, aber da ein teil der Demo auch auf Basis von TMS Webcore gemacht wurde, das ja auch in Delphi verfügbar ist, deckte das eigentlich das ab, was du hier erklärst (das hier ist ein Video von der Session mit einigen Demo Applikationen und auch der https firebird sql schnittstelle). ![]() lief was bei der aufzeichnung falsch) Die Infos basieren auf realen Kundenprojekten. Fazit aus meiner Sicht: Native App Entwicklung für mobile devices hängt mit so vielen Faktoren zusammen, das du früher oder später bei den Tools landen wirst, die der android oder iOS Hersteller dafür bereitstellen. Ob das um so banalen Kram geht wie nur noch 64 bit usw oder sonstwas ist dabei eigentlich egal. Du musst so viel neuen Kram lernen, alleine um das ganze Zeug über die Appstores verteilen zu können und wirst bekloppt, wenn deine Kunden ein Bugfix brauchen, apple aber wochenlang nur die alte version im store hat usw. Und auch auf PCs ganz banale Geschichte wie mal eben einen firebird server zu installieren und zu benutzen, kann dich in der welt der native apps zur Verzweiflung bringen. Wenn du eine eigene Abteilung mit x erfahren App developern hast, dann kannst du das so machen, ich vermute aber mal, das du das nicht hast und auch gar nicht haben willst ... Die erfahrenen Leute, die im Markt bezahlbar und verfügbar sind, sind ausgesprochen selten und Leute mit Halbwissen kosten nur Geld und Zeit ... Wir haben uns auf Basis von Kundenprojekten also ausschliesslich auf Webapps auf Basis von lazarus/pas2js/tmswebcore konzentriert und bieten dafür auch Consulting an (auch im Rahmen der Hotline). Da es meistens um Daten aus einem komplexen Backoffice System geht, haben wir aber auch nie den Anspruch, in einer Offline Situation sämtliche Daten aus allen Tabellen lokal im Handy zu haben, sondern holen uns über die oben im o.a. Archiv befindliche https Firebird SQL Schnittstelle Daten aus der db, die wir dann in einem simplen eigenen Format im Webbrowser in der localstorage vorhalten, falls die mal in einem Offlinezugriff gebraucht werden. In dem Beispiel oben sind das zum Beispiel daten wie arbeitszeitbuchungen usw. das schöne an den pas2js anwendungen ist, das die auch offline funktionieren, und du mit so was wie tms webcore bei bedarf auf datasets und dbgrids daraus füllen kannst, ohne irgeneinen serverzugriff haben zu müssen. Auch speichern kannst du da, und wenn mal das mal mit der üblichen Pascalsyntax in lazarus oder delphi gemacht hat, geht die Lernkurve sehr schnell nach oben. Man braucht ein wenig Zusatzwissen, um dann die html seite auch lokale auf mobile devices zu cachen, aber das ist schnell an einigen Beispielen erlernbar. Das Beispiel in o.a. archiv basiert darauf, das man möglichst einfach vom client per sql sqls an einen server sendet, der das dann entweder einfach macht oder eine Ergebnismenge liefert. In der Firebird Welt hat man ausreichend Mechanismen, um rechte einzuschränken, so das die Webschnittstelle zB nur über SPs daten bekommt. Bei den meisten Rest Server architekturen kannst du das auch machen, aber beim rest server hast du meistens 3 Ebenen client-restserver-datenbank an denen du übereinstimmung brauchst, bei uns sind das nur 2 ebenen, weil der restserver in der mitte wegfällt. Und das sich diverse Restserver als wunderschöne Plattform zum Datenklau eignen sieht man regelmäßig, wenn irgendjemand wieder irgendwo daten abgegriffen hat, weil der unerfahrene Programmierer der Restserver api einfach erlaubt, zu einer beliebigen Kundennummer in der url irgendwas abzufragen und der Datendieb dann einfach mal die nummern hochzählt in der url und schaut was kommt. Das Problem hast du in allen Welten und je mehr eben du hast, mit denen du keine Erfahrung hast, um so mehr Problem kann es am ende geben. Da du dich aber vermutlich mit Frontendprogrammierung in Delphi/pascal ganz gut auskennst und dir auch firebird nicht komplett fremd ist, kann man durchaus davon ausgehen, das die zusätzlichen Erfahrungen, die du dafür brauchst, innerhalb von maximal einer Woche vermittelt werden können, wie das auch bei anderen Kunden mit Delphi/Firebird Erfahrung ausgereicht hat. Da in jedem einigermaßen aktuellen Webbrowser in der localstorage 5 bis 10 MB an Daten speicherbar sind, musst du ggf eh mal hinterfragen, was effektiv an daten offline gebraucht werden, weil alles eher selten klappen wird. Wenn du aber mal versuchst, irgendein dbgrid ähnliches Konstrukt auf einem 5 Zoll Handydisplay mit normal dicken Anwenderfingern bedienen willst, dann landest du eh irgendwann bei dafür geeigneten javascript libs, die man aber gar nicht alle komplett kennen muss, um damit auf basis von pas2js Anwendungen zu erzeugen. ob du ein button im form wie in Delphi selber reinklickst oder die button referenz aus einem html template zur laufzeit verknüpft, um den dann wie sonst auch ein buttonclick ereignis in pascalsprache umzuhängen, ist nach kurzer eingewöhnung ziemlich egal. Die o.a. https firebird sql Schnittstelle kannst du übrigens wie von dir gewünscht mit jeder plattform abgefragt werden, die https zugriffe beherrscht, ganz ohne sonstige Treiber, und eine geeignete pascalunit, die die results dann umwandelt, kannst du auch problemlos so schreiben, das die in pas2js als auch in deine fat client Anwendungen benutzbar ist. Die https firebird sql demo ist übrigens ohne jede security konzipiert, das ist aber einfach zu ergänzen. |
AW: Online/Offline-Software-Konzept für Win, Apple, Android
Wenn's auch was kosten darf könnte auch Interbase eine Option sein, da es davon explizit auch eine IBLite für mobile Geräte gibt.
Ich hab' jetzt aber keine Ahnung, ob man mittels FireDAC von Android / iOS direkt auf einen IB Server irgendwo verbinden kann. Für die meisten DB's gibt's m.W. nämlich keinen Client für mobile Platformen. |
AW: Online/Offline-Software-Konzept für Win, Apple, Android
DevART (UniDAC usw.) unterstützt auch iOS/Android. Ich würde aber von mobilen Geräten nie direkt auf Datenbankserver zugreifen, sondern immer eine Middleware (Rest) verwenden.
![]() |
AW: Online/Offline-Software-Konzept für Win, Apple, Android
TmsWebCore ist schon eine feine Sache, das stimmt.
Wenn dir das ausreicht, ist es sicher OK. Ich bin aber nicht sicher ob damit alle Features der Telefone unterstützt werden, ich denke wohl eher nicht. Mit Fmx, ohne Nutzung besonderer Features, laufen die Apps auch recht stabil. Die Probleme fangen bei 1. und 2. da an wenn man tiefer in die FeatureKiste greifen muss. Wenn es nur einfache DB mit Visualisierung ist, sollte es mit beiden Optionen machbar sein. Aber es ist richtig das man erstmal eine Menge dazulernen muss, was AppStores etc. betrifft. Man muss auch sagen das es schon eine Umstellung von Desktop auf Mobile ist, denn da gelten andere Regeln, und man kann nicht mehr Alles machen was man möchte. Edit: Noch was zu den "Problemen" mit Mobile-Platformen: Du musst nicht glauben das die Android/XCcode Plattformen komplett Problemfrei sind. Ich recherchiere dauernd auch in Android/iOS Foren, und die sind IMHO genauso voll von Problemen. Vieles geht da leichter, maches geht aber auch dort nicht so einfach. Das Delphi da nochmal was obendrauf setzt ist richtig, aber damit kennt man sich wenigstens besser aus. |
AW: Online/Offline-Software-Konzept für Win, Apple, Android
Zitat:
Dann natürlich Größenunterschiede berücksichtigen und natürlich auch oft bauartbedingt funktionale Unterschiede. Am Ende wird bei Bedarf auch eine (unsichtbare,) native Rahmenapp verwendet. Puristen und Fans stört dann wahrscheinlich die Optik, die nicht dem Gerätestandard entspricht. Fachanwender freuen sich dagegen, dass jedes Gerät gleich zu bedienen und navigieren ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz