Hi, this is A Minute of Overpass.
My name is Eric and I make apps.
Now this week, I wanna talk about why you should consider creating an app framework
instead of just creating an app.
Okay, so this week I wanna talk about frameworks.
We released an app this week called French Flash quiz which took us just a few days to
develop.
It was fantastic!
And the reason it took a few days to develop is because we've
already done much of the work with the last application.
So, a few weeks ago, we released
Algebra Study Cards, which is a quiz game, which, you know, lightning fast, it generates
Algebra questions and you have to answer them very quick.
I'm really really very proud of
it.
However, it took a bit longer to create because we weren't thinking in terms of "we're
just gonna this one app".
It was in terms of "we're gonna build an app framework".
So,
we wanna build a framework that we could use to create other apps, other similar apps of
the same way.
So, to give you an idea what I mean, if you're
gonna develop a single app.
say for iPhone, what you get is you get a diagram like this
over here.
So it's like basically all phones are, and all computer are, everything is just
hardware.
So it's, you know, it's ones and zeros.
Everything flying through.
If you're
a hardware guy, you don't think in terms of operating system or you think about how the
operating system handles telling the camera to take a picture and say one phone may be
different from another phone.
So that code might be different.
So that's where the operating
system comes in.
Like iOS, is an operating system.
Android is an operating system.
And
what that does is give a consistent interface and say every time it takes a picture, depending
on which device it is, just call this function and the operating system will handle how to
implement all that.
So that's fantastic.
That's an operating system.
And then your code, of
course, sits on top of that operating system and you write your native code.
Now the problem
with that is that if you do like more than, like if you do Android and iPhone, then you
have to sets of code which sit on two different operating systems.
Our early apps were like
that, and it's a pain.
It's like every time we update something, we have two different
skill sets to somebody to go through it and make changes.
So, over the past year and a half, we've been using mostly hybrid frameworks.
Mostly Corona
SDK, however, lately we're using the Ionic framework.
And what that does is that these
frameworks, these Ionic frameworks, or Ionic framework, Cordova, Corona SDK, what they
do is they'll do something like "I wanna take a picture" and what they'll say is "Just take
a picture and just pass in this code or call this command" and the framework will handle
checking if it's iPhone then it's this, if it's Android, then it's this.
So, basically
you're writing one set of code.
And it's much more simple to write that code, however, it
does introduce some restrictions.
So, like, if there was a way that iPhone took a picture
to you wanted to use.
Ideally, most likely, you would not be able to do that because other
platforms don't do it.
So it makes things much more simple but it makes it much more
cost effective and easier to produce.
So, for our last app, what we've done for this
framework that I was telling you about, what we've done is we've created our own framework
which sits on top of another framework.
So, this is the Overpass way of doing things.
It's not specific to one app, but it might be, well for us, it's the way we handle leaderboards,
or the way we handle displaying buttons, the way we handle analytics.
Things like that.
The kind of thing the we would want to be able to put in to every application but we
don't wanna have to code it every single time.
We don't wanna just say I'm just gonna copy
this and move it over to there.
Ideally, what we wanna do is build a framework and think
of things in a modular way.
Now, this takes longer than just doing the app.
But, in the
long run, like I said, it took six weeks to do Algebra Study cards, it took five days
to do French Flash Quiz, and it's taking two days to do Mandarin Flash Quiz.
So, in the
long run, it really helps out.
And, building on that kind of model, if you're thinking
in that way when you're producing your app or your app portfolio, you may even do other
layers of like, say, for quiz games, we have this which sits on top of the Overpass framework,
which sits on top of the hybrid framework, and that.
So, when, what we have is we're
only concerned with the code that's unique to each game.
And it could be parameters,
could be configuration, or could be things that are just, you know, different for each
application.
They can't all be the same, otherwise, why even do them?
So that's what it is.
So,
if you're producing a portfolio of apps like we have, I would suggest that you start thinking
about producing a framework.
So it's a, and it's difficult if you don't have your own
developers to do this.
Or if you don't have somebody you work really well with.
'Cause
a lot of times, in my experience, we're creating a framework, it's hard for even a developer
to see what the framework is capable of until the second or third version of the application
that you actually produce.
Let's say "Hey, let's change this in the framework.".
And
the framework is always evolving.
You may say, for this game we need this.
But, you
know that would be good in the other ones too, so you go through and change that.
So, I hope that makes sense.
Doing things in a modular format is just a way that experienced
developers know all about.
But, somebody who is just new to the app market might not be
too familiar with.
So that's it for this week's A Minute of Overpass.
If you're watching this on iTunes, through the podcast, please leave a review.
I'd love
to know what you think.
And if you're watching this on YouTube or LinkedIn or Facebook, please
leave a comment.I'd love to know what you think as well.
That's it for this week.
I'll talk to you next week.