From a purely technical perspective, the PWA definition has not changed. A few variations on the theme have evolved in the past few years, but the core concepts remain the same. Unfortunately, the landscape of support across platforms and browsers is varied. Google and Microsoft have embraced Steve Jobs’s vision the most, supporting PWAs more fully, and defining new technical specs for future functionality. Ironically Apple, however, has lagged behind. While PWA’s are supported natively on iOS devices, they have limited access to the device itself, and are prevented from running processes in the background.
There are many accomplishments worth celebrating that clients love about Serenity. The rollout of our new Account Call Sequences has been very positive, and customers are already seeing the value of implementing more strategic, guided selling at the Account and Segment level. Our use of newer Salesforce APIs have allowed us to replicate and cache Salesforce filtered listviews allowing for simple client additions of customized lists of almost any kind. Clients can also take advantage of other administrative components such as Custom Metadata and Compact Layouts to provide a more tailored experience for their users.
Our mobile button framework is now able to dynamically add navigation items to the “Waffle Menu” or as a custom button to launch third party apps or custom additions to Serenity. Most powerfully, custom web apps and Visualforce pages can be embedded into the Serenity user interface, as well as defined as a Call Sequence Step allowing for nearly unlimited customization on a client specific basis. Users also love the ability to start using the app right away rather than waiting for a full sync.
And on the topic of sync, one of the greatest challenges has been the syncing of data and files from Salesforce, to allow Serenity to work seamlessly when a device loses its connection to the internet. Our legacy mobile app required users to wait to use the app until after a full sync of data completed. With Serenity, we have taken the approach of giving the user access to the app immediately, and syncing data in the background, while they use the app. The limitation on iOS devices to prevent PWA apps from running in the background has created a challenge where the sync is paused, when the app is not open on the screen. Android and Chrome allow this background activity to continue which is helpful. While we can’t change what Apple forces on us, we have structured the sync process to pause and resume, so the sync doesn’t lose its place between sessions.
Another challenge we’ve faced was with Salesforce API limitations. Depending on the customer, there is the potential for gigabytes of data needing to be transferred to Serenity, so users have access to that data while offline, as well as to improve performance when the device has limited bandwidth. As you can imagine, syncing all that data requires thousands of API calls. Our initial sync process was encountering API limits, set by Salesforce, for customers with large amounts of data. In the Spring 20 release, Salesforce took the step of removing most of its daily API call limits, which helped. We also took time to restructure our sync process, and reduced the number of API calls we needed by 34%. We have plans to reduce that number even further.
The final challenge from a PWA perspective is the support of “Content” in all its various forms. Since we migrated customers to the Salesforce Lightning Platform, we have adopted their Content architecture to support Account photos, as well as the more traditional sell sheets, recipes, presentations, shelf talkers and even videos. Users of GreatVines Mobile have become accustomed to having these “Files” available offline and linked to their sales objectives.
The Salesforce Mobile SDK, on which our first mobile application was built, had decent support for this through its native “container” model. Unfortunately with PWAs (and Safari/iOS in particular) there are arbitrary limits and complex formulas on file and data storage that we are unable to see or manage proactively from within our codebase. Salesforce has also limited the speed at which files can be downloaded, causing the time necessary to download file data to become excessive. As a result, we have had to confine our offline Content use case to potentially dozens of files, as opposed to the hundreds that many customers wish to make available offline.
Over the past 12 months we have fixed 164 bugs, and completed 75 new features aimed at making improvements to core functionality of Serenity. While we have taken this past year to ensure our new mobile application is strong enough and robust enough to support the demands of our customers, we are still keeping our eyes on the horizon. Our backlog of new features and improvements to existing features stretches out 12 months in the future. Our roadmap of major themes we want to deliver for our customers looks out even further.