2016-04-21 10 views
13

Ho un servizio GraphQL che devo colpire da un'app per iOS e sto cercando di verificare quali sono le mie opzioni per le librerie client orientate a questo scopo. La mia impressione iniziale è che non ci sono molte buone opzioni là fuori, e sono un po 'sorpreso da questo dato che l'app mobile di Facebook è sempre citata tra il materiale motivazionale per GraphQL stesso.Librerie client GraphQL per iOS

Quello che segue è la mia attuale comprensione delle mie opzioni. Le mie domande sono: quali sono le opzioni della libreria client che trascuro? Sono anche curioso di immaginare la libreria client GraphQL ideale per iOS, come potrebbe essere?

  1. Appena Alamofire, AFNetworking o NSURLSession direttamente, passando amorevolmente fatti a mano Query Documents e spelunking attraverso un Dictionary rappresenta il JSON risultante, o
  2. Chester
  3. GraphQLicious
  4. Swift-GraphQL
+0

Stavo pensando di utilizzare un client JavaScript GraphQL , come Apollo http: //docs.apollostack.com/apollo-client/ implementa alcune funzioni JS per gestire le chiamate di rete, restituire i risultati o gli errori, ecc. raggrupparlo con l'app ed eseguirlo utilizzando JavaScriptCore, ecco il buon tutorial https: //www.raywenderlich.com/124075/javascriptcore-tutorial –

+0

UPDATE: appena scoperto che il JavaScript in esecuzione nel motore JavaScriptCore non può accedere alla rete, non esiste un'implementazione della richiesta http e il suo ECMAScript puro, quindi la parte di rete dovrebbe essere codice nativo o (odio dire questo) JS in esecuzione in un WebView nascosto ... Vorrei che ci fossero implementazioni mature del client GraphQL in Swift, se ne hai trovato uno per favore fammi sapere ... Saluti. –

+2

Ho saputo di questo solo stamattina: https://github.com/apollostack/apollo-ios – pohl

risposta

7

Non vorrei creare query a mano, e penso che sia Chester che GraphQLicious w potrebbe andare bene per te Se dovessi immaginare la libreria perfetta, non dovrebbe solo creare query, ma anche analizzare il risultato in oggetti Swift. Questo, come forse sapete dalle librerie di analisi JSON, non è un compito piccolo ed è per questo che la maggior parte delle librerie GraphQL-Builder non lo fanno.

Disclosure: io sono uno dei ragazzi dietro GraphQLicious

7

Questa domanda è stato chiesto molto tempo fa - Penso che oggi la risposta standard a questa sarà quello di utilizzare Apollo Client.

Si utilizza un'API simile come l'Apollo del client sul web e ha un paio di caratteristiche davvero belle:

  • tipo statico generazione basate su GraphQL query & mutazioni
  • normalizzato di cache
  • Query guardare & aggiornamenti automatici UI
  • aggiornamenti Memorizzazione manuale

Non ha ancora raggiunto 1,0 ma nel complesso è un progetto super promettente!

Qui ci sono alcune risorse che dovrebbero aiutarti a iniziare: