Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   iOS Datenaustausch mit Mobilgeräten (https://www.delphipraxis.net/177530-datenaustausch-mit-mobilgeraeten.html)

Union 12. Nov 2013 11:13

Datenaustausch mit Mobilgeräten
 
Man kann ja jetzt mit XE5 sehr schöne Datenbasierte Anwendungen für iOS und Android schreiben. Die Frage ist, wie kriege ich die Daten rein und raus ohne dass der Nutzer dafür einen erheblichen Mehraufwand betreiben muß?
  • Datasnap
    Muß der Kunde installieren und Port konfigurieren. Oder man stellt einen zentralen Datasnap-Server zur Verfügung. Dann hat man aber Probleme mit dem Datenschutz und der Skalierbarkeit und muß auch noch ein Web- oder sonstiges Frontend zur Verfügung stellen.
  • E-Mail
    Raus geht notdürftig, indem man z.b. CSV-Daten in den Mail-Text schreibt. Hat man komplexere Strukturen, sieht das aber auch schon wieder ekelhaft aus und der Nutzer kann beim Copy/Paste Fehler machen oder der Mail Client formatiert das unglücklich um. Aber selbst dann, wie kann ich auf iOS/Android Inhalte eine Email lesen? Etwa auch nur über Copy/Paste? Bisher habe ich auch keine Möglichkeit gefunden Dateien mit dem bestehenden FMX Framework als Anhänge zu senden.
  • Dropbox o.ä.
    Keine Ahnung wie das mit Delphi geht
Hat jemand funktionierende Ideen dazu?

mkinzler 12. Nov 2013 11:25

AW: Datenaustausch mit Mobilgeräten
 
Zitat:

Dropbox o.ä.
Keine Ahnung wie das mit Delphi geht
http://tmssoftware.com/site/tmsfmxcloudpack.asp

Union 12. Nov 2013 11:29

AW: Datenaustausch mit Mobilgeräten
 
Danke, werd ich mir mal ansehen. Obwohl ich dann wieder 200 Versionen mehr von der app verkaufen muß...

arnof 12. Nov 2013 12:13

AW: Datenaustausch mit Mobilgeräten
 
Zitat:

Zitat von Union (Beitrag 1235491)
Danke, werd ich mir mal ansehen. Obwohl ich dann wieder 200 Versionen mehr von der app verkaufen muß...

In einem Jahr haste es geschafft :wink: Oder mache halt 200 Apps ....

PS: TMS habe ich da, Dropbox oder GoogelDrive, das geht schon ganz gut.

Union 12. Nov 2013 12:17

AW: Datenaustausch mit Mobilgeräten
 
Zitat:

Zitat von arnof (Beitrag 1235503)
In einem Jahr haste es geschafft :wink: Oder mache halt 200 Apps ....
PS: TMS habe ich da, Dropbox oder GoogelDrive, das geht schon ganz gut.

Woher kennst Du meine Zahlen so genau :shock: Zum Leben bräuchte ich aber 300, alles schon ausgerechnet.

arnof 12. Nov 2013 12:47

AW: Datenaustausch mit Mobilgeräten
 
Zitat:

Zitat von Union (Beitrag 1235507)
Zitat:

Zitat von arnof (Beitrag 1235503)
In einem Jahr haste es geschafft :wink: Oder mache halt 200 Apps ....
PS: TMS habe ich da, Dropbox oder GoogelDrive, das geht schon ganz gut.

Woher kennst Du meine Zahlen so genau :shock: Zum Leben bräuchte ich aber 300, alles schon ausgerechnet.

Hierzu haste doch mal ein Thema aufgemacht, schon vergessen :?:

moe120 12. Nov 2013 15:55

AW: Datenaustausch mit Mobilgeräten
 
ich mach das per SOAP Webservice (primär um eine Datenbank abzufragen und was reinzuschreiben, also erstmal ohne Austausch von Dateien, das sollte aber auch gehen).

Der Kunde braucht dafür nur nen Webserver, geht auch mit Apache. Vorteil dabei ist, dass ein dahinterliegender Datenbankserver in dem dann alles abgelegt/abgefragt werden kann nicht nach aussen geöffnet werden muss da ja lediglich der auf dem Webserver laufende SOAP Webservice Zugriff braucht.

In der App muss dann einmalig die IP des Webservers eingetragen werden das wars.

Union 12. Nov 2013 16:07

AW: Datenaustausch mit Mobilgeräten
 
Es soll eben ohne jede Serverkonfiguration gehen. Ich denke ich werde den Vorschlag mit dem Cloud Pack mal aufgreifen.

hathor 12. Nov 2013 16:40

AW: Datenaustausch mit Mobilgeräten
 
Dafür eignet sich hervorragend eine
WiFi-Festplatte mit App-Steuerung INTENSO MEMORY 2 MOVE, 500 GB
Beschreibung: http://www.pollin.de/shop/downloads/D701801B.PDF

Mavarik 12. Nov 2013 16:57

AW: Datenaustausch mit Mobilgeräten
 
Oder per TCP/IP

Video

Mavarik

Union 12. Nov 2013 17:10

AW: Datenaustausch mit Mobilgeräten
 
Schönes Video. Hatte ich auch überlegt. Aber Du benötigst ja auch ein Serverprogramm. Das sollte nicht sein. Sonst darf ich das Ding für alle möglichen Platformen ebenfalls zur Verfügung stellen. Und wenn ich nicht im selben Netz bin geht das mit dem Broadcast nicht.

Union 12. Nov 2013 17:53

AW: Datenaustausch mit Mobilgeräten
 
Ich habe mir jetzt das CloudPack installiert. Leider erhalte ich beim Start folgende Meldung:

Zitat:

Zitat von XE 5 Update 1
[Window Title]
Fehler

[Content]
Package 'TMSFMXCloudPackPkgDXE5' kann nicht geladen werden. Es enthält die Unit 'IdHashMessageDigest', die auch im Package 'IndyProtocols190' enthalten ist.
Soll dieses Package beim Laden des nächsten Projekts geladen werden?

[Ja] [Nein]

Bedeutet dass, ich kann das ncht zusammen mit den Indys benutzen? Bin noch nicht dazu gekommen zu suchen ob es vielleicht ein define dafür gibt.

Gelöst, es fehlten 3 Indy-requires. Macht jetzt schon einen tollen Eindruck :(

Mavarik 12. Nov 2013 18:01

AW: Datenaustausch mit Mobilgeräten
 
Zitat:

Zitat von Union (Beitrag 1235597)
Schönes Video. Hatte ich auch überlegt. Aber Du benötigst ja auch ein Serverprogramm. Das sollte nicht sein. Sonst darf ich das Ding für alle möglichen Platformen ebenfalls zur Verfügung stellen. Und wenn ich nicht im selben Netz bin geht das mit dem Broadcast nicht.

Richtig! Aber ich darf die Daten meiner App auf keinen Fall ins Internet legen, daher!

Mavarik

Union 12. Nov 2013 22:01

AW: Datenaustausch mit Mobilgeräten
 
Bei mir ist es was anderes. Ich will das jeder sich die App laden kann und sofort Daten erfassen und dann auf beliebigen Geräten importieren und weiterbearbeiten kann. Also mit dem Upload hab ich jetzt schon hingekriegt mit dem CloudPack. Die anderen sind aber entsetzliche Komponenten, die dpk muss man manuell nachbearbeiten und die meisten Demos stürzen alle beim Start ab.

Mavarik 12. Nov 2013 22:21

AW: Datenaustausch mit Mobilgeräten
 
Zitat:

Zitat von Union (Beitrag 1235639)
Bei mir ist es was anderes. Ich will das jeder sich die App laden kann und sofort Daten erfassen und dann auf beliebigen Geräten importieren und weiterbearbeiten kann. Also mit dem Upload hab ich jetzt schon hingekriegt mit dem CloudPack. Die anderen sind aber entsetzliche Komponenten, die dpk muss man manuell nachbearbeiten und die meisten Demos stürzen alle beim Start ab.

TMS?
Nee, oder?

Mavarik

Union 12. Nov 2013 23:16

AW: Datenaustausch mit Mobilgeräten
 
Ja, der macht im FormCreate so ein Xcopy Gedöns. Das schmiert bei mir immer ab. Und Beim Cloupdpack haben die Requires für die Indy's gefehlt und es ließ sich nicht laden. Und die dproj-Dateien der dpk sind Mist, Standard auf Debug gestellt und nicht das richtige Ausgabeverzeichnis. Und bei dem TableView läßt sich der BulbText nicht mit LB binden und, und, und.

RWarnecke 13. Nov 2013 09:06

AW: Datenaustausch mit Mobilgeräten
 
Zitat:

Zitat von Union (Beitrag 1235648)
Ja, der macht im FormCreate so ein Xcopy Gedöns. Das schmiert bei mir immer ab. Und Beim Cloupdpack haben die Requires für die Indy's gefehlt und es ließ sich nicht laden. Und die dproj-Dateien der dpk sind Mist, Standard auf Debug gestellt und nicht das richtige Ausgabeverzeichnis. Und bei dem TableView läßt sich der BulbText nicht mit LB binden und, und, und.

Hast Du das an Bruno schon gemeldet ? Wenn nein, dann schreibe eine kurze Supportmail, meiner Erfahrung nach wird das dann relativ schnell gefixt.

Union 13. Nov 2013 09:08

AW: Datenaustausch mit Mobilgeräten
 
Natürlich. Siehste, das mit dem Kopieren der Dateien habe ich vergessen. Ich verbringe ja inzwischen 25% meines Arbeitstages mit QCs.

zeras 13. Nov 2013 09:38

AW: Datenaustausch mit Mobilgeräten
 
Zitat:

Zitat von Union (Beitrag 1235672)
.... Ich verbringe ja inzwischen 25% meines Arbeitstages mit QCs.

Die anderen werden es dir danken, wenn es dann gleich auf Anhieb funktioniert.:lol:

sx2008 13. Nov 2013 09:52

AW: Datenaustausch mit Mobilgeräten
 
Ein Datenaustausch besteht ja immer aus 2 Teilen: dem Datentransport und dem Datenformat.
Beim Datenformat würde ich XML oder JSON verwenden.
Für sehr einfache Daten reicht auch CSV.
Den Datentransport (kopie über Datenträger, EMail, TCP/IP, FTP, WebDAV,...) kannst du noch offen lassen weil alle Wege möglich sind und sich auch nicht gegenseitig ausschliesen.

An deiner Stelle würde ich mit dem Datenformat beginnen und die Entscheidung für einen Datentransport auf später verschieben wenn du mehr Erfahrung in dem ganzen Thema gesammelt hast.

Union 13. Nov 2013 11:58

AW: Datenaustausch mit Mobilgeräten
 
Zitat:

Zitat von sx2008 (Beitrag 1235676)
An deiner Stelle würde ich mit dem Datenformat beginnen und die Entscheidung für einen Datentransport auf später verschieben wenn du mehr Erfahrung in dem ganzen Thema gesammelt hast.

Die Entscheidung für das Datenformat dieser speziellen app ist bereits getroffen, da wird csv verwendet da dann die Dateien eigentlich von jedem Fremdprogramm eingelesen werden können. Als Transport will ich wirklich möglichst alles abdecken, was auf so einem Mobilgerät standardmäßig eingerichtet ist: Die 3-4 größten Clouddienste sowie E-Mail attachment für den Versand. Für den Emfpang von externen Daten dann nur noch Cloud.

RWarnecke 13. Nov 2013 12:11

AW: Datenaustausch mit Mobilgeräten
 
Warum nimmst Du nicht die iCloud ?

Union 13. Nov 2013 12:23

AW: Datenaustausch mit Mobilgeräten
 
Wie mache ich das konkret?

Union 15. Nov 2013 08:51

AW: Datenaustausch mit Mobilgeräten
 
So, ich habe nun herausgefunden wie das mit der iCloud geht. Basis ist dieser Beitrag von Daniel.

Abweichend von den push-Notifications muß die entitlements wie folgt aussehen, wobei die XXXXXXXXXX mit der Developer-Program-ID und das com.domain.appname durch den CFBundleIdentifier ersetzt werden müssen:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
   <key>application-identifier</key>
   <string>XXXXXXXXXX.com.domain.appname</string>
  <key>com.apple.developer.ubiquity-container-identifiers</key>
  <array>
     <string>XXXXXXXXXX.com.domain.appname</string>
  </array>   
   <key>get-task-allow</key>
   <true/>
</dict>
</plist>
Die Cloud stellt sich dann als Verzeichnis dar, dessen Namen man so ermittelt:
Delphi-Quellcode:
function GetiCloudPath : string;
var
  nsFile: NSFileManager;
  URL: NSURL;
begin
  nsFile := TNSFileManager.Wrap(TNSFileManager.OCClass.defaultManager);
  URL := nsFile.URLForUbiquityContainerIdentifier(nil);
  if (URL <> nil) then
    Result := UTF8ToString(URL.path.UTF8String)
  else
    Result := '';
end;
Man kann Dateien in diesen Pfad einfach hineinkopieren:
Delphi-Quellcode:
procedure SaveToICloud(AFileName);
var
  ACloudPath : string;
begin
  ACloudPath := GetiCloudPath;
  if ACloudPath <> '' then
  begin
    TFile.Copy(AFileName, IncludeTrailingPathDelimiter(ACloudPath)+ExtractFileName(AFileName));
  end;
end;
Der Beweis, dass es funktioniert, kann man auf dem Mac in den iCloud-Einstellungen erbringen. Wenn man dort auf "Verwalten" geht, wird eine so kopierte Datei angezeigt. Auch in den iOS-Einstellungen auf dem Gerät zeigt sich das unter "Speicher & Backup > Speicher verwalten". Dort wird der vergebene app-name (aus dem Bundle-Identifier) angezeigt und der belegte Speicherplatz.

Nachteil, der das (jedenfalls zum Datenaustausch) ziemlich unbrauchbar macht: Ohne Tricks kann man auf diese Dateien nicht zugreifen, da sie app-spezifisch verwaltet werden.

Der Trick ist, eine app auf dem Mac zu starten, die iCloud-Zugriff hat. Dadurch wird ein Dienst gestartet, der den iCloud Ordner in der User-Library einbindet.

Die Daten findet man dann unter
Code:
~/Library/Mobile Documents/XXXXXXXXXX~com~domain~appname
wobei wieder die gleichen Ersetzungen gemacht werden müssen wie bei den Entitlements.

Ziemlich unbrauchbar das Ganze, vor allem für Nicht-Programmierer und Mac-Nutzer.

Mavarik 15. Nov 2013 10:17

AW: Datenaustausch mit Mobilgeräten
 
Zitat:

Zitat von Union (Beitrag 1236029)
Ziemlich unbrauchbar das Ganze, vor allem für Nicht-Programmierer und Mac-Nutzer.

Cool, hab mich gerade eingeloggt um Dir iCloud vor zu schlagen...

Wie sieht es denn unter Windows aus? Die Fotos stehen ja in einem Windowsordner bereit. Wie ist das mit den
"eigenen" Ordnern?

Mavarik

Union 15. Nov 2013 10:23

AW: Datenaustausch mit Mobilgeräten
 
Keine Ahnung, ich habe keine iCloud-Systemsteuerung. Das SkyDrive arbeitet genauso blöd. Aber da kann man wenigstens über ein Webinterface an alle Dateien ran.

Olli73 15. Nov 2013 11:18

AW: Datenaustausch mit Mobilgeräten
 
Zitat:

Zitat von Union (Beitrag 1236058)
Das SkyDrive arbeitet genauso blöd. Aber da kann man wenigstens über ein Webinterface an alle Dateien ran.

Was fehlt denn bei Skydrive?

http://msdn.microsoft.com/de-de/libr.../hh826521.aspx

Union 15. Nov 2013 11:54

AW: Datenaustausch mit Mobilgeräten
 
Wenn ich aus einer app was in Skydrive schicke, zeigt sich das nicht auf meinen PC's die das selbe SkyDrive-Konto haben. Nur über das Webinterface. Egal ob ich die Public mach oder share. Damit ist die Bequemlichkeit dahin.

Olli73 15. Nov 2013 12:00

AW: Datenaustausch mit Mobilgeräten
 
Zitat:

Zitat von Union (Beitrag 1236081)
Wenn ich aus einer app was in Skydrive schicke, zeigt sich das nicht auf meinen PC's die das selbe SkyDrive-Konto haben. Nur über das Webinterface. Egal ob ich die Public mach oder share. Damit ist die Bequemlichkeit dahin.

Wo werden denn die Dateien gespeichert? Ist das evtl. ein spezieller Ordner, der nur mit der App synct (nur mal so ins Blaue)?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz