Releasing Structur on the Salesforce AppExchange marketplace has been a long journey. I (as sole entrepreneur) have spent 2 years developing it as a side project while working full time on Salesforce projects as an architect and dev lead. I garnered many tips, thoughts, experiences, skills that I thought could be useful for anybody considering it.
There is no particular order in this article. It will be updated times to times.
Yes… it’s written everywhere and everyone who released an app will say so. Failing the security review happens. It can also be avoided. …
In part 1 we learned the importance of designing DX packages before creating them. The advantage of adopting a modular architecture seems clear: it’s easier to understand, easier to maintain and easier to update. With this pattern in place, the “lead time” — time for a single line of code to go to production — will decrease.
Every time? No ! Dividing our Salesforce “happy soup” into independent packages is not trivial. We realized that if not done properly, the opposite will happen. Developers will spend more time managing package dependencies than building features.
A meticulous preparation is needed to…
If you have been working with Salesforce for a while you may have been used to deploying your metadata across your environments with change sets or Ant. If it is still viable, Salesforce DX definitely brought a more modern way to build your applications. Among the several powerful tools it provides are Second Generation packages (2GP). For simplicity, I will call them SFDX packages.
If you are thinking of adopting packages it’s likely because your company has multiple Salesforce environments and you either want to share some frameworks (trigger, test etc.) and features or you want to migrate metadata.
Example with Google Calendar API
I wanted to share my experience implementing Salesforce “Named Credentials”. I add the chance to explore this feature and was amazed by how useful it is for Salesforce developers working with Apex Callouts. You will find below an example of their usage calling the Google Calendar API.
For those who don’t know, Named Credentials allow you to define the URL of an endpoint callout and the required authentication in a single configuration.
After specifying the Named Credentials you want to use in your Apex Callout, there is absolutely no need to create an authentication handler…
The way SLDS invites you to use their icons pack has always disappointed me. First, you have to use a complex combination of paths and classes to get the right shape, color and size for your icons. Then, the SVG tag became forbidden with Locker Service and you add to use their
lightning:icon component with which you lose total control and rely on the attributes available for you.
<span class="slds-icon_container slds-icon-utility-announcement" title="Description of icon when needed">
<svg class="slds-icon slds-icon-text-default" aria-hidden="true">
<span class="slds-assistive-text">Description of icon when needed</span>
In the first part of this story, we created a Vue JS application using Webpack and a Progressive Web App template. Then we displayed this application within Salesforce thanks to the Lightning component lightning:container.
Now that our template application is loading fine in Salesforce, we are going to improve it so we can load real data (accounts) from Salesforce.
In order to achieve that we’ll :
1. Build the application locally with :
However, building an entire application on Lightning may still be painful for several reasons :
Globe-trotter and tech-addict before all. Salesforce System and Application Architect. Preparing for Salesforce CTA. Creator of Structur for Salesforce