That is the Question.
By: Carol Vercellino, CEO & Co-Founder
Hi, I’m Carol Vercellino, the co-founder of Oak City Labs software development agency, and with me here today is my co-founder and CTO of Oak City Labs, Jay Lyerly. Today we’re going to discuss the differences between native and cross platform applications. It’s a question we get asked about all of the time. Hopefully we’re going to give you high-level [information] and maybe some of the pros and cons between the two. Before we start off, we are a native shop, so keep that in mind.
Watch the video or read on below to learn more about these two options.
Carol: Jay, I know this is one of your favorite topics. Could you please explain to viewers what we mean when we say native platform versus cross platform?
Carol: what about some of the new things in the market like Flutter?
Jay: Flutter is that same kind of mold. It uses a language called Dash, which is Google’s language. Dash uses the Flutter libraries to talk to the system libraries, so there’s still that extra layer in there to translate between the non-native language.
Carol: Okay, so what are some of the benefits of using a native platform?
Jay: So with the native app, you’re going to get access to everything you’re ever going to need. It’s a wide open field. Also you’ve got one less layer in there. You’ve got your code and the system libraries. So that means less software, and less software means less plugs. There’s less to go wrong.
So, the downside with that is – with the “right ones run anywhere” thing, it never really turns out that way. First off, iOS and Android are different. Users expect them to run differently, so you often end up with a lot of bifurcated bits of your code where you have one section doing an iOS kind of thing and one section for Android to do an Android thing. So you get really messy code, which is hard to maintain in the long run.
Also with the platforms, again because there’s an extra layer in there between your code and the system stuff, sometimes they don’t have access to all features. Especially new things that come out, like in iOS 14, which came out a few months ago. It might have features not yet covered by these cross platform libraries. Or more advanced features. If you have an app that does really fancy camera stuff and you want to have access to advanced camera controls, they don’t always cover the whole breadth of the native API.
Carol: Okay, that makes sense. So Apple is kind of known for being difficult sometimes to get your app approved and in the store. Is that ever a concern with cross platform?
Jay: Sometimes it is, because for example, there are certain private APIs that you’re not allowed to use. And sometimes those things change and so with this extra layer, they’ve got to keep up with those things too. So, sometimes people run into problems where their cross platform library isn’t in compliance and they need to upgrade. That means they need to do things to their code, or that upgrade isn’t available yet. Or it’s not stable – things like that. So sometimes that can be an issue.
Carol: Okay, so it sounds like the pros of a native platform are you don’t have an extra layer there and you get a whole lot more access to function on the hardware and the operating system for what you’re developing for. Cons – do you think maybe sometimes it’s a little more expensive if you need to develop for iOS and Android?
Carol: Okay, that makes sense. So last question, and I’m sure this is going to be your favorite one. What’s a situation when it would be okay to use a cross platform app or build something with a cross platform language? And, I worded it that way because I know you don’t like it!
Jay: [Laughter] So, the biggest issue when you’re looking at this thing is the complexity of your app. The cross platform frameworks make really simple apps really easily. Like it’s a great M.O. – they can throw together really simple things. But the complexity of those things grows really rapidly. So as your app gets more complicated, the complexity of the whole system grows really quickly.
Carol: So it sounds like if you’re assertive, you’ve got a low budget, and you do for whatever reason have to go cross platform, maybe a good thing would be to plan ahead for potentially rewriting in native in the future. Just know that might not be the app that you scale on.
Jay: Yeah, if you’re doing a first version or [working] on a shoestring budget, I think you’re going to hit the wall pretty quickly, and you’re going to have to rewrite that thing next year.
Carol: Alright, well Jay – thank you for discussing this topic with me. I know it’s one of your favorites, you did a good job not doing a full-on rant on it.
Jay: Thank you, Carol!
Carol: If anyone has questions or would like us to explain anything more, we’d be happy to do that. Just please follow along on our Oak City Labs channel, or you can find us on social media. Thank you so much for watching!