+ Start a Discussion

Native iOS app (api link) vs building on top of sfdc mobile

Hi, we're looking to build a native application on iOS that links to sfdc to centralize all the data, do analytics, etc...


However, I'm not sure whether we should build the native app first and then link it to sfdc through api.  The advantage here is that I have complete control over the app and my own company branding on top of it, but negative is losing a lot of the effort sfdc has put into the sfdc mobile app such as developing all the scripts, managing the interface mapping the 2 systems together, dashboards, report, etc.. that's all already there and we'd need to build from scratch.


The other alternative is buidling visualforce pages on top of the current sfdc mobile but there seems to be some offline limitations there, while also not being able to control certain parts of the app like camera access and other iphone functions, and most importantly the customer has to download "Salesforcce Mobile" from appstore which just doesn't make a lot of sense if it's our own custom built application.


Both sides have obvious beneifts and drawbacks and I was hoping somebody here has some experience or guidance in this area which would be very helpful.  I can see there are some tracks at Dreamforce that address this but I was hoping to get some more clarity before then. Thanks.




anybody have any suggestions please?

Pat McQueenPat McQueen

I am not sure I really understand the question.    When thinking about mobile there are two dimensions to consider:


The first is where and when is it used only when connected or does it need to be used offline.  If it is only when connected you can use VisualForce and build some mobile friendly pages.  These pages can launch from Salesforce.com mobile or from the device browser.  If you use the device browser you can set an icon on the desktop for the application.


If you need offline then you have some other decisions.  Can the application fit within the current mobile offering?  You can sync custom objects, etc. but you have the basic mobile interface.  VisualForce can be used to extend mobile only when connected.   If your use case does not fit into Salesforce Mobile then you have another dimension to consider.


The second dimension is technology.  On iOS you can either build in Objective C.  If you do this you are using the Salesforce.com API.  (REST or SOAP)  There is a toolkit to help you get started.  http://wiki.developerforce.com/index.php/Force.com_Toolkit_for_iOS  The other choice is to use an HTML5 application built on top of VisualForce.  This is way more cutting edge and perhaps could be a better cross platform.  You can still get an icon on the screen and some local storage to make the application faster. There are a bunch of resources on developer.force.com ... Here is an example. 



Other than sharing what is possible there is not much more I can do ... You need to explain your use case.




thanks for response.


well pretty much looking to build a service type application where reps using gps can find closest store to them, take pictures of store, new orders, etc. and have it all synced on back-end to salesforce.

ideally i could take the salesforce mobile native app and build functions on top of it that integrate iphone hardware features and be able to rebrand the application and submit to appstore, but seems like this is unlikely.


if using the second dimension you talked about, seems to have both positives and negatives with native app vs web app.  with objective c, seems like performance will be much faster and integrates easily with camera/gps.  however, scaling the application and making changes would require a lot of work and new submissions to the appstore everytime which would be a big pain.

html5 apps i've seen so far just seem much more sluggish and don't integrate nicely with camera.  however, its cross platform as you mentioned, more scalable and we can control/push changes from our end. people have mentioned including html5 sections within a native app to get best of both worlds.


i just wanted to see if there was any more guidance on how to move forward though the links you provided were great start.

Pat McQueenPat McQueen

Have you seen the service max application on the iPad?  It is pretty close.  In my Humble Opinion I would go HTML5 for a bunch of reasons.  Here is another post which shows how to do location aware with HTML5 and Salesforce.com.




You can avoid the submissions to the appstore and do a "corporate deployment"  of your applications without the app store.  http://www.apple.com/iphone/business/integration/


Not that I am pushing against HTML5 ... I think that either works.  HTML5 is bleeding edge.  Do you ever need cross device?  If so HTML5 would be closer.