Datenimport in IOS App

Hallo,

mit IOS Apps habe ich leider keine Erfahrung. Ich habe diverse Sachen gelesen, bin aber unsicher wie ich den Datenimport
realisieren kann. Ich beschreiben einfach mal was ich vor habe, vielleicht habt ihr eine Idee wie das realisiert werden kann.

In einer MySQL Datenbank liegen Daten, die mit der IOS App synchronisiert werden sollen. Beim Start soll die App nachsehen
ob es neue Daten gibt und diese dann importieren.
Der SQL Server liegt im Firmen-Netzt (Zugang teilweise über VPN Tunnel), frei zugänglich oder bei Amazon AWS.

Kann ich mit dem MySQLCommunityPlugin direkt auf den Server zugreifen?
Welche alternativen Möglichkeiten gibt es, sollte das PlugIn nicht funktionieren?

Für ein paar Ratschläge wäre ich dankbar…

Viele Grüße
Andreas

Du solltest das über einen Webservice realisieren.
Es gibt so einige “fertige” Systeme wie beispielsweise firebase oder andere.
Natürlich kannst Du auch ein eigenes System realisieren mit einer Xojo-WebApp oder eine Consolen-App. Ich nutze dafür das Luna-Framework.
Damit werden aus den MySQL-Daten XML oder z.B. Json, diese werden dem Client gesendet und dort verarbeitet.
Grundsätzlich kannst Du beim start der App prüfen ob der Server verfügbar ist und dann syncen.

Danke für die Rückmeldung. Ich müsste ja pro Organisation (sprich Kunde) eine eigene Verbindung haben.
Könnte ich den MySQL Server direkt ansprechen, würde ich die IP angeben und der User könnte auf diesen einen Server zugreifen.
Ist das so auch über die Webservices zu realisieren?

Wie sieht es mit der Geschwindigkeit aus. Die benötigten Daten sind in einer RSD-Datei schon mal 200mB. Ist das ein Problem? XML könnte vielleicht etwas langsam werden…

Wie verhält es sich eigentlich mit der AppleCloud? Wäre das ein Weg um z.B. eine RSD Datei auszutauschen?

Datenbanken über das Internet offen anzusprechen ist schlicht kein sinnvoller weg. Wenn Du dazu etwas wissen möchtest, bietet Google Dir eine Unmenge an Informationen.
Ich verstehe absolut nicht, was Du da tun möchtest, was ist eine Organisation/Kunde? Es gibt hier Clients und Server. Wie Du Deine User für Dich selbst logisch gruppierst ist eine reine Frage der Programmierung. Letztlich sind es alles Clients, diese greifen auf “den” Server zu. Welche Daten sie dabei erhalten ist ebenfalls eine Frage der Programmierung.
Alles was Dir ein Datenbankserver liefern kann, kann Dir auch ein Webservice liefern und deutlich mehr.

Nun sprichst Du plötzlich von Dateien. Dateien solltest Du sowieso schonmal gar nicht in einer Datenbank ablegen. 200MB Dateien erst recht nicht. Dafür sind Dateisysteme entwickelt worden. In der Datenbank wird der Verweis auf die Datei (Pfad & Dateiname) hinterlegt.

XML kann nicht langsam werden. XML ist ein Datenformat. Über die Geschwindigkeit entscheidet die Datenmenge und die Internetanbindung. Bei großen (unkomprimierten) Datenmengen macht es Sinn diese auf dem Server zu komprimieren und am Client zu dekomprimieren. Dazu gibt es automatisierte Verfahren z.B. auf dem Webserver oder Du kannst das ziemlich einfach programmieren.

Ich habe keine Ahnung, was RSD-Dateien sind. bisher wolltest MySQL Datenbankausgaben übertragen.
Aber grundsätzlich ja: Die (Apple) Cloud ist ein gangbarer weg um Dateien zu Syncen. Wenn Du jedoch Datenbanken syncen willst nutze - wie oben beschrieben - einen Datenbank-sync-service wie firebase oder bau dir selbst einen (webservice)

OK, habe mich wohl nicht klar ausgedrückt, hier ein paar Klarstellungen:

Ein Kunden liefert die Daten aus z.B. seinem SAP System. Über ein Programm von mir werden die Daten bearbeitet und modifiziert in den MySQL Server gespeichert. Diese Daten sollen nur den Mitarbeitern dieses Kunden zur Verfügung stehen.
Andere Kunden betreiben ihre eigenen MySQL um haben ihre eigenen Mitarbeiter.
Es gibt also nicht “den” Server sondern viele Server. Diese stehen in ganz verschiedenen Netzwerkumgebungen. Allerdings spricht ein User immer nur mit einem Server.

Nun sprichst Du plötzlich von Dateien

Hier ging es nur darum die Datenmenge zu beschreiben, die Synchronisiert werden soll. Ich habe nicht davon gesprochen, eine Datei zu synchronisieren!

XML kann nicht langsam werden. XML ist ein Datenformat.

Also diese Belehrung hättest du dir sparen können! Aber meine Erfahrung hat gezeigt, wenn ich ein 200MB großes XML file verarbeite, ist die performance nicht sehr hoch.

Ich habe keine Ahnung, was RSD-Dateien sind. bisher wolltest MySQL Datenbankausgaben übertragen.

RSD ist die Standardendung für eine SQLite Datenbank! Die Nachfrage nach der Apple Cloud war als Alternative Frage zu verstehen und nicht ob ich MySQL mit der Apple Cloud verwenden kann.