Episode 99: Mobile Development with Sue Berry | Salesforce Developers Podcast

Sue Berry is a Senior Director of Product Management here at Salesforce. She started her career in cardiology but as soon as she was introduced to computers she was hooked. Now she gets to interact with every side of Salesforce in her current role: the developers, the customers, and everything in between. 

Today Sue and I are talking about the many different features and benefits that Salesforce Mobile SDK brings. We also discuss some new things coming out with mobile development. Tune in to hear our insightful conversation.

Show Highlights:

  • How Salesforce release cycles affect mobile development.
  • Everything Mobile SDK takes care of for you.
  • What mobile sync and smart store are and how they assist with offline syncing.
  • The platforms that SDK is for.
  • How paneling multiple windows works.
  • Improvements Sue and her team have made to landscape and portrait modes.
  • The benefits of the Cordova platform.
  • What React Native is.
  • How to build lighting web components with mobile in mind.
  • What the Visual Studio Code experience is like.
  • Mobile developments on the roadmap.

Links:

Episode Transcript

Sue Berry:
… And it was very cool working with Salesforce that way and showing off our product on the force platform. And I’ve always been really interested in Salesforce since then, and how neat it was for developers to be able to build on the platform

Josh Birk:
That is Sue Berry, a senior director of product management here at Salesforce. I’m Josh Birk, your host with the Salesforce developer podcast. And here on the podcast, you’ll hear stories and insights from developers for developers. Today, we sit down and talk with Sue about some of the new stuff coming out with mobile development, but we start, as we frequently do with her early years.

Sue Berry:
Initially when I started out, I thought I was going to be a cardiologist, but then thinking about all the years of going through school. And when I was at university of Florida, someone got me onto computers and I thought, “Hey, this is cool. I really want to do this.” So I switched directions and here I am now.

Josh Birk:
Interesting. So what’s your earliest experience with a computer? Were you interested in them before, did you kind of get hooked in college?

Sue Berry:
Well, I loved playing the video games, and then you had all the Atari games, then you had PC games come out, and then windows became a big thing. And so after that I was just hooked and I wanted to go down that route.

Josh Birk:
That’s awesome. Then how did you get involved with Salesforce technology?

Sue Berry:
With Salesforce, my first introduction to Salesforce was when I was working at a different company, we actually built a agile product on top of the Force platform. And it was very cool working with Salesforce that way and showing off our product on the Force platform. And I’ve always been really interested in Salesforce since then and how neat it was for developers to be able to build on the platform. And that’s what got me into Salesforce.

Josh Birk:
Got you. And then how did you join the mothership?

Sue Berry:
I was looking for a change and I saw a Salesforce opportunity for mobile, which I was already working on. And I thought, “Hey, it’s a little bit out of my window as far as how far I want to go.” But I went and I loved the people, when I talked to the employees that were working there, they talked about how awesome Salesforce was and how the people that they work with were great, and how Salesforce treats you like a valued employee. And I was like, “Hey, I want to work for this company.”

Josh Birk:
Nice.

Sue Berry:
And then I’ve been here for two years now.

Josh Birk:
That’s awesome. Now I like to ask this question to all the product managers that get on the show because I almost always get somewhat different answers, sometimes wildly different answers. As the product manager at Salesforce, how would you describe your job?

Sue Berry:
That’s a very good question. One thing I love about product management in general is that you get to wear all of these different hats, at Salesforce that’s no different. I can be really deep down into the backlog talking about requirements in one moment and then on the next call, I’m talking about how do we evangelize what we’re doing and what kind of marketing can we do? And when I’m talking to customers about their problems and how we can solve it. So I love that I can wear so many different hats and I can be the champion of the mobile SDK or the mobile tooling that we’re providing, or I can take feedback from customers and say, “Hey, our customers really need this feature. We need to develop this. And how quickly can we get it done?” And it’s just great to be able to interact with on the developer side, on the customer side and on the marketing side.

Josh Birk:
Nice. Now, how does Salesforce, we’ve got three release cycle, that drives a lot of this stuff with Core. How impacted is the mobile development, the SDK development from that. Are you on your own sort of thread when you’re coming up with new features and roadmap?

