SFDC Mobile App development challenges
Reliable and Agile

Monthly Archives: February 2017

SFDC Mobile App development challenges

Recently we have started exploring Sales Force Platform and mobility solutions that we can build for it. The best part is sales force offers a ready to use cloud environment out of box so that developers can start using it and experimenting with it. Thanks to sales force.

@iConnect we have developed a lot of expertise  in building cross platform mobile apps using phonegap / apache cordova platform. We use various UI frameworks with Angular JS. We use Ionic 1 & 2, Mobile angular UI etc and have been successfully building production quality apps which works excellent on android and ios and windows platform as well.

As we started exploring SFDC platform we decided to build a simple app which maintains a customer list. It includes offline functionality with sync, so that even if the usr is out of coverage area or has a poor connectivity, can still work with app. He can add / edit customer data stored for offline use and later sync it with the server.

SFDC offers a cordova plugin which includes smart store, smart sync and authentication functions. We were very excited to see it and thought that our job of creating such an app would become very easy. But to our astonishment, we came across countless hurdles to get this plugin working. We tried version 5.0.0 also 4.3.1 and a lot of permutation and combinations with code. But alas we could not get it working for android.

There is plenty of documentation on web for all the problems we searched. Most of it i think is out dated and there is no easy way to find out. Some of the old tips did work to move us a bit forward and most of the tricks did not. We were so disappointed to find out that such a great platform has so many problems with its android plugin. We tried to seek some help from google+ channel but it did not help.

We then decided to try the ios version of the plugin, and were delighted that it worked out of box for version 4.3.1. But latest version 5.0.0 was still not working for us. We then tried the features of the plugin and after a lot of effort could implement auth, smart store and sync from server to mobile, but from mobile to server could not be achieved. Again we had a lot of frustration as we tried a number of things but all in vain. At least we have an ios working app with only 1 missing feature with version 4.3.1 using forceios script of the plugin.

We could not have given up at that. So we decided to build a cordova app without using SFDC plugin, just consuming SFDC REST APIs. We have had a lot of experience building offline first mobile apps and sync etc which we put to use here. And within a few days we had a working version of the app with custom code. Although we had a lot of issues with the SFDC cordova plugin working with SFDC REST apis was very easy and we did not face any hurdle.

We are trying to build more expertise on SFDC mobile platform and hope to do some challenging work with it.

thanks for reading.

Communication Plugin for GRAILS

We @iconnect use Grails framework extensively and are constantly improving the way we work with grails.Grails supports component based architecture in the form of Plugins. This Post is about a Grails Plugin we have built internally called communication plugin.

Grails already has different plugins for communication purposes such as email, sms, push notifications, etc. We have build an abstraction on top of these in the form of communication plugin. It supports grails >= 3.1 and above. This plugin provides a common interface for creating notifications with a type. types can be SMS,EMAIL,PUSH etc. For each type we have supplied an implementation. The project does not need to worry about the implementation , it just creates a notification via given service and supply the correct type.


New Types and their implementation can be added as required. For SMS we have used SMS Gupshups apis in the implementation. Email uses any SMTP gateway and its properties can be supplied through by the project. We have Push notifications support as well and 2 implementations for it are GCM & Firebase both google variants.

Another goal of the plugin is to make sending such notifications asynchronously and avoid any wait time for the clients of the plugin. A job runs to execute all the newly saved notifications and can keep track of all sent/erred ones. Bulk notifications can also be sent using this job – upto 200 push notifications can be sent at a time for firebase & GCM. Methods are also available to view notification history between specific dates in the Service provided in plugin.