On Friday, July 21, 2017 at 11:20:15 PM UTC-7, siva subrahmanyam wrote:
>
> Hi, 
> I want build an Rails API which serves as backend for a mobile app. Since 
> the mobile app will be used in offline mode. Hence I want data updates 
> needs to be synced between mobile and web app. What would be the best 
> possible solution for this kind problems?  
>

The trickiest part of this type of architecture is handling problems like 
multiple updates to the same object from different sources. Since it sounds 
like you are not going to have much of that -- but it does need to be 
handled in some way if it can happen at all!

Google's Protobuf stuff is pretty good for packaging data in a cross 
language portable way and is much faster than JSON in RoR. But if your 
volume of data and connections is reasonable, then JSON is pretty easy to 
deal with in Ruby, Java and I assume Swift.

Using simple object APIs in RoR is what we have done in the past. If you 
don't use some external service, you usually end up creating a simple 
protocol for the phones to use to communicate with the back end.

Communications from the server to the phone can be done in an easy way by 
having the mobile device periodically check for updates, at which time the 
server can tell it what messages it needs. The more complicated way is to 
use the platform notification system (On Android it is Google Cloud 
Messaging) to tell the device to check-in with the server. The important 
point is that these push notification systems don't typically guarantee 
delivery. Google for example says it may deliver 1 message even if you send 
10. So that means you really only want to use it to poke the app into 
checking in with the server.

Regards,
Brendon.
 

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/9a12d666-30f7-476b-95fb-170e7bcb129a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to