Sue Berry:
Yeah. For a lot of the mobile stuff that I work with, we’re on our own, we’re outside of Core. And the nice thing about that is that we get to set our own releases and we often tie, especially for mobile SDK, we have one release that’s tied to the new iOS and Android updates. And we have to have a release right away for that, so that customers can take advantage of the new versions.

Josh Birk:
Got you.

Sue Berry:
But if we have something big and we need to release it right away, we can set that release date, do some quick testing and then release it almost immediately. And so that’s pretty awesome to have that kind of flexibility. And it’s the same thing with the mobile tooling, because we are delivering tools to the VS code for lightning web components, and they have releases every week. We can just drop into one of those weekly releases and get the features out instantly. And that’s awesome to be able to do.

Josh Birk:
Got you. Well, let’s talk a little bit more about the SDKs themselves. Is it mobile SDK or is it more accurate to say that you are actually managing multiple SDKs right now?

Sue Berry:
For the SDK itself I managed the mobile SDK, and then outside of the SDK, I’m really focused on the developer experience for building for mobile in general. And so that could be if you’re doing lightning web components and how you make sure that they work well on mobile, but if you’re actually building standalone mobile apps, and I focus on that with the mobile SDK.

Josh Birk:
Got it. Now I used to do this bit on stage, I would get up and I’m like, “I am going to build an iOS application that will log login to Salesforce, access a list of accounts and be able to click through and view a detail. And live here on stage, I’m going to do it within five minutes.” And the reason I could do that in five minutes was because the SDK was doing three fourths of the work for me. Is that Core still what… The SDK is providing out of the box when it comes to blogging, API access, record detail, et cetera.

Sue Berry:
Yeah, definitely. Absolutely. With Salesforce mobile SDK, one of the huge benefits of it is, you get to focus on what you guys [inaudible 00:05:41] can look at, what your flow is going to look like. And we handle getting you a quick access to the Salesforce platform and to the accounts into the information. And we also handle doing that in an offline way where you can easily sync your records back and forth and work offline. And when you’re back online syncing. And we take of all of that for you so you don’t have to worry about the authentication or the offline syncing, we provide the API’s to make that easy. And you get to focus on what you want the app to look like and do.

Josh Birk:
Tell me a little bit more about the offline syncing, because my history with that is that it’s always been something that’s more complicated than it sounds like. People kind of make it seem like it’s just, your offline things just work, your online things just work. But how do you resolve things like a record that changes on the server when the client is being manipulated offline?

Sue Berry:
Right. Yeah. So what we have with the mobile SDK is, we have mobile sync and smart store. And so when you use the APIs to bring down the data that you want to use offline, and that’s stored in our smart store. And so when the user or the end user is using the application offline, they’re actually accessing all that information in the local store on the device. And then what we do is, when we sync back as a mobile sync, we’re checking what’s changed on the server and what the client has and we’re resolving those conflicts for you. We’re only looking at things that have changed so we can do a quick sync just by looking at the changes and only syncing the changes or what we need to change. So even if you’re bringing down thousands of records, but you’ve only changed like 10, we’re only making those types of changes. And so we’re handling all of that for you, with our mobile sync.

Josh Birk:
Got it. And does the human ever have to get involved to be like, no, I need this field to say this instead?

Sue Berry:
The end user doesn’t have to worry about that. As the developer, you have a lot of control and to specify how you want to handle merge conflicts and what would happen there. And you can control that, but your end users won’t have to worry about that.

Josh Birk:
Got It. Now what different platforms or is the SDK out for?

Sue Berry:
Yeah. So SDK, our goal is to be as flexible as possible. So if you are looking to do native development, we have native for iOS, native for Android. If you’re looking to do more of a hybrid, we have hybrid with Cordova, and then we also have react native. So if you want some of those native capabilities, but you only want to build the app one time, you can do that with our react native version of the mobile SDK.

Josh Birk:
Got it. Well, let’s dig into a couple of those. You just had a big update for some neat stuff that just was released, I believe in iOS, especially for iPad. How does paneling multiple windows work with the SDK?

