Hey! This is the Daily Overpass! My name is Eric and I make apps!
Now today, let's talk about some of the reasons why you might not want to use
third-party frameworks to create your app.
Okay, so here I am once again out in the English countryside. The weather today is
kind of cold and dark, like my heart. So today, what I wanted to do is
answer a question that came in like over a week ago by Praharsh Bhatt about
third-party frameworks. He said, "Hey Eric, can you make a video on the setbacks of
using third-party developer platforms like Corona SDK and B4A. Personally,
I use basic for Android and love how easy it is to make outs with a few lines
of code unlike Java, but I have now impossible it is to implement SDK
straight away. You need to first create a wrapper for it.
I've been spoiled by B4A that I can't go back now. This is a really good
question because one of the things I always do, what one thing I always tell
clients we do is we try to use those kind of third-party frameworks. You know,
as much as we can, I always say hybrid frameworks, but I get in trouble for that.
Because a lot of people they - well, I've called like Xamarin a hybrid framework,
and Corona a hybrid framework. And to some people,
hybrid doesn't mean more than one things joined together, that means
only JavaScript and HTML. So, I'm just gonna say third-party frameworks or
cross-platform framework. So, you know, if you go native, you go Objective C and
Swift on the iOS side. You got Java obviously on the Android side, which is
much more - you have a lot more control over it if you do those, but then of course
you're duplicating work. So, you know, for me, it's cheaper for -
I prefer to use a third-party frameworks that are cross-platform
because it's cheaper for the client, it's faster development, for us, we
could do - we could serve more markets at the same time and we don't have to worry
about it. But there are definitely some setbacks and some drawbacks to it over
the past few years that I've found. There's three main ones I could think of.
The first one is that there's usually a lag between like new features coming
out, between like say, like a new iOS or a new Android version will
come out and you know they'll be - and every year I watched it the WWDC or the
Google I/O, and they'll announce the new things they're gonna support, like "Oh, we're
gonna have whatever, Apple pencil, whatever you think. That's awesome!"
But then also know, I'm probably never gonna use
that because it won't be cross-platform. And also by the time that these
frameworks start to implement it, then it'll take a while. So like, we use Corona
SDK for games, you know, for the most part. If we're doing a business app, we use
ionic, but you know, sometimes we use native too. It really depends
on the project. Yeah, it's like I want to go - I want to go with the least common
denominator. I don't want to go for the Ferrari and do a built - build a full
custom solution, If we have a framework we could already use, right? But,
there's usually a lag for the new features and there's also this strange
period where everything just breaks. Like once a year, usually it's on October or
September for me, like I'll get the update to iOS or to XCode rather, and
I'll say upgrade your Xcode version and I, you know, I'm such a
slow learner. All we say, yeah, okay! Then like a few hours later, I'm like,
everything is broken because sometimes it takes a while for like Corona to
catch up or Cordova for Cordova plugins to be updated and
everything like that. But some platforms aren't that way. Like Xamarin,
it's really good with keeping up with all the betas and having that everything up-
to-date. But there's always this period of maybe like a week or two, where
everything just kind of goes haywire. And it's not just the
developer tools. It's like the app stores and everything like that too. That's
the first problem. The second problem is that you have a
dependency. Now, if you use like a framework word that the language is
portable, I mean, you can use them more than one place, like one of the reasons I
like a Cordova and Ionic, and also like react native and the
JavaScript based ones is that I can use JavaScript in a lot of places. I can use
it on the server. I can use it on a client, I can take on a client job and
use JavaScript. We can do node.js, do whatever, the same thing with
C#. If I do C# with Xamarin, I can use that at all kinds of different
places. With frameworks like Corona SDK we use Lua, right? Yeah, I don't know, if
you've ever use Lua before. It's a really simple language, but like aside
from Corona SDK, I don't use Lua anywhere else. It's one of these things
where, you know, if I had to do it over again, I probably went about Unity
because Javascript and C#, I use those all the time.
Lua, I only use it for that. So, it's like this language you have to keep up,
so you have this dependency on that. And then, you know,
every time there's a change to the framework, you have to think are
they going to support it? You're dependent on a framework which is far
removed from the from the AppStore. So, like say, if the App Store stop supporting
something and then the framework doesn't keep up, then you know you're screwed
really. And the third set back is very much related to the dependency, which is
you always have the fear that these platforms are going to go away. Now, the
open source stuff like Cordova and everything, that i'm not so worried about
that, because there's always going to be somebody who picks up the mantle and
develops that. But some of it, like the the companies, like some, you know, we've
been talking about in the comments, some of you, guys, are Corona SDK developers.
We talked about what happens if Corona SDK, you know, what if they just disappear
like the company closed down, all this kind of stuff? And that's something that
I do worry about from time to time. They've been bought out like -
they keep getting acquired by other companies, and you know, there seems to be -
to me, it seems to be a slowdown in the platform and the development of the
platform that could be - that could be completely wrong by the way. But, it's
just the way it appears to me right now. If they disappear, it would be fine for a
while because we all have the tools. But then, as soon as iOS makes another
breaking change, then there's not going to be somebody there to fix it and get
the platform back up and running. So, those are some of the setbacks
and those might be big enough setbacks to just go Native, but to me, it's always
been the lowering the cost of development and lowering the time of
development, and just being able to deploy to both platforms and not have
to worry a lot of things. To me, that trumps those. So, that's always -
that's the reason why we still use those third-party
frameworks. So, anyway, I hope that's been helpful. That's it for today. What do you
actually - no, no, no. I always forget to ask the question at the end. What do
you, guys, think? Do you think it's better just to go Native? Or, I mean, do you think
the time benefits of using a third-party framework outweighs the possible setbacks
that you can have? Or do you just - do you use a third-party framework or do
you just go Native yourself? Anyway, that's it for today! I will talk to you,
guys, tomorrow!