DEV Community

katie hoesley for BigCommerceDevs

Posted on • Originally published at Medium on

Mobile Apps Ask Me Anything (AMA) Recap

If you missed our Ask Me Anything session with Dan Murrell, manager of our Mobile App team, and Chris Ruddell, Lead Mobile Software Engineer, not to worry! Check out the recording, or read through the compilation of questions and answers from the AMA that can answer any questions you have.

These BigCommerce Mobile App experts have over a decade of experience in mobile development each, and together almost 8 years building for BigCommerce. Simply put: they’re the ones to ask if you have questions about anything mobile app related!

Let’s dive into the questions!

How important is my mobile app versus my desktop app?

Chris: Some people think about mobile apps as almost a replacement for desktop apps, and we view them, rather, as complementary. You hear terms thrown around like “second screen”, mainly with TV watching, but that’s also really true with store management on an e-commerce platform. So, the full feature-set of being able to manage your store is on the control panel on the desktop experience.

We know we can’t do that on the mobile app, we have limited space that we’re working with…but what we can do is provide a really superior experience on a mobile device for things you would do on-the-go. If you’re taking a trip somewhere and you need to go in and change the status of an order or you’re at a conference and someone wants to make a purchase from your business, you can just open up your mobile app complete that order.

So, it’s things like that where the app shines because it can complement the experience of the desktop.

What makes a good mobile app?

Dan: Knowing what the platform’s limitations are will help you design a good mobile app. You should always start with the user experience, very early on if not first. So, like Chris said, we complement a very complex product that can do everything if you sit down at a desk or are on a laptop.

But, if you’re on the go and have a limited amount of time or space that you get on a mobile app, understanding those constraints and doing your design and your building keeping those constraints in mind is what makes a really good mobile app. A good user experience means a good mobile app.

What’s the major difference between desktop experience and mobile experience that devs should keep in mind when building apps?

Chris: The limit of space is a major difference… We have to really pay attention to the primary functions and features that a user is going to need or want. We have to make those decisions ahead of time and really hone in on them given the limitation of space, but also there are other limitations like how you interact with the application. On a desktop, you have a full keyboard, a mouse, but on the phone you’re using your finger for everything, so the amount of text you can type is limited. But, you can also do things like dragging and dropping, you have access to device hardware like different sensors and things that you wouldn’t necessarily have on a desktop. That can provide a richer experience — one example of that is being able to look up an item by its barcode. On the mobile app, we have access to the device’s camera and can scan a barcode and pull that item up. That’s a lot harder on a desktop!

Dan: I would say it’s a whole lot easier to take a picture of a product on your phone than to pick up your laptop and turn it around to use that webcam. We’ve got all sorts of advantages that we can play with like that on mobile!

Is a “mobile friendly web app” fine? Or is it best to build out a website and an app separately?

Dan: A mobile friendly website is usually pretty good as long as the people who design it put the effort in to make sure that it does the functions that they need to do in the desktop, which in our case is essentially everything, and narrows down the functions for when it’s on mobile because you can’t show a gigantic screen of options on mobile. As long as they start by keeping that in mind, you can definitely build a good web app.

Where you run into problems is when you’re designing for a website, your design language is just whatever your design language is. When you’re designing for mobile apps, the [mobile app] platforms have a very carefully thought out design language that everybody, more or less, understands.

So on a desktop, you can have a guide to help people figure out how to use your website, but on a mobile app, because that design language has essentially trained users how to use their phone, scroll a list, select something, delete things, etc. you get all that standardization so someone could pick up a phone that’s running your app and almost intuitively know how to use it. Having that familiarity on the mobile platforms and being able to make use of that — that mostly comes in a native app. A web app can try to mimic that, but it’s much more work.

Which tech stack(s) do you recommend for building a mobile app?

Chris: There are several different choices to be made when you start a mobile app project. At BigCommerce we decided early on to create our mobile app using native technologies. Meaning, for an iPhone we use Swift & an Android we use Kotlin.

But, you could also choose to go with a more hybrid approach. We had a really early iteration that was a cross-platform React Native technology. Something like that can work great if it’s a fairly simple app and you’re on a team that doesn’t have the resources to develop two separate application. It was great for getting a Proof of Concept out the door, but with the complexity we have at BC we decided to do it properly and build out two.

There are a lot of different tech stacks you could go with, but we felt it was important to go native.

Do iOS or Android apps perform better? Is it important to have both?

Dan: You should see our Slack! We have the Android vs. iPhone emojis flying back-and-forth all the time! I would say they both perform similarly. You can absolutely have two different apps, on each platform, that perform differently, however we really work towards having a 1:1 performance between the two. I think in our case, we’re pretty equal on that front, and absolutely it’s important to have both.

We’ve found while we’ve been growing internationally that while in the United States and other similar Western countries there’s a lot more iOs adoption, but when we get outside those borders, Android totally dominates. So, we’d be shutting out a lot of users one way or another.

Chris: When I hear this question, I think of App Store performance. Android definitely has the larger user base, internationally. iOS is the leader in the US. Since we’re focusing on internal expansion, it’s important to ensure both experiences are prioritized.

What are the “Best Practices & Industry Standards” when it comes to building a mobile app?

Chris: There are a lot of different best practices out there. Swift UI & Compose are definitely the standard that is quickly being adopted by the industry. Even apart from that, if you were to not use those newer technologies, the underlying principles that they bring — that reactive style of programming — has definitely taken hold. Now, most apps take a more reactive approach.

Dan: Both of these platforms [iPhone and Android] are very generously supported by Apple and Google and they make lots and lots of developer resources available. And not just developer as in the code part, but also the design part as well. There are design guides for both platforms that really help everyone build a consistent app. Those resources are available across the board!