Sue Berry:
Yeah, sure. So what we did was, we updated our frameworks to be able to support multiple windows. And when you are building applications, you can have the same application running side by side, so that if you have multi-taskers and you want to view your contact list in one window, and you can easily just drag one of those contacts over and it creates a new window on iPads so you can view the details. And what our SDK does is, it handles the login session for you so that once you’re logged into one window, you’re logged into the other window automatically, and when you log out the same thing. And so we that for you, so you don’t have to worry about how to handle that. And then we provide some off helper classes to be able to handle the log and flow, and you can contribute how the scenes would handle, how one scene behaves, how the other scene behaves.

Sue Berry:
But for the most part, the SDK takes care of it for you. You just need to use the APIs and the SDK takes care of it. And we also updated our samples, so we have the mobile sync swift explorer sample. And if you use that, it already has the multiple windows. And then you can just copy the code out that you want, or you can modify that sample just to be the UI that you want with all that technology already working.

Josh Birk:
Got it. And you’d mentioned working with some data side by side. Maybe you want to see contacts in one window so it counts and under windows. What are some interesting use cases that you’ve seen for this?

Sue Berry:
Yeah, as for the interesting, most often it’s people that want to jump back and forth. So I think copy and paste, if you are updating information rather than exiting out of a record and go into another record, to then copy-paste and going back and forth, you can have your two screens side by side. And being able to copy information from one to the other, that’s a huge use case that people have wanted. But just even as you’re looking for info, just having the list on one side and the details on the other, similar to what you may do with a master detail, if you were on desktop, that’s been another popular use case that people want to do, but it’s really about the multitasking effort of it and the options are endless.

Josh Birk:
Nice. And what improvements do we see for landscape and portrait modes?

Sue Berry:
Yeah, so with the mobile SDK, we’re always listening to customer feedback, and we heard that for landscapes sometimes on the login screen or in certain areas, their app will get stuck in portrait mode. So we really took a concerted effort to look at all the different ways that you would use the app, and made sure that if you switched from landscape to portrait and back that it never got stuck in one position. And we released that update in our 9.0 release of the mobile SDK. And customers already been using it and they’ve been pretty happy because now, whether you’re landscape or portrait, in the login screen or in any of the screens, when you go back and forth, it just switches seamlessly.

Josh Birk:
Got you. Nice. Now the SDK you were mentioning also supports hybrid apps with Cordova. Break that down for somebody who maybe hasn’t really seen those nouns before. What kind of application are we building there?

Sue Berry:
Right. So if you’re building an application where you’re looking to build only one app, you’re not looking to build a native app for iOS and a separate app for Android. A lot of our customers go native where they can bring a huge mixture of web technologies and then have some native plugins that go into that. And so with Cordova, you have plugins where you can access camera and bring that up. Even though the majority of your application may be a web application in the app, you can still access the camera to take pictures, or you can get the GPS information, and you can also have the app continue to work offline. You may not have all the specific details of native with the navigation menus or things like that, but you get, 80% of the look that customers are looking for, and you only have to build the app one time.

Josh Birk:
Okay. So then Cordova is providing this native shell to it. And so as a developer, I don’t have to worry about things like… Kind of the same list we were just talking about, how to access, how to code the parts that are going to be authenticating against Salesforce, or calling the APIs, or accessing the camera, mostly just bringing the HTML in order to build out the user interface itself.

Sue Berry:
That’s correct. One nice thing about the SDK is regardless of whether you’re using our hybrid SDK, or the native SDKs, or the react native SDK, is that things like the access, the [inaudible 00:12:57] access to Salesforce and the offline syncing, those span across all the different SDKs. And so you still focus on the web UI you want to bring in with hybrid Cordova, and using the Cordova plugins to access specific device capabilities. But your access to Salesforce is still there, just like if you were to use any of the other SDKs.

Josh Birk:
Got it. It does have to be web technology that’s on the device though, right? I can’t just point it to a remote URL or an existing website.

Sue Berry:
Right. It is what technology that’s on the device.

Josh Birk:
Got it. Okay. Tell me a little bit more about react native. How is that different from what we were just talking about?

