I want to build a location based app, so naturally I am going to write my app using an existing API. But I am not sure what the pros/cons of developing on top of Foursquare (or Gowalla) vs Facebook Places.
Note: this is not intended as a political debate "which service is cooler/better/sexier/whatever" but a true concern as to the pros and cons o开发者_如何学JAVAf using the facebook platform vs the others.
Edit for additional info: the app will basically want to add a "hook" that runs some of my code when a user checks in somewhere
Neither yet both. What you want to do here is make your application understand the concept of location-based social APIs. Then, at appropriate places, make calls upon the external services and translate them into your app's data structure. Wins here are:
a) You can work with more services. Like the ones that don't exist yet.
b) The core of your app does not need to care when facebook or foursquare change APIs. Just the bits that talk directly to them.
c) Much easier to stand up and get tested as you can build out the internals then turn around and face the externals.
Now, it might seem that you are writing more code to get there, but that will even out really, really quickly as your codebase evolves.
Advancement in cloud-based platforms-as-a-service make building location based apps much simpler these days. You don't have to rely on third party APIs or write backend code anymore. Cloud platforms like Cocoafish, kinvey and Parse integrate with your app using SDKs for whatever device you're building on, and then allow you to drop in whichever APIs you need in a sort of auto-generated backend server in the cloud.
All offer geolocation APIs for Facebook integration and integration of a gazillion other social networking platforms. It's real easy to set up and you don't necessarily need any backend coding experience.
精彩评论