cross-platform app development have you ever wondered how to build a mobile app
well there's numerous ways you can approach building a mobile app whether that's native
or cross-platform development in this video we're going to run through three key questions around
cross-platform development firstly what is the history of mobile app development
why is cross-platform application development so much better and what are the best tools to use in
cross-platform app development i've previously touched on building a mobile app in one of our
previous videos so check that out but in this video we'll be concentrating on cross-platform
app development i'm matt grace managing director of flying donkey let's get into it
what's the history of mobile app development mobile applications have actually been around
for almost 30 years in the very infancy they all started with ibm with some fairly mundane and
basic applications probably one of the first big breakthroughs in mobile applications was
the release of the blackberry the blackberry was released in 1999. one of its key features was its
qwerty full-sized keyboard the blackmailer was targeted at emails and productivity
and because of that it's had some of the first mobile applications in the form of email apps
fast forward to the late 2000s around 2007 and 2008 and apple released the iphone in 2007 at this
point they released the first apple app store and then later next year in 2008 android was released
with its app store now called google play store the apple app store and the google play store are
the main two app stores to get mobile apps onto mobile operating systems as ios and android are
the two dominant players in that field now while that sounds quite good they both pose different
challenges developing for two different platforms means potentially two code bases and two styles of
apps can cross-platform application development solve this problem before we get into that
let's have a look at what types of cross-platform application development are there there's really
two key ways you can do this with cross-platform application development the first one is using
what's called a pwa or a progressive weather and the second one is using a cross-compiled
application or simply put an application that is pre-compiled in one language and then will
be compiled into one or more languages after that we'll discuss more of that later in the video now
it's key to keep in mind that the standard operations of building any application is
roughly the same there's still underneath back end you're still going to need ui design you're
still going to need to do programming here we're really concentrating on the core functionality
of the mobile app and how that can easily get on the apple and google ecosystems of ios and android
all right let's take a quick look at progressive web apps now progressive web apps are essentially
a web application that you can save as an icon on your smartphone these aren't technically released
through any of the app stores these act very similar to how normal or native apps will react
on your phone a progressive web app is simply a website that you go to and save down to your home
page and then launch as it's any other app the difference here obviously is it's not actually
running as a local native application on your phone and therefore there will be limitations
on what you can and can't interact with on the phone itself google's a dominant player
pushing progressive web apps and there's plenty of documentation on the web around progressive
web apps but i'd always suggest you have a look at that as a first point of call because generating a
progressive web app essentially means that you're only going to have to build one web application
and it can become a mobile app all right you've decided you need to go down the route of actually
releasing a mobile application it's either got to be native to either of the platforms or at least
through an app store one of the ways you can do this is through cross-compiled applications
to use an example here let's look at a framework that we use here at flyingdonkey which is google's
flutter now in google slider it uses a language called dart which is very similar to javascript
and what you do is you develop your application in the googlefly.language and then once you're
completed you can then compile this application to either apple's ios or android's play store so what
you have here is one single code base then gets compiled to two different functioning applications
we're touching this a bit more later but i'm sure you can see some of the savings this potentially
can have rather than having two sets of native code and coding for two separate platforms
all right ui ux for mobile apps and workflows i just want to quickly touch on this because it's
important to keep in mind while apple and android look very similar on the surface they have very
different design principles underneath apple uses the achievement interface guidelines while google
uses its material design it's also important to know there are far far more android devices out
there than there are with ios ones and this is because obviously android is a standalone
operating system that any phone manufacturer can use whereas ios is locked down to only apple
hardware and this means generating application for an ios application is far simpler you have
less phones to support less resolutions and less functionality whereas with android you have a much
wider market of handsets that potentially the application can be used on all right you know
you need to build an application and you want to work out which store is the best to launch it on
do you launch it on apple's ios or you launch it on google's play store now this is a hard one to
choose because it's going to be different for each situation but i'll give you a few guiding
principles that you can use firstly where is your target audience is your target audience
primarily on apple's ios or are they on google android sometimes depending on the application
if it's an internal used company application and you have company issue apple phones you
can possibly get away with only developing apple's ios when you're going out to public and you're not
sure you're going to have to really cater for both scenarios secondly what type of app are you going
to build is it a simple productivity app or is it a gaming app and either the platform support your
functionality better or worse thirdly internally in your programming division do you support a
programming language better than another obviously ios develops in the swift language whereas android
is developed in java so potentially internally you've got a skill set that's already aligned to
one of those stores and therefore that will be the recommended decision to go with but keep in mind
if your target audience isn't aligned with your skill set you may need to get some help or some
extra contractors in they'll be delivering the application and finally budget we all know that
apple is an expensive product and therefore its users are generally have more disposable income
generally speaking we see there's more revenue generated on apps for the apple app store than
there is through the google android store but again this is really going to come down to your
target market and where they live and what the rationale for the app is a simple game site you
want everyone to download is very different to an internal company app you're trying to develop
at the end of the day selecting which platform to go with is a challenging decision and there's
conflicting reasons why you'll go with one or the other but this doesn't have to be the case
you can go with cross-platform app development and let's take a look at what that can do for you as
i mentioned developing one of these two platforms means you're going to have to code in their native
language with apple being on swift and android being on java it means your code base is going to
be split by language and by skill set by building a cross-platform app it means you'll have a single
code base with a single language and therefore you can concentrate on both apps equally in a single
code base and spend far less time developing your application we've run some numbers internally on
cross-platform app development and we find that between 40 and 50 can be saved by using
a cross-platform app development tool when trying to develop for both android and ios this is simply
down to only having to build one application rather than two so you're not quite getting a
50 saving but near or near about because there is some crossover into the stores a few key thing to
keep in mind here as i mentioned earlier there's still going to be a ux ui component that you're
going to have to do across both applications as well as building the back-end apis for the
application this is irrelevant of whether you go with android or ios or you go across platform app
development at the same time the cross-platform apps are really good these days and we use google
flutter here and we've seen that it can almost do everything a native app can do but there are
a few things that it can't do so if you're really going to push the boundaries and need the native
features of the phone you might have to bite the bullet and go with a native app it's worth
listing these features up front and checking this with the platform you choose and making sure they
can either be supported natively or if you can do it in a cross-platform application so finally what
is the best cross-platform application framework well we're slightly biased here at flying donkey
but we have tested a number of them over the time we've ended up choosing google flutter
for its flexibility speed and constant updating from google we have used some other frameworks
such as xamarin and we've found a number of challenges with building applications using that
it is getting improved and microsoft is moving it forward but overall we found the google flutter
experience much better and we've now delivered great applications for our clients the time chains
we've had in delivering both google and apple apps from a single code base has really been happy for
our clients and we highly recommend building cross-platform apps for your apps going forward
realistically unless you're only concentrating on one platform ios and you never think you're ever
going to build an android app at all it really makes no sense not to go down the cross-platform
app development route if you think about building a cross-platform app if you need some insights on
flutter or other platforms you'd like to use feel free to reach out and we'd be happy to have a chat
you