How do you make your app work in other languages?

Chris: That’s a great question! That’s one of the things we really have valued on the mobile team is that the mobile apps, by default really, are set up well for localization. So, when we as a company made the decision to localize the entire platform and make it available in different languages, it was a lot easier task for our team that other teams.

The mobile apps are, by their very nature, set up for that. What I mean by that is that they — the framework you build an iOs or Android on — already had support for putting in your different translations. We only had an English file with all of our strings, but it wasn’t hard to add a German file and a Spanish file. And then the device controls which language gets displayed by the user going into their device settings. We don’t have to anything, the device just handles that for us.

What tools do you use to make the apps consistent between iOs and Android?

Chris: In terms of consistency, one of the most important things is consistency of design and user experience, and to that end we rely heavily on our Design team to plan out what the screens are going to look like and taking into account the differences between the platforms.

So, for instance, a text box that you would use for user input, look different on iOs and Android because they both have their own design style that the system uses. We could have forced those boxes to look identical on both, but it wouldn’t feel natural to the user. We spent a lot of time talking about what we need to keep consistent between the two and what we want to be particular to each from a design standpoint.

We have different websites and online tools we use for things like that such as Figma. We also have tools to be consistent in terms of the quality of the app, like bug reporting tools that notify us of things like crashes. That really helps us take care of bugs quickly, and if there’s a bug on one app there’s likely a bug on the other. But, there’s no tool to develop a feature on Android and copy it to iOs — we’ve got to develop those independently — but we can use the shared learning across the teams.

Dan: I’m really impressed at how well our Design team has been able to develop designs that can be made so consistent between the two platforms. I’ve definitely worked on apps that were significantly different between iOs and Android. Our designers have done a lot of work on the front end figuring these things out.

How do you ensure an app is performant, and should you use REST or GraphQL?

Chris: There are things you can do to make the app more performant, like not downloading more data than you need. The user may be roaming or on 3g and need to make decisions. So we’ve decided to only load a small amount of data as the user is viewing it, to help with performance. Caching also helps.

In terms of which tech to use, this depends on the server you intend to use. We started with REST, for example, but have recently moved to GraphQL (like our admin features). Once the GraphQL resources become more available, we’re looking to increase our use of this. The best use case for GraphQL is the orders page. This has customer info, catalog info, and order info that is required to pull. With GraphQL we could access this data with a single query, for example.

What are some things to look out for when adding coupons and discounts to a checkout cart?

Chris: When you’re adding a coupon you need the coupon code, so if your system has similar codes — make sure to type it in correctly. On our mobile app and a user adds a coupon to the order, we display what the coupon is for because they may have mistyped something. We want to make sure we make it clear to the user what coupon they’re applying before they save that order.

Also, make sure you know how your coupons and discounts work. Complex rules are an area to look out for as these can cause complications to the overall pricing. For instance, is this coupon/discount applied before or after tax? Is it a percentage of a product or of an entire order? Be sure you’re really aware of the rules you’ve set up before you allow coupons to be applied to your orders.

What do I need to think about when taking payments in an app? Charging people to use my app?

Dan: Great Question. Both of the platforms, Apple and Google, want to take a cut of any money you make in these apps. Generally it’s 30%, and sometimes they’ll cut it down a bit for subscriptions or if you’re huge like Amazon or Netflix you can negotiate. But, for an average developer, there will be a take from the platform, which is fine! They’re allowing your app to get seen by possibly millions of users. You can adjust your pricing to make up for these rates. Privacy may also need to be considered in this.

Chris: If you want to charge to download your app or charge for things inside your app, there will be cuts from Apple or Google. For instance, the BC platform, people pay to use the platform, but they don’t pay to use the app. The app is a free app which requires having a paid account on BigCommerce. So, there are ways of being able to monetize your work and not have to pay Apple and Google if you can do it outside of the app itself.

The other way you can deal with this is by deciding what it is you’re charging for. If it’s for some digital content or feature of the application, Apple and Google are going to want a cut of that. But, if it’s for a physical product, which many of our merchants sell, then they don’t take that 30% margin off of what you might be making a 2% margin on. They made the decision early on that if you’re selling physical products you don’t have to pay those margins to Apple and Google.

What has been the history of the mobile app at BigCommerce and what is on the horizon?

Dan: Back in 2018 we had an app , but we did not have a dedicated team. I was the first hire for that and started growing the team over the years! With this we were able to expand the capabilities of the app. Originally, it was a React Native app, but we found out within a few months that the long term ideas and design we have in mind was way too complex to stay with React. Now we have the two separate native apps.

Chris: Some things we’re currently working on is the ability to create draft orders via the app, this would include the functionality to send draft orders to customers and sent the checkout page directly to your customer for checkout. Also taking payments for orders via the iOS app, which is currently working for Android. Another thing on the horizon is to expand the mobile app analytics view!

What are some cool things you can do with the BigCommerce mobile app that might not be obvious?

Dan: You don’t have to sit in front of your desk all the time to manage your store. If your warehouse manager sends you a text while you’re on the go, this app gives you the flexibility to live your life and manage your store at the same time.

Chris: I think of the use cases in which someone would be using our app. For example, a long time customer calls you regarding an issue with the order while you’re at the airport away from your desk. You can help that customer in the moment rather than needing to wait until you’re back at the office. Win-win!

And that’s a wrap on our Mobile Apps AMA! Huge thanks to our engineers Dan and Chris for participating in this AMA and answering so many burning questions from our Developer Community. If you’re a developer and build on the BigCommerce platform, join our DevSlack community by applying here!

If you still have questions and this blog doesn’t answer them, comment on this blog or tweet at me @Katie_Hoesley or @BigCommerceDevs. We can’t wait to hack with you!


Top comments (0)