Skicka data från server till iPhone

Permalänk
Medlem

Skicka data från server till iPhone

Jag har en app och ska ha en server som skickar data med i protobuf format.

Någon som har förslag på hur jag ska begära och skicka data från och till appen i Swift?

På servern tänker jag att jag kan ha PHP t.ex.

Är det bara att använda get och post eller finns det någon annan elegant lösning?

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10

Permalänk
Medlem

Det lär funka.

Om det blir en elegant lösning eller inte och om det uppfyller andra icke-funktionella krav eller inte beror nog på vad lösningen förväntas göra.

Grovt skulle jag säga att man väljer HTTP(S) om den resursbaserade modellen passar med det man vill göra. HTTP plus människoläsbara format som XML, JSON eller HTML är relativt lätt-debuggat.

Har man valt ett binärformat som protobuf så vet man antagligen varför och då kan anledningen vara effektivitet, varpå man kanske även bör börja fundera på websockets eller (om man mot förmodan inte behöver kryptering) råa TCP- eller UDP-sockets. Från iPhone är antagligen websockets det rimliga alternativet och då får man ta ställning till lösningens övriga krav för att göra valet.

Permalänk
Medlem

När du säger skicka data till appen, tänker du då att appen frågar om data och sedan får den tillbaka eller att servern på egen hand skickar data till appen?
Om det är telefonen som begär data från serven så är det inga problem och du kan köra POST/GET mot serven och få tillbaka datan.
Om du tänker att serven ska skicka data till appen så är det lite krångligare och tror du får titta på "Cloud Messaging" lösningar där du skickar ett meddelande till telefonen om att det finns data att hämta på servern.

/Viktor

Permalänk
Medlem
Skrivet av KAD:

Det lär funka.

Om det blir en elegant lösning eller inte och om det uppfyller andra icke-funktionella krav eller inte beror nog på vad lösningen förväntas göra.

Grovt skulle jag säga att man väljer HTTP(S) om den resursbaserade modellen passar med det man vill göra. HTTP plus människoläsbara format som XML, JSON eller HTML är relativt lätt-debuggat.

Har man valt ett binärformat som protobuf så vet man antagligen varför och då kan anledningen vara effektivitet, varpå man kanske även bör börja fundera på websockets eller (om man mot förmodan inte behöver kryptering) råa TCP- eller UDP-sockets. Från iPhone är antagligen websockets det rimliga alternativet och då får man ta ställning till lösningens övriga krav för att göra valet.

Anledningen till att jag valt Protobuf är att jag ska använda ett API från kollektivtrafiken och vill använda realtid. För det använder de Protobuf som ska vara snabbare.

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10

Permalänk
Medlem
Skrivet av vg132:

När du säger skicka data till appen, tänker du då att appen frågar om data och sedan får den tillbaka eller att servern på egen hand skickar data till appen?
Om det är telefonen som begär data från serven så är det inga problem och du kan köra POST/GET mot serven och få tillbaka datan.
Om du tänker att serven ska skicka data till appen så är det lite krångligare och tror du får titta på "Cloud Messaging" lösningar där du skickar ett meddelande till telefonen om att det finns data att hämta på servern.

/Viktor

Det är en app där man söker resor. Sedan ska appen hämta realtidinformation från servern. På servern tänkte jag använda kanske PHP som då hämtar datan och skickar till appen.

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10

Permalänk
Medlem

Då ska det nog fundera bra.

Tänk på att om du har en server mellan datan och telefonen så kan du översätta på servern till t.ex json om det är enklare att jobba med på telefonen.

/Viktor

Permalänk
Medlem
Skrivet av vg132:

Då ska det nog fundera bra.

Tänk på att om du har en server mellan datan och telefonen så kan du översätta på servern till t.ex json om det är enklare att jobba med på telefonen.

/Viktor

Ok, bra förslag. Tack!

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10