构建移动应用程序:首先离线,最后离线!

“由于互联网连接可能不稳定或不存在,因此您需要首先考虑离线:将您的应用编写为没有互联网连接。 一旦您的应用程序脱机工作,请添加您的应用程序所需的任何网络功能,以使其在联机时能做更多。” [来源:脱机优先]

但这很痛苦,对吧? 脱机代码,在线代码,对网络连接的更改做出反应,解决数据冲突,yadda,yadda。 大量的时间和低级的代码花费在移动数据上。

但是,我们必须正确地做。 精心设计的移动应用程序可让用户完成工作,而不会抱怨互联网连接的不足或质量。

在我的工作中,我看到了与Salesforce平台集成的自定义移动应用程序的许多有趣用例,而脱机需求通常最难满足。 因此,我对试用Realm的新对象服务器(其移动平台的后端)非常感兴趣:

“ Realm Mobile Platform在服务器和设备之间提供自动和无缝的实时数据同步以及强大的事件处理功能。 您无需再考虑网络代码。 Realm Mobile数据库是跨平台的,同时支持iOS和Android,并且Realm Object Server可以在您的服务器或您喜欢的云上运行。” [来源:Realm Mobile Platform]

听起来很有希望,所以我着手研究如何将Realm Object Server与Salesforce集成。 更具体地说,我想看看是否可以监视通过Realm的示例移动应用程序“ Realm Tasks”进行的数据更改,然后相应地创建和更新Salesforce任务记录。

而且我在短短几分钟内就做到了(好吧,这还不包括阅读Realm文档以及了解如何设置自定义事件监控所需的时间)。

领域对象服务器太棒了! 我在移动设备上修改了数据,该数据几乎立即显示在Realm Object Server中。 我使设备脱机,更新了设备和服务器上的数据,然后看着我重新打开WiFi后毫不费力地同步了本地数据库。 Realm Object Server忠实地通知了我的事件监视器,该事件监视器触发了对Salesforce的API调用。 根本没有用于处理数据同步的代码,只有一个相对简单的Javascript文件即可监视事件并更新Salesforce。 请参阅GitHub上的源代码。