Join us for a journey into the tech universe as we explore the ins and outs of mobile app development with Salesforce’s own Ashwin Nair and Galen Lewis. Listen in as Ashwin recounts his evolution from a sports game enthusiast to a product manager for Mobile Platform Experience, and Galen shares his beginnings with Scratch to his current role as an associate product manager for Mobile SDK.
This episode sheds light on the latest advancements in mobile developer tooling. Ashwin walks us through the exciting new features, such as the enhanced LWC offline test harness and the debut of the mobile offline onboarding wizard tool, alongside the Nimbus plugins that promise to revolutionize access to native device functionalities.
Tune in for an engaging blend of tech talk and personal anecdotes that underscore the vibrant community of developers and enthusiasts alike.
Show Highlights:
- Introduction of new features in Salesforce’s Spring ’24 release, including the LWC offline test harness and mobile offline onboarding wizard tool.
- Discussion on Nimbus plugins for Salesforce mobile development, enabling integration of native device functionalities like document scanning, NFC, and biometrics.
- The capabilities and future updates of Salesforce’s Mobile SDK, including native login, one-time passwords, and on-device AI functionality.
- The importance of offline capabilities in mobile development for handling scenarios with limited network connectivity.
Links:
- Ashwin’s LinkedIn: https://www.linkedin.com/in/ashwin-nair/
- Test Harness Developer Documentation: https://developer.salesforce.com/docs/atlas.en-us.mobile_offline.meta/mobile_offline/dx_harness_app_ux_home.htm
- Introducing the Salesforce Offline App Onboarding Wizard: https://developer.salesforce.com/blogs/2023/07/introducing-the-salesforce-offline-app-onboarding-wizard
- Developer Docs: https://developer.salesforce.com/docs/atlas.en-us.248.0.mobile_offline.meta/mobile_offline/dx_onboard_wizard.htm
- Nimbus Plugins: https://developer.salesforce.com/docs/atlas.en-us.mobile_offline.meta/mobile_offline/capabilities.htm
- Galen’s LinkedIn: https://www.linkedin.com/in/galenlewis/
- Enabling Biometric Authentication in Mobile SDK Apps: https://www.youtube.com/watch?v=_WPW870GWdk
- Mobile SDK Developer Guide: https://developer.salesforce.com/docs/atlas.en-us.noversion.mobile_sdk.meta/mobile_sdk/preface_intro.htm
- What’s New in Mobile SDK 11.0 and 11.1?: https://developer.salesforce.com/blogs/2023/12/whats-new-in-mobile-sdk-11-0-and-11-1
Episode Transcript
Ashwin Nair:
I found an interest in mobile applications and web applications, just building things from scratch. And I started taking a couple of courses and things during my school and college time, and I found a real kind of affinity for building mobile applications for different things, be it sports, games, things like that. And it kind of piqued my interest and found my way into B2B SaaS-based experiences where I kind of carved a niche, I guess I could say, for myself right now.
Julián Duque:
And that’s Ashwin Nair, product manager for Mobile Platform Experience, and he’s joined by Galen Lewis, associate product manager for Mobile SDK here at Salesforce.
And I’m Julián Duque, your host for the Salesforce Developer podcast, and here in the podcast, which are stories and insights from developers, for developers. Today, we are going to talk with Ashwin and Galen about mobile platform tooling, but before, we’ll start just as we left off, and we often do, with their early years.
Ashwin Nair:
Yeah, so my first experience with the computer is playing computer games. Growing up I would come back from school, hop on the computer and sit down and play games like Zelda, try to beat the different levels, try to level up and win a bunch of games, so that would be, what I’d say, is my first experience with the computer.
Julián Duque:
Nice, that’s great. And what was next for you, how you started with, let’s say, building applications or getting into more technical stuff?
Ashwin Nair:
Yeah, so I’d say that is something that I’ve come across over the years as I grew up. I found an interest in mobile applications and web applications just building things from scratch.
And I started taking a couple of courses and things during my school and college time, and I found a real affinity for building mobile applications for different things, be it sports, games, things like that and it kind of piqued my interest and found my way into B2B SaaS based experiences where I kind of carved a niche, I guess I could say, for myself right now.
Julián Duque:
Nice. I’m a telecommunications engineer and when I started building software, my first thought was, “Okay, I want to mix those two worlds,” And my first interest was mobile applications, but this was back in the day of Blackberry apps and Java mobile applications, very old stuff, not the modern thing that we have today.
Ashwin Nair:
Nice, nice. Awesome, yeah, speaking of, I actually also have a prior software engineering background, so I was prior a full stack software engineer on the website and kind of worked my way from web into mobile, so building applications in that realm definitely helped me build up the experience and loving for the space that I’m in right now.
Julián Duque:
Nice. And Galen, what about you? What is your first memory or experience with a computer?
Galen Lewis:
Yeah, so, for me, I’m from Boston and when I was seven years old, MIT came out with this programming language called Scratch.
Julián Duque:
Oh, yes.
Galen Lewis:
It’s not even a real programming language, it’s visual, so you don’t really type much, you just drag and drop different if statements and components and things like that, but it introduces you to all the basic concepts like variables and conditional logic and stuff like that.
So, I remember playing around with that on my computer at home when I was seven, eight, nine years old, and that was my first introduction to anything related to software development.
Julián Duque:
That’s beautiful. I used Scratch a of couple times to teach programming to kids. It’s a wonderful, wonderful tool.
Galen Lewis:
Yeah, it’s great and it’s free to use.
Julián Duque:
Nice. And then after dealing with Scratch and getting the logic, you decided to jump into studying a technical career or what was your progression?
Galen Lewis:
Yeah, it wasn’t that direct. That was when I was a little kid and I actually grew up playing soccer, so I had my Scratch phase around seven, eight, nine years old, and from 10 to mid-college, I stopped thinking about it and was really focused on soccer, and for a period of my life, all I wanted to do was be a professional soccer player.
And then the summer after my sophomore year of college, I did an internship at a software startup based out of Boston, and it was a sales internship at this AI startup and my manager basically told me, “You do this sales work, you meet this quota, and in the remainder of your time, you can do whatever you want at the company.”
And so, in my remainder time I went and talked with a lot of the software engineers, and that was when they kind of introduced me to real software development, not just Scratch, and they helped me build a little website, a very basic app, and that kind of re-sparked my interest in computer science.
Julián Duque:
Nice, and here you are. Fantastic. It’s always good to hear how we started, so we have a great picture and motivate folks to, of course, pursue these type of careers.
Now, let’s switch gears and get into the present and we just published an episode talking about the new things that comes with the Spring ’24 release, especially for developers. But one thing we didn’t cover in that episode was mobile developer tooling.
So, gladly we have Ashwin here, which is the product manager for the Mobile Platform Experience, so Ashwin, tell us what’s new for developers in the mobile developer tooling space in this release?
Ashwin Nair:
Yeah, for sure. We have loads of fun stuff in this realm. So we’ve recently introduced the 246 version of our LWC Offline Test Harness as well as a 246.1 version with some additional enhancements, and we’ve also had a brand new Mobile Offline Onboarding Wizard tool as well as a handful of Nimbus plugins that we’ve unveiled for you guys across Spring of ’24.
Julián Duque:
Okay, so LWC Offline Test Harness, Mobile Offline Onboarding Wizard and Nimbus plugins. Let’s talk a little bit about those three so our audience can understand what are those and what we can do with those?
Ashwin Nair:
Yeah, for sure, so the LWC Offline Test Harness or just Test Harness for short is a tool that we’ve built which allows developers to be able to test and debug the configs for their mobile offline specific LWCs. So, for instance, if you’re a developer who’s built an LWC and you want to be able to validate your configs, the Test Harness is basically the tool for you.
Using it, you can do things such as validate the data that’s being sent through it before it’s sent up to the server for your specific use cases. You can also view all your offline briefcase records to see which objects exist and their corresponding LWC quick actions and much more across for the offline Salesforce mobile app as well as the Salesforce field service mobile app.
Speaking of the Onboarding Wizard, that’s a little bit different, but it’s a tool that is directly available through our VS Code Extension Library, and it’s titled Salesforce Mobile Extensions for VS Code. The links for this documentation will be made available in this show notes as well, but for a quick summary, developers using it can use it to build offline LWCs through the Salesforce Mobile App Plus offering that we provide, and they can leverage this in order to create and test their LWC Quick Action Configurations on the fly, so you can go in and configure your JavaScript, HTML and CSS specific to those LWCs, verify that they work as expected to your needs, and then publish them upstream.
Julián Duque:
Okay, and what about Nimbus?
Ashwin Nair:
Yeah, so before we get into the Nimbus plugins, just to touch really quick on Nimbus. Nimbus is an in-house framework that customers can use to be able to access Native device functionality directly within the LWCs on mobile, and we release plugins on top of this framework in order to support these functionalities.
So, for this, we have three brand new plugins that we’ve introduced. One is our document scanner plugin, and you can use this to scan a doc, any document in general using your device camera and extrapolate the data from that document itself to be able to use across different applications for different leads.
The second plugin that we have that we’ve introduced is our NFC plugin, so you can use it, so if you’re using a NFC tag to be able to update data, you can use it to read, erase, and to write to the NFC tag for devices when you’re going through scanning operations.
And the third plugin, last but not least, is our biometrics plugin. And you can use this in order to add additional security measures for your LWCs to authenticate the device owner before accessing any sensitive data that you have within that LWC.
Julián Duque:
Good, are these plugins Native plugins or JavaScript plugins?
Ashwin Nair:
Yeah, these are LWC based plugins, so customers can be able to leverage those plugins directly on top of the LWCs and they’re in the context of the applications itself, so if you’re within the Salesforce mobile app or if you’re within the Salesforce field service app or even mobile publisher apps, you’ll be able to leverage them directly out of the box through those LWCs.
Julián Duque:
Very interesting. One thing that I have noticed in these features is the word offline. Why this is that important in mobile development?
Ashwin Nair:
Yeah, that’s a great question. So, offline support was a big time initiative on the mobile platform side, and over the past few years we’ve been seeing a couple of different use cases of how remote access to devices has become more and more important during your workday, but not every place has a proper network connection needed to be able to support it, so we’ve added offline support for these apps, and that’s a pro code LWC based solution today.
So, we built tooling on top of that to be able to ensure that you can test, debug and validate your LWC configs before they’re made available to your end users.
Julián Duque:
Yeah, I remember back in the day when I was building mobile applications that also bandwidth, the size of the data that we were downloading through the wire, all that stuff have to be considered while developing mobile applications because, of course, back in the day data was expensive.
Not sure right now with these unlimited plans, it is not the case, but back in the day, paying for extra megabytes was expensive enough. And also for battery saving purposes, batteries have changed, so downloading data constantly from the network, it might be tough on resources. Those considerations also need to be taken care of today with these approaches?
Ashwin Nair:
Yeah, yeah, so network bandwidth is something that kind of factors into offline ability, so in this context, what we’re doing is, so let’s say for instance, if you’re on the fly, let’s say you’re on a train and you’re going through and for some reason you need to be able to update your data, or if you’re like a field service agent on the field and you need to be able to update information in regards to a specific visit, you’re going out and about on the field, you have a lot of areas where probably there’s low to no network connectivity, and in those scenarios you can just simply use this application to be able to directly access your data offline.
So, if you’re in those low to no network connectivity areas, if you have certain configurations you need to make an update, you can just simply make those on the go on this application and it’ll be done in an offline state. And then once you come back into your online state where you have better network connectivity, that information will be ported over and it’ll be made available for you. Whereas, in the past, if you were to be able to try to do those kinds of things, it probably would’ve not been able to be done in a similar capacity in that you probably would’ve unfortunately lost some of those record updates and things like that, which this solution alleviates.
And speaking of bandwidth, we do factor in how much bandwidth is available based on network connectivity that you’re at, at the time, and then based on that going into your offline mode so that you would be able to access those configurations before you make those updates.
Julián Duque:
Wonderful. That’s good to hear and that we are covering those aspects for our developers. Ashwin, this is amazing. Is this going to be GA on the Spring ’24 release or there are certain features that are still on [inaudible 00:13:32]?
Ashwin Nair:
Yeah, these features will be GA in the 248 release. And as a matter of fact, some of those are actually available to you right now.
Julián Duque:
Oh.
Ashwin Nair:
So, LWC Offline Test Harness, the 246 and 246.1 versions that we’ve released are publicly available and you can go ahead and actually download them directly from developer.salesforce.com. We have a specific section for the Test Harness, and you would be able to download the Android and iOS APK and IPA files to be able to load them up into your XCode and Android Studio to be able to test and debug your LWCs.
And also speaking of our Onboarding Wizard, that is also publicly available, we’ve released that VS Code extension that we were just talking about. That’s publicly available within the VS Code marketplace, so when you’re on your VS Code IDE, just go into the marketplace and search the Salesforce mobile extensions for Visual Studio Code and you’ll be able to get all the fun stuff there.
Speaking of our Nimbus plugins, those will be made available over the course of 248. Those will be made available within the Salesforce mobile app, the mobile publisher apps, as well as the Salesforce field service app, so those plugins, the document scanner, NFC and biometrics will be made available over the course of 248 when it goes GA and those plugins themselves will also be GA.
Julián Duque:
Awesome. So, folks, make sure to pay attention to all of these great tools that are available for you, and they’re going to be available also on this release, so you start building great mobile applications, the LWC platform.
Ashwin Nair:
And one more quick call out I’d like to make here is, this is just a prelude, so we’ll also be covering a lot of this at TDX as well, so mobile has a breakout session that we’ve been approved for building testing and debugging LWCs for mobile, where we’ll be covering a lot of these items such as the Onboarding Wizard, the Test Harness, as well as some of our new Nimbus plugins.
So yeah, do stay tuned for that and definitely looking forward to seeing you guys there if you’re able to make it out to San Francisco.
Julián Duque:
Awesome, so you know if you go to TDX, find Ashwin and team and ask all of the questions regarding LWC Mobile Offline. Awesome, Ashwin, thank you very much.
Now, let’s go to Galen because he has also a lot of things to share. You are an associate product manager for the Mobile SDK, that’s correct, right?
Galen Lewis:
Yes, that’s correct.
Julián Duque:
Beautiful. Talk a little bit more about the Mobile SDK, what can we do with it?
Galen Lewis:
Yeah, so what Ashwin is talking about are developer tools for mobile developers, whereas Mobile SDK is a framework for building mobile applications. So we’re a set of libraries and APIs that developers can use to make building applications that are connected to Salesforce easier.
So, for context, there are a few different ways to deliver mobile apps with Salesforce, and one is just by going to the app store on iOS or Android and downloading the Salesforce mobile app. And that can be configured by admin, so you have some level of customizability, but Mobile SDK is if you want to build a completely custom app with code, so it’s the most flexible option for delivering a mobile app with Salesforce.
And when you do that, we provide the whole foundation, so all the things that every enterprise grade mobile app needs, but is difficult to build, so think authentication, think data storage connection to Salesforce, we also offer push notification support, offline data storage, online, offline sync if you’re storing data offline, so all those things Mobile SDK takes care of. And then you as the mobile developer are basically just focusing on what you want the UX of the application to look and feel like.
Julián Duque:
Nice. When you mention code and building these mobile applications using LWC or Native code on each different mobile platform?
Galen Lewis:
We support it all, so you can build a Native application in Swift or in Kotlin for Android, or you can build cross-platform with React Native, or you can build a Hybrid app. So, right now we support that using Apache Cordova, and with that you can bring in your LWCs that you’ve already written maybe for desktop, and you can bring that into mobile.
Julián Duque:
Wow, that’s powerful, I didn’t know about this.
Galen Lewis:
Yeah.
Julián Duque:
And what’s new on this Spring ’24 release for Mobile SDK?
Galen Lewis:
Yeah, so Spring 2024 we have a couple exciting features planned, so that’ll be our 12.0 release, and one of the big features for that is Native login, so Native login means that if you’re building your app in Swift or in Kotlin, like I mentioned, you’ll get complete control over what the UX feels like for that login.
So, like I mentioned, Mobile SDK already supports authentication, we can authenticate your users using Mobile SDK. Right now, we use a web view to do that which works, but as a developer, you can’t really change what that looks like at all, so with Native login, which we’re launching in a few months, that’ll no longer be the case, and so you can write your own UI for login and Swift UI if you’re an iOS and Jetpack Compose if you’re on Android, whatever you’re using.
And from there, the possibilities are endless because you can implement dark mode, you can change how you present the login or registration fields, you can really optimize your login UX to look however you want and Mobile SDK will still provide the login functionality but not holding you back in terms of how you want it to look for your users.
Julián Duque:
Nice. I usually have tens of different and complicated passwords for every service out there, and for me, one of the must haves for a mobile application is being able to sign in using my fingerprint. Mobile SDK support biometrics?
Galen Lewis:
Yeah, we do. And we actually revamped that in our 11.0 release, which we launched last summer, so we’ve always offered a way to authenticate with biometrics for some time now, but we recently revamped that and we launched this new biometric auth feature last summer.
And yeah, like you said, it’s a fast, effortless way to authenticate, you don’t need to remember your password most of the time, it’s secure and users love it because no one wants to type in a password manually.
Julián Duque:
Oh, beautiful, that’s great. Anything else that’s coming on these or previous releases that developers need to be aware of?
Galen Lewis:
Yeah, one other thing for upcoming release actually that I forgot to mention, on the same topic of not wanting to remember, store and manually enter a password, we have OTPs, one time passwords, and this is something that probably everyone listening to this has used before. You can get a six digit code emailed or SMS texted to you and you just copy and paste it in and you log in.
Same idea, but this was a highly requested feature because we found that actually a lot of our users share this sentiment that we’re expressing of not wanting to manually type in a password and oftentimes it can be easier to just get one emailed to you and copy and paste it in.
Julián Duque:
Yep, that’s fantastic. And what else are you and your team excited about right now?
Galen Lewis:
Yeah, so one other big thing is TDX, just like Ashwin mentioned. We also have a session approved for TDX, just got it approved last week. And this is actually on on-device AI, which right now it’s looking like it’ll be more of an internal Mobile SDK functionality.
So for context, Mobile SDK is the foundation of Salesforce’s mobile apps and also external developers can use it. So this feature is looking like it’ll just be for Salesforce mobile app and eventually for publisher and field service. We aren’t building external libraries for this right now, but it’s really exciting within the company because what it means is that Salesforce app and SFS can then go and add on-device AI functionality into their apps, and they’re really excited about it because when AI is run on the device’s hardware, you don’t have to hit a server, it works 100% offline, it’s 100% secure because the data is never leaving the device, and what we’re finding so far is that the speed of it can be pretty impressive too.
Julián Duque:
Nice, and is this using some lighter models or what’s happening on the device?
Galen Lewis:
Yeah, exactly, so we are using much smaller models. The models that we’re looking at right now are between two and 7 billion parameters.
Julián Duque:
Okay?
Galen Lewis:
Which is much smaller than anything that you’re using if you use ChatGPT, for example. But the models are much smaller, and so, that means that the device can run it in a reasonable amount of time without draining the battery, but we’re using it for pretty specific tasks, which means that we can still get a good enough result even though the model is shrunk down significantly.
Julián Duque:
This is great. See, the future is here. Of course, then you have to be doing something around AI for mobile. I love it. I love it, I’ve been doing AI for my last couple of months and every day I learn something new.
Galen Lewis:
Definitely, it’s evolving really quickly. We just started exploring this last November, and even since then we’ve had our plans change because newer, better, smaller models have come out and it’s just constantly changing. Another thing that we’re looking forward to in this space, this is speculative for now, but a lot of people think that on-device AI will eventually be built into the phones’ operating system, so Apple and Google will hopefully eventually have this just out of the box with your newer phones.
And if that’s the case, then we can then have a larger model, a potentially more mobile optimized model that users don’t have to download to their phone in addition to the Salesforce mobile app because it’s just built into their phone, so that’s another exciting thing that will hopefully unlock even more on device AI capabilities for us in the future.
Julián Duque:
Yeah, I’m looking forward to it. There has been a lot of glimpse of having an AI OS as a first class citizen, so that’s something very interesting.
Okay, Ashwin, Galen, thank you very much. This is great and the present and future for mobile developers looks great on the Salesforce platform.
Ashwin Nair:
Yeah, thanks so much.
Julián Duque:
Of course. Ashwin, while you are not thinking about enabling developers with offline mobile applications and LWC, what do you do for fun? What are your hobbies?
Ashwin Nair:
Yeah, I’m huge into basketball, sports in general, but especially basketball. I grew up playing a little bit. I’m a little bit on the shorter side, so I’m about five-six, so usually it kind of gets people by surprised, but I love playing basketball. I used to play point card, so yeah, I would say for my free time, similar to how Galen mentioned soccer, for me it’s basketball, so just kind of playing around. And also, I’m a huge fan of comic books, so Marvel Comics, DC Comics, all that kind of fun stuff.
Julián Duque:
Oh, nice.
Ashwin Nair:
So I would say between that, those are my two go-to’s.
Julián Duque:
I don’t want to get into any discussion here, but are you more DC or Marvel?
Ashwin Nair:
I’d say I’m more Marvel. I grew up a huge Spider-Man fan, so yeah, I’d say Marvel and the MCU, a lot of that fun stuff for sure.
Julián Duque:
Awesome. Awesome. And what about you, Galen?
Galen Lewis:
Yeah, so I mentioned briefly I love playing soccer. I played in college and I’m still playing in men’s leagues around here in San Francisco. And apart from that, I really do love software as well, so sometimes on the weekends you can find me playing around building little projects and apps and things like that.
Julián Duque:
Awesome, hacking around. What is your favorite team, soccer or football team?
Galen Lewis:
Yeah, well, I grew up a Barcelona fan.
Julián Duque:
Okay.
Galen Lewis:
Yeah, my family’s big Barcelona fans, and I also really like Mo Salah, and he’s been with Liverpool for some time now, so I like Liverpool as well.
Julián Duque:
Oh, great, great, great. Fantastic. Well, Ashwin, Galen, thank you very much for joining us on this Salesforce Developer podcast and sharing all the great things you and your teams are working on and looking forward to see you all at TDX.
Ashwin Nair:
Yep, thanks so much, likewise.
Galen Lewis:
Yeah, excited to see you there.
Julián Duque:
Of course, and have a good one.
Ashwin Nair:
Thanks, you too.
Julián Duque:
And that’s it for now. If you want to learn more about this show, head on to developer.salesforce.com/podcast where you can hear all the episodes and read the show notes. So long, and thank you.