Sue Berry:
Yeah. One of the nice things about react native and some of the other technologies similar is that, you get a lot more of the native feel from an end user perspective, but you’re still only building the application one time. It’s using JavaScript and metadata for actually building the application, and actually with the mobile SDK, we also updated our react native to also support type script. So right now you can build with TypeScript or you can build a JavaScript. And when it goes to the device, it’s actually using the native UI components on the device so that the end users get a better performing mobile application, and they’re also getting a real looking native experience that they would expect if you were to build a native iOS or a native Android application for them.

Josh Birk:
Got it. So if I have my role your own web technologies, so I can bring that. But also it sounds like react gives me a little bit more ammo, I guess. It feels like it’s maybe a little bit more robust if I don’t have something else to start with.

Sue Berry:
Right. Yeah. We find that more and more companies are doing this because it’s the best of both worlds. You want cross-platform, but you want the end user to feel like they’re using a true native app. And you get a lot more of that with a react native. Of course with mobile SDK, we find that a lot of our customers still want to go that next level up with native, with our iOS SDK or the native for Android SDK, because they have the developer resources and they want to provide a true native experience. But for the customers that maybe have a lot more of the JavaScript or TypeScript developer skills mostly, and they only want to build one app, the cross-platform as react native is definitely a good place to start.

Josh Birk:
Got you. And are there any hiccups cross-platform or is it really just sort of a one and done?

Sue Berry:
There are hiccups, there are certain things, if you’re looking to take advantage of some of the newer capabilities from iOS or Android, that may not be yet available in react native. And so you may have to wait for it, or you may have to build it in yourself so that was one of the drawbacks. Also, even though it brings for performance, it brings you closer to native. True native is always going to be more performance than even a react native. So there’s going to still be a little bit of difference there, just brings you so much closer to that experience.

Josh Birk:
Got it. All right. Well, let’s shift topics and talk a little bit more about lightning web components themselves. Speaking of web technologies we can bring to bear. First, even before we were thinking about the tooling and some of the things you’re building with with visual studio code, are there considerations that maybe somebody who’s just had a lifetime of building lightning web components for desktop, and then suddenly they just realized their stuff has to work in mobile? Are there things you wish that they had top of mind when they start building out these components?

Sue Berry:
Yeah, definitely. As a developer, when you’re looking to build a lightning web component, you definitely want to think of mobile from the very beginning, you don’t want it to be an afterthought. Some of the things that we’ve seen as you’re building it, our lightning web components are responsive and they will adjust to speed size, but because developers get a lot of control, they can make an amazing application, but they can also create applications that provide a poor experience for mobile. And this is making sure you use your mobile friendly components and your CSS has the mobile in mind, your font isn’t too small where you’re not going to be able to read it on a small phone screen. Do you really want to be able to think about that? Even things from, is it a touch screen versus using a mouse? And we provide guidelines in our documentation. We provide validators in VS code to really help developers think about that stuff, or see that stuff. And we provide warnings there, even if you haven’t thought about it already.

Josh Birk:
So if I’m mostly just using base components and sticking within the normal swim lanes, that it doesn’t sound like there’s much I need to worry about. The framework really kind of covers it by itself. But the more custom I’m going, the more likely I’m going to get into dangerous waters.

Sue Berry:
Right? Yeah, that’s true. And even some of our base components for Salesforce, some of the early ones that we created, a few of them are tagged as… When you look at the base component list, they will tell you whether they’re mobile friendly or not. And there are a few that aren’t great for mobile because they were really meant for a larger screen. For desktop and for using a mouse with. And we’ve added validators in VS code to let you know when you’ve hit one of those very few based components.

Josh Birk:
I just got to ask, just to be slightly mischievous, how does our friend, the data table fare?

Sue Berry:
That’s a good question. The data table is definitely not for mobile lists.

Josh Birk:
Got you.

Sue Berry:
Yeah. So when you try and add the data table, we will at least give you a warning to say, “Hey, this may not work so well on mobile devices.” But the base component team is looking at creating a new data table that would be mobile friendly. And so we have been working with them on that.

Josh Birk:
Got it. Nice. Okay. So let’s walk through the visual studio code experience itself. What’s my starting point? Am I installing the SDK itself or this is a dubious code extension I’m assuming?

Sue Berry:
Right? We have a new extension that goes, it ties in well with the Salesforce extension for lightning web components.

Josh Birk:
Okay.

