Slide 1

Slide 1 text

Spring 24 for Developers Keir Bowden, CTO @bob_buzzard www.linkedin.com/in/keirbowden Keir Bowden, CTO @bob_buzzard www.linkedin.com/in/keirbowden

Slide 2

Slide 2 text

Ant Migration Tool Retiring • Will continue to work • Won't receive updates • Not supported • Use the Salesforce CLI 31/01/2024 2

Slide 3

Slide 3 text

Lightning App Builder – Dynamic Forms Add related object fields • Max two levels • Not polymorphic relationships Set field visibility by device Auto-enabled for mobile in new orgs See fields object relationship/API name 31/01/2024 3

Slide 4

Slide 4 text

Lightning Web Components Reminder - component level versioning • Component behaviour matches API version in config • 58.0 or earlier = 58.0 • Later than org API = current release Empty comment nodes replace empty text nodes • E.g. scoped slots, lwc:if • Check and update UI tests 31/01/2024 4 Welcome "Welcome" "Welcome"

Slide 5

Slide 5 text

Lightning Web Components Remove decorators from non-LightningElement classes • Will error in API 60.0+ LWC Workspace API GA • Manage tabs/subtabs in Lightning Console app • Requires Lightning Web Security Lightning Record Picker component GA • Search/retrieve up to 100 records • Select records for further action 31/01/2024 5

Slide 6

Slide 6 text

Null Coalescing Operator ?? Evaluates left hand operand • If null, evaluates right hand operand • Operands must be the same type Not supported in SOQL bind expressions 31/01/2024 6

Slide 7

Slide 7 text

Null Coalescing Operator 31/01/2024 7

Slide 8

Slide 8 text

Apex UUID class • Version 4 Universally Unique IDentifier • Cryptographically strong pseudo-random number generator • 32 character hexadecimal string • Collisions highly unlikely • Ideal where uniqueness + unpredictability are required • No metadata so cannot identify context 31/01/2024 8

Slide 9

Slide 9 text

LWC Mixed Shadow Mode Custom components default render in synthetic shadow mode • Polyfill of shadow DOM that works cross browser • Most modern browsers now support native shadow mode Improves speed - "native components are up to 50% faster" Reduce LWC side by half – eventually, when synthetic polyfill removed Set shadowSupportMode to 'native' to force native shadow mode • All child components use native shadow mode too • May break if child doesn't support native • Don't use with base Lightning components 31/01/2024 9

Slide 10

Slide 10 text

Scratch Org Snapshots Point in time copy of scratch org Includes: • Installed Packages • Metadata • Data Enable in Dev Hub CLI commands to manage snapshots Expire after 30 days 31/01/2024 10 bobbuzz.me.uk/SnapScratch

Slide 11

Slide 11 text

Flow Repeater component User adds copies of form Enter multiple record instances in single flow Entered details stored in collection • Iterate to process 31/01/2024 11

Slide 12

Slide 12 text

Zip in Apex Developer Preview New Compression namespace Create compressed zip files • Specify compression method and level Extract files from compressed zip file • Without expanding entire file 31/01/2024 12

Slide 13

Slide 13 text

Zip in Apex 31/01/2024 13

Slide 14

Slide 14 text

Evaluate Dynamic Formulas in Apex Developer Preview New FormulaEval namespace Recalculate formula fields without DML • Build formula using FormulaBuilder • Evaluate with record using FormulaInstance Access global variables Treat numerics as null or zero 31/01/2024 14

Slide 15

Slide 15 text

Evaluate Dynamic Formulas in Apex 31/01/2024 15

Slide 16

Slide 16 text

31/01/2024 16 Wednesday, 7th February 4 - 5 pm www2.brightgen.com/spring24 Spring '24 Release Webinar

Slide 17

Slide 17 text

Questions?