Naturalmente ciò dipende molto dal lavoro reale che deve essere fatto. Ma supponiamo che tu abbia bisogno di sapere se sei in Manhattan
e hai domande su google maps per la posizione corrente.
Da Google Maps credo sia possibile ottenere anche il nome della città, ma supponendo che abbiamo solo GPS
di coordinate, avremmo bisogno di effettuare una chiamata API aggiuntiva o implementare una logica al telefono. In questo caso vuoi che il telefono gestisca tutte le chiamate API, questa chiamata API può essere una chiamata alla tua implementazione REST
, in tal caso gestisci la query am I in Manhattan? sul server lato. Ma se è abbastanza facile gestire questo lavoro al telefono, con questo esempio, dovresti farlo al telefono.
Se hai bisogno di lavorare dopo aver ricevuto i dati da un'API sul telefono, è meglio farlo su un thread separato (che hai comunque durante la richiesta internet). Dopo aver completamente elaborato i dati sul telefono è possibile aggiornare l'interfaccia utente di conseguenza.
Al giorno d'oggi è meglio dare tutto il lavoro al telefono e utilizzare il server solo per la comunicazione e la sincronizzazione dei dati. Ciò mantiene il carico del server al minimo e distribuisce il lavoro a tutti i dispositivi, rendendo la configurazione estremamente scalabile.
Se chiedi al tuo server di fare la maggior parte del lavoro e hai qualche milione di utenti telefonici, ucciderai la larghezza di banda.
In breve: Fintanto che il lavoro è raddoppiato in un tempo ragionevole sul dispositivo, fallo sul dispositivo. Se è troppo complesso, memoria o tempo, creare una API REST ed eseguirla sul server.