Sue Berry:
And what it does is, it installs the ability to see previews, not just on desktop, but also on iOS and Android. And it helps you get that all set up. So once you install that new extension, when you right click on your component to preview before you would see just preview on desktop, and now you’ll see preview on desktop, preview and iOS, preview on Android. And then when you select those, the simulator launches and you see your lightning web components, and the iOS simulator or the Android emulator.

Josh Birk:
Got it. And correct me if I’m wrong, you can do that offline through local server?

Sue Berry:
Yes, that’s right. Yes. You can do it all locally, you don’t have to publish to an org or anything.

Josh Birk:
Got it. And then anything in addition to those validators, or maybe just a follow up questions. What sort of things are those validators looking forward to keep that old desktop developer safely in line?

Sue Berry:
Yeah. Great question. So the validators that we’ve added so far, base component validation, CSS validation, and then they’ve also added some linting rules for offline ability. With mobile apps, you definitely want to make sure that the apps that you’re building will either, if it’s completely web based at one bill, maybe once you’re offline, it will go offline gracefully and not just air out. But if you’re building with data and out wires that we have some linting rules to say, “Hey, this out wire you’re using is not great for offline. You can choose a different one and we’ll provide help with that.”

Josh Birk:
Got you. Okay. And I think that actually kind of gets to a follow-up question because when you’re saying offline, so that goes back to smart store, right? Is there any tooling in visual studio code to see the data that’s being cached or versus the server or anything like that?

Sue Berry:
Not yet, but on mobile we are working with something called the lighting SDK, and that will provide a lot more ability to bring those lightning components and use them offline. So that’s currently available for a few pilot customers, but we are working to bring that into our mobile SDK apps and make that more available to all of our developers in the future.

Josh Birk:
Well, talking about things that are in pilot, is there anything on the roadmap that you want to give a shout out to?

Sue Berry:
Yeah, sure. For lightning web components, one of the great things that you can do is really show off your web capabilities, both on desktop and mobile. And so one of the things that we will be highlighting later this year is bringing native capabilities into your lightning web components. So if you wanted to be able to access the camera or access the photo gallery on the device and save those images back to your component, or if you want to be able to do geo-fencing where if somebody enters your office location, you want to tell them, “Hey, here are the office details, or here are the off the hours for your tech force or something like that.” You’d be able to do that from a lightning web components. So really bringing native capabilities to lightning.

Josh Birk:
Nice. Very nice. And where can people learn more about this?

Sue Berry:
Yeah, the best place to go for anyone to learn is the mobile development center on developer.salesforce.com. There we have everything mobile developer related, whether it’s the mobile tools or it’s mobile SDK. If you’re building standalone apps, we have our latest blogs, we have our videos and links to the emulator builds that we provide.

Josh Birk:
And that’s our show. However, before we go, I did ask [inaudible 00:22:35] favorite non-technical hobby. And like many of my guests, she couldn’t pick just one.

Sue Berry:
Well, I’m going to list two because it’s really difficult to list one. For me at home, if I’m just really stressed about something, I love to play the piano. And so I’ll play the piano, I’m so focused on learning a new song that it will just take my mind off of everything else. And it’s just really a joy that I have, I’m not great but I’m good enough to enjoy the music. And then I grew up in Florida, so I missed the warm water, being out here in the bay area. So whenever I can, I will go find a heated pool or warm water that I can swim in and just feel like I’m on vacation. Even if it’s just for 30 minutes, I love being in the water.

Josh Birk:
Nice. Yeah. We gave up our gym membership over the pandemic, but pretty much the sole reason I was trying to hang on to it is because it’s a swimming pool that I can actually drive to. So I feel you.

Sue Berry:
Yeah. I found one locally where it’s an outdoor pool, which meant it was safe for the pandemic and the water [inaudible 00:23:37]. It was really nice to get away. And especially during the pandemic where we were all locked inside, to go outside and feel you’re on vacation just for a little bit was great.

Josh Birk:
I want to thank Sue for the great conversation and information and as always, I want to thank you for listening. Now, if you want learn more about the show, head on over to developer.salesforce.com/podcast, where you can hear old episodes, see the show notes, have links to your favorite podcast. Thanks again everybody, I’ll talk to you next week.