91: Native App, Hybrid App, & PWA Battle Royale with Austin Betzer of Strides DevelopmentPublished September 14, 2021
Run time: 00:59:36
One of the first decisions to make when building a mobile product is to determine which technology it will be built on. Austin Betzer from Stride Development joins the show to discuss high level differences between native apps, hybrid apps, and PWAs (progressive web apps) then dives into the benefits and limitations of each before ending with his (slightly biased) recommendation on which technology is best for developing apps. Let's get ready to rumble!
In this episode, you will learn:
- Which apps are built the way platform operators intended
- Why hybrid apps are becoming more popular
- Why PWAs and no code tools are treated like second-class citizens
- Why PWAs are good for validating products
- The limitations of push notifications in PWAs
- Why PWAs have a discovery problem
- How a one codebase solution can be a win
- Why you should consider what your developers and teams want when deciding on an app platform
- The value of hybrid platforms for backend heavy apps
- The risk of middle dependencies in hybrid apps
- The large support community behind native apps
- Why building natively is more expensive upfront
- Why resuscitating apps built on hybrid platforms is costly
This episode is brought to you by The Jed Mahonis Group, where we make sense of mobile app development with our non-technical approach to building custom mobile software solutions. Learn more at https://jmg.mn.
Recorded August 19, 2021 | Edited by Jordan Daoust | Produced by Jenny Karkowski
Strides Development website | https://www.strides.dev
Austin Betzer on LinkedIn | https://www.linkedin.com/in/betzeraustin/
How to Build an App Podcast | https://www.strides.dev/podcast
The Google Graveyard | https://killedbygoogle.com/
JMG Careers Page | https://jmg.mn/careers
Connect with Tim Bornholdt on LinkedIn | https://www.linkedin.com/in/timbornholdt/
Chat with The Jed Mahonis Group about your app dev questions | https://jmg.mn
Rate and review the show on Apple Podcasts | https://constantvariables.co/review
Twin Cities Podcast Hosts UNPLUGGED event details | https://emamo.com/event/twin-cities-startup-week-2021/s/twin-cities-podcast-hosts-unplugged-part-1-okd8rN
Tim Bornholdt 0:00
Welcome to Constant Variables, a podcast where we take a non technical look at building and growing digital products. I'm Tim Bornholdt. Let's get nerdy.
A few housekeeping items. First, we're trying something new with ratings and reviews for our shows. We know that asking this is really annoying, but getting reviews is super valuable to us. So as a thank you for taking the time to rate and review us on Apple podcasts, we will give you and or your company a shout out on the show. Leave a rating and a review on Apple podcasts and get free advertising. It's really that simple. Just head to ConstantVariables.co/review and we will get you right there.
Second, we are hosting our first live event next week. If you like podcasts, which assuming you do and you live around the Twin Cities, join us on Tuesday, September 21 at the Machine shop in Minneapolis for Twin Cities Podcast Hosts Unplugged during Twin Cities Startup Week. We're bringing together a group of local podcast hosts to learn how they're using podcasting as a sales and marketing tool. I'm flipping the mic on Ali Kaplan, Kurt Schmidt, Mike Jackson, Kevin McArdle and several other podcasters so bring all of your entrepreneur, marketing, sales, tech, and any other burning off the wall questions you may have and ask them anything, you can get your ticket and learn more about our event, Twin Cities Podcast Hosts Unplugged by visiting TwinCitiesStartupWeek.com. We will put a link to the event in our Show Notes for this episode as well.
Today we're chatting with Austin Betzer, owner of Strides Development. Austin is an iOS developer by trade. And he joins the show to chat about the various app development technologies out there, kind of a battle royale between native, hybrid, and progressive web apps. So without further ado, let's get ready to rumble.
Austin, welcome to the show.
Austin Betzer 2:14
Thanks. Super excited to be here.
Tim Bornholdt 2:16
I'm trying to remember how I first came across you. I'm almost positive it's because you've been pretty prolific on LinkedIn. And it was just like, I got to get connected with this guy. But you should, you know, tell us a little bit about yourself and how you got started with Strides.
Austin Betzer 2:29
Yeah, so I'm basically a, I want to say normal person from a small town from Idaho. So I guess not so normal, grew up in the basically farm town life, really everything was potatoes and agriculture. And basically, as I was growing up, I just knew that I did not like that lifestyle. I didn't like moving pipe and growing things. And so I basically ended up moving to Utah, where there's more of a tech scene, ended up getting into technology, went to a coding boot camp, and basically learned iOS development. And basically over the last five or six years, since I've been doing it, I've basically ended up learning a ton, like anybody else who's been in an industry that long. I ended up starting a company called Strides Development. And basically we focus on building custom software.
And the funny thing is, is it wasn't even intentional. My goal wasn't to really just start like an agency. But basically over the years, I ended up just doing more freelance jobs over time, ended up having a bunch of success, grew the team to now about 20 to 25 people. And basically, yeah, we build software and focus just a ton on communication, transparency. And I really just love the product and the business side of all of it.
Tim Bornholdt 3:55
I think we've got very similar career trajectories, because that's what I tell people to is I never intended to start an agency. I just was like, I want to build cool apps and just kind of fall backwards into it.
Austin Betzer 4:06
Exactly. Yeah. It's like, really, if you're good at anything, I feel like more and more people end up start coming to you. And at that point, you're just kind of, you have to make a decision. It's like you either start telling a ton of people, No, which like hurts your soul, or you decide to kind of go like the business route and build up from there.
Tim Bornholdt 4:26
So you're saying we started agencies because we're people pleasers, and we need to work through that.
Austin Betzer 4:32
Exactly. 100% right. We're, Yes people.
Tim Bornholdt 4:37
Oh, man. Oh, so much therapy. Okay, so I've got you on the show today, because I think we can have a really interesting discussion around how to actually build apps and I mean, not necessarily like the strategy, I mean this is basically a strategy, but not necessarily like the design or anything like that. Just on a high level, you know, there's really three different kinds of ways to build apps for phones. And I figured, you know, especially when someone comes to us and comes to you, one of the first decisions we have to make pretty early on is what we're going to do, like how we're going to build it. And like I said, literally there's three things we could do. We could either build native apps, we can build hybrid apps, or we could build progressive web apps. And we'll probably call those PWA's interchangeably as we get into the thick of things. But I figured at a high level, I want to hear your perspective on what is a hybrid app? What is a native app? And what is a PWA?
Austin Betzer 5:32
Yeah, so basically a native app, the best way to think about it, or to put it in really simple terms, is it's really just a language that ties directly to a specific operating system. So it's just a one to one. So for example, like, if you want to build a native iOS app, you'll build in Swift. You want to build a native Android app, you'll build it in Kotlin or Java. But it's basically a language specific language designed for one specific operating system.
Tim Bornholdt 6:02
And to piggyback on that, too, it's like Apple for iOS, they give you the tools to build specifically on iOS devices. So like everything you're doing is specifically catered towards iOS. And then Google, conversely, through Android makes things specifically targeted towards Android. So you're doing what the platform vendors are basically saying is the right way to do it.
Austin Betzer 6:26
Exactly. Exactly. And I definitely I'm biased. I prefer the native route 100%.
Tim Bornholdt 6:32
Austin Betzer 6:34
Yeah, to kind of jump into like, there's this next set too, the hybrid app, like you brought up. This is definitely becoming more popular. I will say for good reasons. But then there are a lot of like bad reasons too that it does get hyped up for. And I would say that the two most common ones right now for hybrid is React Native and Flutter. I say that they're most common because I really don't hear about Microsoft and Xamarin very much. But React Native and Flutter are really common right now. And that basically, using those two languages or frameworks, they allow you to build cross platform products. So you have one code base, and you're basically able to deploy it to Apple, Google. With Flutter they just released like desktop and like web. And so things are definitely growing like crazy in the hybrid app space.
Tim Bornholdt 7:27
And I know, you were mentioning Xamarin, I think if you're working in a corporate environment where everything is like Microsoft stack, I found that's where you get a lot of Xamarin is where people kind of just adopted Xamarin right out of the gate. And now people are kind of like, What do we do with this Xamarin thing? I guess we either need to move to one or the other, or you know, some people are kind of digging their feet in. It's really interesting with how many different kinds of hybrid app like platforms there are.
Austin Betzer 7:54
Yeah, it's super interesting. I don't get approached by very many vendors who use the product, but at the same time, yeah, it's used by a lot of big corporations. But I think at this point, they have to use it because they've spent so much time and money in the system.
Tim Bornholdt 8:09
The old sunk cost fallacy.
Austin Betzer 8:11
Tim Bornholdt 9:03
Yeah, I've been seeing a lot of people using PWA's. But it is interesting. And I think that's probably a good place to jump in is like kind of going in the opposite order and really drilling in on pros and cons. So like, let's jump into it to PWA's. I'm glad you lump no code solutions in there, too. We didn't even really plan on talking about that. But I'm really glad that you brought it up. Because I think a lot of times they are treated as second class citizens compared to a hybrid or a native solution. But there's the vendors like and by vendor, I mean, like iOS and Android, are starting to increase support for them. Android's been pretty good with them the whole time. But iOS is always kind of the, we've come a long way from when Steve Jobs said that the sweet solution is web apps and then all of a sudden they were like, Oh, we have native apps. Pysch. So like in your experience, when does it makes sense to build a progressive web app?
Austin Betzer 10:03
So I would say the number one reason to build a progressive web app is to validate your your product or your offering. And the reason why is I feel like the barrier to entry with all of the tools and things that are out there now is much, much lower, which also has a double headed sword. That also means there's a lot less customization you can do. But I think in general, if you're just getting started, and you don't want to go right away into building a custom solution, actually going and building a progressive web app to get feedback from your customers is a great way to go.
I think the other reason is probably going to be cost. Like when you're building something, and you don't have like, a lot of money, but let's say, so I would say as a new person, or a new founder or a new company, like you really have two things. You either have a lot of time when you're starting, or you have a lot of money. And I think you could probably lump it in those two sums. So if you don't have money, but you have time, because the barrier to entry is so low, you're able to kind of jump in and build these PWA's to get that feedback, to validate your product before you actually start spending, you know, money on custom development.
Tim Bornholdt 11:14
Austin Betzer 12:01
Yeah, and I guess, to your point, I always, it's kind of funny, because I definitely spend more time at least in the PWA space thinking about the third party tools that like allow you to build these, but yeah, like, there are a lot of people who have like, there are a lot of companies who have that already existing team of developers. And basically, yeah, it's a great way to kind of like AB test things too, before you know, rolling it into something custom. There's definitely like that, kind of just like you said, PWA's has come and been like a second class citizen. And I think it's definitely becoming more popular.
Tim Bornholdt 12:39
So those are the very short list of pros. Now let's go over the more lengthy list of what are some of the drawbacks of using PWA's compared to native or hybrid apps?
Austin Betzer 12:51
So I think, and I guess, to kind of hit like, assuming everybody has, you know, a larger development team, I think the biggest drawback is the lack of support that Apple gives currently for it. So it kind of like you mentioned earlier in this conversation. You know, Google has been, you know, okay with it and allowed it. But recently, like Apple, I feel like is just barely starting to open more stuff and making it accessible to create more implementations. But you don't get a lot of the features like Touch ID, Face ID, like the big things that Apple is pushing like AR kit. And there's just a lot of things you can't do, I guess, with a PWA app. And then to my knowledge right now, like with PWAs, aren't you only allowed to get web notifications? You can't actually get a native push notification, can you? Or has that changed recently in the last couple of months?
Tim Bornholdt 13:44
I think you're right. I'd want to double check. But that's my understanding, too, is yeah, you're not running through the same notification system that native apps would run through. You have to kind of roll your own and use a different solution.
Austin Betzer 13:58
Yeah. And I think that's a huge downside, mainly because like, I think the big thing with progressive web apps is, you know, it's something that you can develop, you can instantly bring value to your customers, you can then prompt them to install it. But I think the piece that like business people or product people are always focused on are, focused on retention. And I think with notifications, that's like the best way to bring people back into your product. And so I have a really hard time with PWA's specifically because of notifications. And then, like the lack of custom integrations you can kind of like roll. But in general, yeah, there's a lot of downsides of PWA's, but at the same time, those couple of upsides too.
Tim Bornholdt 14:46
Well speaking of like retention, I think another kind of con is that these apps aren't in the App Store or Google Play, so it's kind of like a discovery problem and an ability for customers to actually figure out where these go, you have to kind of direct them to a website or some other way to actually, you know, quote unquote install them. And I'm doing air quotes on a podcast, I don't know why. But to install of a PWA is basically like saving a bookmark on your homescreen. And then that kind of gives you a little bit of a native feel to the app. But yeah, I think a big downside is that kind of discoverability of these PWA's.
Austin Betzer 15:29
Yes. And that's huge. And that kind of jumps into the next thing like with it being on the home screen, like when it's on your home screen, like people expect this product to work just as well as a normal app, which I think also kind of puts you in a little bit of a disadvantage, depending on what you're building. Being the next thing like, I think the big sell with PWA's is it allows you to build kind of like this offline mode. And I think there's a lot of limitations with that. And so that's like, you can build it, and it's good, but it's better when you can build it custom and natively
Tim Bornholdt 16:02
Agreed. I haven't seen a whole lot of PWA's and maybe I'm just not the right ideal target for it. But the ones I've installed have been, I see them as like, hey, it's a really cool proof of functionality, like Samsung came out with a thing that you could install on your phone that on your iPhone to mimic what an Android experience looked like. And I was kind of going through it and thinking like this is actually pretty slick. But then you would really quickly like when you try to play a game or something you'd like run into the walls that are obviously put up for what a PWA can do. So I really see them, like you said, that the utility of them is really in being able to quickly prototype something and get the gist of it. But then when you actually put it into production, it's sometimes can run flat.
Austin Betzer 16:48
Yes, exactly. I 100% agree with that. I have not used a lot of PWA's. I've done very little work with them.
Tim Bornholdt 16:57
Have you built a lot of web apps in general? Or have you mostly just been on the native app side?
Austin Betzer 17:03
I've mostly been, in terms of my personal, like, when I actually put my hands at keyboard, in terms of my experience, I have mainly done native development. I haven't built a lot of web applications. I've tinkered with it, but I've mainly stayed native. Yeah, iOS.
Tim Bornholdt 17:21
And I think like PWA's to me feel like the web of like, you know, before the dot com boost or boom, bust. It's this kind of like individualistic, renegade kind of band of people that are gonna say, like, we're not going to stay with the system, we're gonna, we're gonna have the open web, and we're gonna have like, you know, Linux is the, it's the Year of Linux on the desktop kind of people, which is like, it's really cool. And I'm really happy there are people out there, but it is to me, it seems more of like a hobbyist venture, than if I was running a business, I probably wouldn't put my balls in the PWA court.
Austin Betzer 18:02
Yeah, definitely. I agree with that, mainly because just like you said, it's like the people who I mean, like, if you're building a PWA, it's for two reasons. And I think one, it's to validate your product. Or two, it's because you haven't decided to commit to your customers yet and build out like a custom product. Because I think that's the expectation, right? Like, if you have like this PWA, like, you're trying to get the data to figure out how many people are on, you know, the mobile device. And once you have that, like you've got to jump to an app, because that's what people expect. Like they expect the native feel.
Tim Bornholdt 18:42
It does come down to expectations at the end of the day, which I think that really leads well nicely into the next topic of going hybrid. So, you know, we're kind of moving into territory of apps you can actually download from the App Store and Google Play now. And I think I'm really curious to hear like, you know, your experience with hybrid apps and what you think are some of like, you know, when it makes sense to use hybrid systems to build apps.
Austin Betzer 19:13
So I think, kind of same thing as last time with PWA's, very similar situation. I think when you're building a hybrid app, a lot of the time that you're building it is to kind of see if you have that product market fit. You're like in a position or you're in a market where to like really test it, you kind of need to be in both spots. And you need to build really quickly and your goal is to try and do it as inexpensive as possible. And I think that's really why people build hybrid apps. And I think really like a pro for it too is like it's that one code base solution like it is a win depending on what your business goals are. And so yeah, I think if you're just doing proof of concept or if you have a really simple design, that is like a good reason to do it. If most of your value is like backend based and less like front end operation based, which I assume we'll dive into in a little bit, then like considering a hybrid app, isn't a bad thing.
Tim Bornholdt 20:25
So one thing you mentioned, before we get into the world of backend stuff, you had mentioned one code base for all platforms being a win for depending on your goals. What are some of the goals, like if I'm a business, are there some ideas that you think might be better suited to have like that single codebase?
Austin Betzer 20:48
So I guess specifically, I think, for example, like an industry, which would be a win is like, probably any marketplace app. So like, if you're selling just, I think of like Facebook marketplace. That would be a good example to build like a react React Native app. All you're really facilitating is some pretty UI and some information and you're not really performing any complex like operations. And when I say one code base, and like achieving business goals, so like, there are kind of two things for it. There's like that, I want to say there's like the business advantages. And then there's like the developer advantages. And I want to say there's more business advantages with a hybrid application than there are development advantages. And the business advantages, there's less redundancies, right. And that redundancy is having to write a feature or the business logic once. And I think that's a win on the business. You don't have to pay two product people, two project managers and two separate people. But I think from a developer standpoint, that can be a win if it's simple. If you're doing complex stuff, I definitely prefer to be on separate teams implementing things my way and not being limited.
Tim Bornholdt 22:07
I think that's one pro as well that you kind of touched on was like developer goals, because I think a lot of times, I see people that want to build apps, but don't want to commit to learning native applications, but already have extensive web experience, find these kind of hybrid solutions to be a really good mix. Because when you compile the apps down, you still have to kind of jump into like Xcode and Android Studio at the end of the day to get the apps kind of working right. And so I think it's one of those things where like, if you have a team that's already really strong with web technologies, going with a hybrid solution, and doubling down on that can be a win from the business if your business goals are to utilize the talent that you already have.
Austin Betzer 22:58
Yes, I think that's exactly right. Because it was interesting, like, a couple days ago, I was reading kind of like Airbnb's article as to how they started a switch to React Native and then like, went back, but then I was also reading another article where somebody, who was that. I don't remember the name of the company, but they ended up rebuilding their entire platform into React Native. And basically, long story short, where Airbnb kind of messed up is they tried to, like take their existing native solutions and build in React Native, and it just didn't end up working for cross team compatibility. There are just a lot of hard problems they had to solve, versus this other company decided to rebuild it completely from scratch, took about two years to redo it. And they ended up having some advantages, mainly because a large portion of their team were web developers. And that's what they're most familiar with. And so it ended up increasing productivity and happiness of the developers at the time. So I think that's also another thing you have to consider when you're making that decision is like, what do your developer teams want? And are they okay with it? Because that's a big decision to make a switch or to pick something but most cases, most people listening to us are probably just getting started.
Tim Bornholdt 24:20
Well, that makes sense. One other pro that you had mentioned too that I said we'd get back to is saying that if your value of your app is backend based. So maybe let's unpack that a little bit like what kinds of apps would be more valuable like or that you would say are more kind of back end heavy as opposed to the front end, which would be like the app itself?
Austin Betzer 24:42
So for example, I guess kind of going back to like Facebook, for example. I'm pretty sure Facebook's app is mostly React Native, last I checked, and they do a lot of complex operation on the back end to decide what you're gonna see and like, all of these complex operations, I want to say. And all you're really doing is displaying that on the front end, right. Or, for example, like a marketplace app. You've got a bunch of listings on the back end, and you need to be able to filter based on a bunch of operations, like, you don't need to do that on the client, that's a back end operation that needs to be done. And your only goal is to serve it up. Now, on the flip side, let's say you're building like a video editing app, or a custom streaming like implementation, a lot of those require a lot of heavy front end solutions. And in React Native or in a hybrid app, you can't. It's super hard to work really, really low level if it's even possible to work as low level as you want to have those two things.
Tim Bornholdt 25:52
Yeah, I think it's a good point, like there are certain apps like if you're building a social network, or something like that, I've seen a lot of companies going back to what you talked about earlier of like, flipping between, you know, we built it all native, and now we're going to use React, and then they flip back, like that was Facebook, classically. They tried to implement an app that was all html5, like, effectively, like a hybrid app. And then they found that they couldn't, and they went back native, and all of us native developers kind of were like cheering that on, and then a few years later, then they release React Native, and then they kind of have, you know, kind of shoved it right back in our faces. But again, their priorities, I think are, they want to try to have that kind of unified one ring to rule them all, so to speak.
Austin Betzer 26:48
I was just gonna say, Facebook wrote an interesting article just on like their entire messaging app, right. So like, one of the most performant apps that we use, well, one of the most important things that we all do as humans every single day is message each other and kind of going back in to like complex front end like operations like specifically their messenger app, they basically had to build it natively to get the performance that they needed in order for people to be happy. Being able to see your messages instantly, get new messages or not have service, like all of those things require a lot of front end, I guess, offline mode functionality and syncing, that require a lot of performance things. And, like, that's another reason why like, if your product is very back end focused, like I think it makes sense to build a hybrid app. But if it's, again, if you're really focusing on performance and creating the best user experience possible, like you're gonna have to do something native.
Tim Bornholdt 27:50
Austin Betzer 28:55
Yeah, I think there are two things like with that. And the two I say most common I would say is like React Native and like Flutter for these hybrid apps. So I'll probably refer to those two the most. But in general, like you have to understand at the end of the day with React Native, what it's doing is it's compiling down like these, I want to call like bigger components or UI pieces, into native components. And so that transition from taking, because at the end of the day, let's say you're putting a map on a screen. In React Native, you're putting a map on a screen, and that map has to be transformed into an Apple map, and then transformed into a Google Map. And that operation can be expensive and take a super long time. Right? Whereas like Flutter, where I think the conversation kind of gets interesting, Flutter probably does that with maps too, in all reality, I don't know. But where Flutter most of its components are not native components. It's not been compiled down to like a native specific thing that Apple has produced and said to use or Google has produced and said to use.
Tim Bornholdt 30:09
Right. Effectively what hybrid apps, I mean, it's kind of putting a little light on us. But it's essentially like, look at the agency model, right? Like you've got like a company that wants to build an app. And then you've got a set of developers. And then there's the agency sitting right in the middle that's kind of translating the needs of what the business is asking for, into like the developers actually producing the work. If you translate that kind of concept into a hybrid model, you've got kind of a set of requirements that are written up on one hand, and then you've got like, on the other hand, the actual app being displayed on the phone, and in the middle sits this layer that's kind of translating between the two. And anytime you insert more layers in between the actual work being done on the phone, and the requirements that it needs to do, you're going to introduce some sort of performance hit. So that's kind of like what I see as the biggest issue with hybrid apps is you've got this middle dependency and the middle dependency, I've been doing web software for like 25 years, and I remember the glory days of Flash, right. Like everyone's website, at one point, like even your restaurant down the street had to have a fancy loading screen with this crazy, great animation of here's the menu, you know, and as soon as the iPad or the iPhone came out, and Steve Jobs was basically like, we're not going to support Flash, like it's done. All of a sudden, you have like millions of websites on the internet that no longer can function. And so Flash effectively dried up and died.
Austin Betzer 31:51
Yeah, like I was gonna say, you're totally right. And that's like, I feel like a good segue into like, you choosing to build a hybrid app are basically putting yourself willingly in that position. At any given point, I feel like Apple could just be like, Yeah, we're done with this. And they've done it with stuff like that, in the past, or Facebook. I mean, Facebook I feel like has had a pretty good, maybe, a pretty good record of not killing stuff. But in comparison, like Google, Google kills things all the time. Right. So, but you're at basically the mercy of Facebook and Apple getting along, which if we look historically, especially with the last two iOS software updates, they're not necessarily on the best terms.
Tim Bornholdt 32:33
And at the same time, like I think, well, first of all, if you haven't seen, you should look up the Google Graveyard, because that will show you all of the products Google has killed since they've started and it is mind blowing how many things they've bought, and just destroyed or built and let kind of rot. That's that's always been my concern is there was back in 2014, speak of the devil, Facebook decided to buy the service called Parse. And Parse was this like back end as a service platform. So like, if you didn't want to write your own server code to store data, or, you know, do any of those complex back end operations that Austin was talking about, you could use Parse and have effectively like your own back end stood up, and you don't have to do anything, like all you have to do is focus on front end code. So there were all these apps that adopted Parse, and it was like the darling of indie developers for so long. And then Facebook came along and bought them and they made this big grandiose announcement where they're like, we're gonna support Parse definitely. And this is definitely our thing. And it was like, I think, weeks after they announced that, like, had that big announcement where they're like, actually, you've got one year and then we're shutting off Parse completely. So then effectively they bought this thing that stood between you and building your own server, and just basically killed all these apps because of that. So I think you're right like you're really, if you're going to go the hybrid route, it's a concern and a risk you have to be willing to take of is the community around React Native going to stay and keep this thing alive? Or is Facebook just going to turn around and when they kill it and stop supporting it, then the whole thing kind of shrivels up?
Austin Betzer 34:20
Yeah, and that kind of goes back to like one of the next like downfalls kind of hitting on like performance, but then community, right. React Native and React have been around for a super long time. Well, React has been around for a while. Reach Native's, obviously quite a bit newer and is starting to build, like this wide audience of contributors. But when you actually start to go build something in React Native, there are still a lot of third party things, or a lot of pieces and libraries that haven't been built to make developers lives lives easier. So for example, let's say you want to build like a custom, you know, piece of like UI and it's super fancy. Well at the end of the day, if there's not like a library or like that component doesn't exist, you're still going to have to come up with some hacky solution. And at that point, you're basically going to take a performance hit. And it goes back to like, if you're building a hybrid app, you've got to be building simplistic UI wise, or else, like, there's going to be too much translation that has to be done, and it's going to end up, you're gonna end up building like a choppy product. And maybe you can sum that up in better developer terms.
Tim Bornholdt 35:30
I think you're totally right. There's so much with like, hybrid apps that I can see on the one hand, like there's the pros of again, like I think fast iteration, of using web technologies, of kind of getting something out the door quickly. But from my standpoint, hybrid apps, just it kind of comes down to, again, like what your goals are. Are you trying to build the best quality app and have the best user experience that you possibly can? Well, I think on one hand, you could deliver that with a hybrid solution. But there's things like, other kinds of things we haven't even touched on of like accessibility, which just take that as its own individual thing. Like accessibility, I know that there are some, there's some components that you can kind of link together, but it's already, like developers, for better or for worse, don't really think about accessibility all that much and kind of lean on the system provided. Like if you're building a native app, that accessibility stuff is kind of baked in. So you don't really have to think about it until you know, you actually should think about it. But it's a lot easier to work with that than it is with again, having that translation person like in between, or we call a translation layer, but just trying to make it not super nerdy. If you're trying to translate, like do this thing, and now do it for iOS and then do this thing, do it for Android, you have to rely on other people really to make that translation work effectively. And so it really does come down to like pros and cons of what you're, I mean, we should probably switch into native to kind of lay out those pros and cons. But I think that's to me, those are the big things are the translation layer of it, and the performance of it is why I tend to not like those hybrid apps personally.
Austin Betzer 37:29
Yeah, I totally agree. And well, in some people, in some cases, not to carry on this piece to long, but in some cases, you like can't even do it. So it's like the React Native like Bluetooth hardware stuff, it's not like not great. Like, if you were to ask like these big companies, like I think of like Cricket, or like these laser companies that are out there that allow you to do like these custom printings, like you have to do such low level like C integrations and like Bluetooth stuff. And it's like you wouldn't even come close to building what you need to with a React or Flutter product.
Tim Bornholdt 38:05
Oh man, we didn't even talk about Bluetooth. But yeah, if you have like any kind of Bluetooth app, and you're not getting like, close to the metal, so to speak, like getting getting close to the ones and zeros that actually make up code, man, yeah. Bluetooth is hard enough. Don't make it harder on yourself by making a hybrid app.
Austin Betzer 38:26
Yeah, seriously. I agree.
Tim Bornholdt 38:29
So I think this section will probably be cut and dry for us, because I think we're both in the same camp. But I mean, you and I are both big proponents, obviously, of natively built apps. That's what we kind of specialize in. So let's just be biased a little bit and talk about, let's talk about the strengths of native app development and why that's kind of what our go to is.
Austin Betzer 38:52
I think one to kind of like reverse on hybrid is both these languages and tools have been around super long and have a crazy amount of support. So if you actually run into an issue, solving a problem, like typically isn't super hard. Seems like a small win. But it's actually huge in like the grand scheme of things. And so I think that's like one. There's just a huge community behind it, a lot of people contribute to it. And like that makes our jobs as developers much easier. But it also gives you really the customization to do whatever you want. It doesn't matter if you're building a complex Bluetooth like integration, or whatever. Or if you're building just a super performant, like video editing app, like you can do whatever you need in these mobile applications. So I think those are like the two big ones.
Tim Bornholdt 39:48
On top of that, I'd add like, again, like we said at the top of the show, it's like that's what Apple and Google tell you to do to build apps. So like it's kind of like if you're gonna hitch your wagon to an app, you might as well hitch it to what the platform vendors are encouraging you to do. Kind of my thought.
Austin Betzer 40:06
Yeah, exactly. Right. And that's like another I think like big win is like you get to leverage all of these new technologies. Like one big disadvantage of hybrid apps is it probably takes them a couple months to implement the new things that come out every single year during WWDC to like, really keep up with like the newest and best frameworks and things that Apple produced to allow us to build better products. And I think the next one is UX, like there is no denying that you can create a better user experience in a native app than you can with like a React Native product. You can create better UIs, you can just do, you can just write things that are just more performant, like in general. And it's really like what people are used to, like, a lot of apps are still built natively. And so like when you have a choppy hybrid product then people notice, people people see that.
Tim Bornholdt 41:01
And I would, just playing devil's advocate, I have seen some phenomenally done React Native apps. The one I always point to like there's a social network called Untappd that does things like, check into all your craft beers and stuff like that. And I've been using it for years. And I've always just kind of hit my head against the wall being like, why is it a hybrid app? Like I can tell they're using React Native. And they just launched a rerelease of it, like a couple of weeks ago. And I was like, Oh, yes, they rewrote it as native. And then I went and looked in the settings and saw the attribute, like you have to put the kind of open source frameworks you're using. And it's just like, React Native forms, React Native maps, React Native whatever And I'm like, No! Why!. But I've been using it for the last couple of weeks. And you know, it's actually decent. There are still, there's a lot of like weird quirks that you find with, like you said, with the UX of it, and the user experience of it, of just things like if you were to like be on one screen, and you leave the app, and then you come back into it, the app thinks that its screen size is like the old like 320 by 480. Like it kind of like shrinks everything up into it. And you're just kind of left with this weird glitchy, and it still works. But you notice these things. And I think users if they can't even articulate, don't articulate it in one way, they can still kind of tell like, Oh, that's weird. And then just kind of like, those little kind of death by 1000 paper cuts thing with UX, and with hybrid apps kind of really add up.
Austin Betzer 42:27
Yeah, totally agree. And that kind of jumps into like, I think, like, the next thing that I think people need to consider, or business owners need to consider is really just I feel like the happiness of developers, right. So like, you, I feel like you and I like we really, really enjoy building native apps. And so when companies decide to make decisions to switch to React Native or whatever else, like, our morale is going to shift based off like decisions that are made. And it's super funny that what you just mentioned specifically is kind of what I'm bringing up, like you have this app, you know that it's built in React Native, you had an update, you noticed performance was better. And then you still went and looked to see if it was a native or React Native app, right. And like these are, these are I feel like more nerdy, like developers are always paying attention to those things. And I think like maybe as like a consumer, you care about it less. But these are things that people do pay attention to, nonetheless. So I think that's interesting.
Tim Bornholdt 43:34
I agree. Cause I think, you know, the reason if you think back to like the early browser war days of like Internet Explorer versus Netscape, the reason like Firefox really took off and people like, you know, before Chrome was what everybody used, everyone used Firefox, and before, developers were the ones that first used Firefox. And it'd be like, hey, like, Mom, you're gonna install this on your computer at home and start using it. And it's like, developers are really your bleeding edge adopters, in a lot of cases. Like they want to see the new hot new thing. And so it's, you know, it is more of like a business kind of a softer reason, I think for like why you should atop native, but it's true. Like I think, right now, as we record this in 2021, I have never seen a developer market like this, like finding good developers is super, super hard. And the easiest way to lose a developer is to make them use tooling and frameworks that they don't want to be using.
Austin Betzer 44:37
Yeah, I totally agree with that. It's like a whole thing. And again, it's not something that I think a lot of business owners take into account, but it's still super important. And it's funny. I'm a part of like a developer's Slack group. And literally the other day, I think, one 1Password posted on Twitter that they were doing something and a bunch of people got super mad and it's just like, I mean, who are the kinds of people to most likely use one pass? Like, I feel like a lot of developers, a lot of companies, and it's like, that's like if you're b2b specifically, so I think of like apps like Slack, 1password, like making those decisions will affect you for sure.
Tim Bornholdt 45:18
So you mentioned Slack, like Slack if you use the Mac version of it, it's built using a hybrid tool called Electron, which effectively wraps web apps into native apps. And you can like, early on in the Slack days, you know, like, you can sign into different teams, and I'd be signed into like 20 different teams and any time my computer booted up, it would like it, the CPU would spike instantly. And you could just tell like it was just hogging resources for like, just terrible reasons. Where native apps, you can be so much more performant and efficient, because you're tied right into the framework that the system is providing for you. So it's all those like little things that add up.
Austin Betzer 46:02
Well, and I think, like kind of the next thing to even get more technical, right, like talk about like, teams, right? So it's like, I think we're kind of to a place where a lot of companies are wanting to build micro teams to work on micro features. And it's easier to do that I feel like at a native level, like you just have your iOS teams, and they have all their problem and you have people familiar with what they're working on. And it's like, whatever, you don't have to worry about whatever crazy implementation need to be added to build it in, like React Native to support Android, or to support iOS. But I think that's like, something to also be paying attention to as well is just cross team like, I think it's a very common thing for iOS people to be like, ew, Android, right. So it's like, even in tech, like that same relationship is still there. So it's like the iOS people just want to be working on the iOS stuff and implementing iOS specific features. And Android people like they typically want to do that, too.
Tim Bornholdt 47:06
Yeah, I found that with like our team is all native developers, and a lot of them can switch hit, like they can they can develop for iOS, and they can develop for Android. But you can really tell when it's like, hey, like you go up to someone who primarily prefers iOS development, and you say, Hey, would you mind jumping into this Android code and fixing a couple of things? Like you can tell that they're not happy about having to do that. They would rather just be doing full time, one platform. You know, sometimes business calls for different reasons. But I think you're right. Like, there's something to be said about keeping your development team happy and attracting the right kind of talent to, you know, because if you have developers that are excited about using these new technologies, they're going to come to you with like, you know, we're the ones watching WWDC and watching Google IO and being like, Oh, man, have you seen this new like machine learning stuff? Like we could implement that in our app by doing a, b, and c, and they're just adding business value to you because they're paying attention to what these new technologies are. Where I mean, React Native developers, you have to kind of be everything for everyone. Like if Apple releases a cool new thing that Google hasn't thought of yet, you know, you'll probably have to wait a year until Google adds that into their platform, and then you can add it to your cross platform solution.
Austin Betzer 48:23
Yep, exactly. I totally agree with that.
Tim Bornholdt 48:26
So we've been really, you know, saying what are the good things to native development, but there has to be some cons, right? Like what are the pitfalls to building something natively?
Austin Betzer 48:39
I would say depending on your market, I would say to build natively has a higher upfront cost than to build a hybrid app initially. So if you're just getting started, and you're building and you have to for whatever reason, build an iOS and an Android app, you're probably going to pay more. I think the second thing like along that line is there is overhead in the amount of tests and like stuff that you have to write when you're doing it for two separate platforms. You've got two pieces of business logic that you've got to ensure that works to make sure your customers are getting something that's stable. And to have to write a bunch of business logic and a bunch of tests in both places from both a business standpoint, and a developer standpoint, like there's a lot of overhead in that. And I think the last thing is kind of going back to our argument with hybrid apps like you're specifically tied to Google or Apple, right? So to build a native app like at any given point, Google could cut you off or Apple could cut you off and you're in a weird spot.
Tim Bornholdt 49:56
Yeah, I think that's one thing I found with developing native apps is because you do have to treat them like they're two different products, and you want them to kind of mirror each other or be in parity with each other from a feature standpoint. And I mean, that can be one thing going back to the differences between a hybrid app and a native app is with the native apps, you really can make like an iOS experience, like people expect toolbars and different things to be in different parts of the screen, which is completely the opposite on Android, where they expect things to be differently placed as well. But I think that when you're building, like, whenever we're building things, I don't know how you guys do it at Strides, but we usually like lead with one platform and let them kind of blaze the trail with testing the integrations with your server or with other third parties, just kind of getting those integrations put into place and kind of blaze the trail, so to speak. So then the other platform can be catching, it's basically like they're always one sprint, or one step behind where the other platform is. And so if you're, it might, in theory, that could be a con of like, you're getting , especially like if you're building an app from scratch, and you're testing it with different users, it's like you might hear different things from the different platforms based off of where they're at. And you might get confused as to like, why is iOS so much further ahead than Android? It's like, well, that's by design. But that's still a con and it's still frustrating.
Austin Betzer 51:33
And well, and that's like, the thing is like people catch up on that. Like we have one of our clients has an app, and it was that similar thing. It's like we released a thing. I don't know if it was just like a family or like, whatever. But it's like one person had iOS, another person had Android. It's like, Oh, I can use this specific feature on iOS, but like my husband or whatever can't use it on Android. So I'm gonna leave a bad review on Android, like get this out. Right. And so that's something that you've got to be conscious of. And yeah, that's typically how we do is we try to pave the way with iOS and follow with Android. But there are some nuances with that as well.
Tim Bornholdt 52:14
I mean, and so I mean, I guess this kind of brings us to the million dollar question. Because I, again, if we're sitting in a room with a client, and they're saying, what technology should I use to build my app? What's your answer going to be?
Austin Betzer 52:27
My answer if you're talking to me, my answer is going to be 100% do it natively. But I think, at the end of the day, long answer form, it definitely depends on what you're doing, and what people are comfortable with, like at the end of the day. So if you come to me, and you want to partner with me, I'm gonna recommend, I would say, if we're gonna work together, like we're going to do this natively, and if we vibe really well, you'll probably build it natively. But if you vibe really well with somebody who does it cross platform, or whatever, like, that's okay, cause I think at the end of the day, it's like what your developers are experienced with is fine as a good start. But really pay attention to all of the things that we've outlined on the advantages and disadvantages.
Tim Bornholdt 53:13
I would agree. Again, depending on your business goals, I don't know many businesses whose goals aren't to be trying to make the best customer or user experience. But if you really do value that as your number one goal, native is the way to go. But in reality, there are other times where it might make sense to throw some, if you have a team of web developers already, for example, or if you already, if you have things in place that would necessitate a hybrid experience, then absolutely, like that's something worth entertaining. And I think, you know, putting the two of us against each other might not have been the best idea for this, because we're both kind of on the same side. And it's hard for us to be like, Hey, here's why hybrids are the way to go. There are times where hybrid is the way to go. And you should definitely be aware of those kind of cases if again, budgets and that kind of thing is your concern, then, you know, hybrids can be the right way to go. But I would argue, again, like if you're talking about true cost savings, you're probably going to be spending a lot more time fighting the framework to do things that it wasn't intended to do by running something on a hybrid solution, as opposed to just having two separate teams making the right solutions for the two different platforms that your customers are likely to be on.
Austin Betzer 54:33
Exactly like if you truly truly believe like at your core that you are creating a long term sustainable business, like your life will be much better for you build it natively. 100 percent.
Tim Bornholdt 54:51
I'll tell you like one last anecdote that I've noticed is over the years, it's pretty common for shops like ours to inherit existing projects. And I'll tell you that the times that people come to us with existing projects that are natively built, and I'm talking like maybe built five, six years ago, something like that, where a considerable amount of time has come and gone and no one has paid attention to the app. The apps that were built natively are so much cheaper to get up and rerunning than the hybrid apps. It's almost like an order of magnitude more expensive if you let your, you know, React Native, or like Xamarin, or Ionic, or whatever, if you had an app built hybridly, and you kind of let it sit and then want to resuscitate it, oftentimes, if they come to us with a hybrid solution, I'm like, it's not even worth it. Like, let's just rebuild it. Let's just rebuild it natively. So if you're really thinking about cost, and you're thinking about it from a holistic, from the whole lifetime of your app, I would argue that in the long run, it's probably going to feel more expensive to go native. But it's definitely a better bargain for you to build natively in the long run.
Austin Betzer 55:03
100% agree with that. And I think you brought up a little earlier too, hiring developers right now is super hard. And like, because iOS and Android development has been around for so long, like, odds of you being able to find a native developer is probably statistically higher than finding a really good React Native developer, because it's newer. You can still do it. But hiring in general is hard right now.
Tim Bornholdt 56:37
I agree. I think on that end, it's like you can probably find a lot of React Native developers right now. But they're all coming like straight out of coding schools and whatnot. So you're not getting necessarily someone who understands like, I think a lot of my friends that do hybrid development also kind of have a good understanding of the native development component, because you do have to, like, drop down from time to time. So it's like, if you're gonna go and hire a junior developer that can do React Native, they're probably going to be spinning their wheels for a lot longer like when they do have to have those cases where they have to kind of drop down and build something natively.
Austin Betzer 57:15
Yeah, totally agree.
Tim Bornholdt 57:17
Oh, man. Okay. So assuming that people listening to this aren't going to come to me first for app development, I think they definitely should talk to you as well, because I think we're basically on the same page with how we build software. But I want you to, I definitely want you to plug Strides and kind of tell people how they can get in touch with you. And if they want to learn more about doing all of this crazy software development stuff we've been talking about, how can how can they get in touch with you?
Austin Betzer 57:44
Yeah. So like you said at the beginning, I'm very, very, very active on LinkedIn. So if you hit me up on LinkedIn, like I'll for sure respond. If you want to know who we are, you can head over to Strides.Dev, that strides dot d e v. And then you can also check out our How to Build an App podcast on Spotify, Google podcasts, everywhere else, where we walk through basically what our process is step by step.
Tim Bornholdt 58:11
And I've listened to a couple of those episodes. And I agree, I think it's a really well done show. And if you've already binged through all of constant variables, and you're looking for more on how to get the best out of like app development, you should definitely check that show out. And we will put a link to it in the show notes as well. So, Austin, I really appreciate you coming on board today. This was a lot of fun.
Austin Betzer 58:31
Yeah, I have so much fun talking tech and getting nerdy is my thing. I love it.
Tim Bornholdt 58:37
Thanks to Austin Betzer for joining me on the show today. You can learn more about Strides by visiting Strides.dev.
Show Notes for this episode can be found at constantvariables.co. You can get in touch with us by emailing Hello@constantvariables.co. I'm @TimBornholdt on Twitter and the show is @CV_podcast. Today's episode was produced by Jenny Karkowski and edited by the lighthearted Jordan Daoust.
As I mentioned at the start of the episode, if you take two minutes to leave us a rating and review on Apple podcasts, we'll give you a mention in a future episode as well. Visit constantvariables.co/review and we'll link you right there.
This episode is brought to you by The Jed Mahonis Group. If you're looking for a technical team who can help make sense of mobile software development, give us a shout at jmg.mn.