When it comes to mobile development, there are a lot of options out
there. React Native? Sencha? SDKs? APKs? Xamarin? It can all seem a bit
much. Hopefully this guide gives you a good idea of what you are facing
when you develop your first Android Application, and it basic steps it
takes to get from an idea, to a Playstore listing.
The Idea
The
first step to any mobile application is the idea. Think of something
that you, or someone you know, would find useful to have on their phone.
This could be something simple, like a new way to browse your favourite
website, or something more complex, that might even involve a bluetooth
device. You don't always have to innovate, you just have to do
something better than what is out there.
The User Experience
Don't
make the mistake of underestimating the value of your user's experience
within your application. If a user gets frustrated with your app, they
are likely to stop using it. Have a look at your favourite applications.
What makes them pleasant to use? Ask your friends to try the app out,
look for feedback and utilise it.
It may help you to visualise the
interface and use of your mobile application using "frameworking" and
"timeline" software, but you can also just do it by hand on paper.
The Design
The
design of your application is also very important. This includes the
development of a "Brand", a consistent design throughout your
application and store listing using Logos, colours and fonts.
The Money
No
one likes adverts. It's the painful truth. Ideally, you should avoid
trying to monetise your application too early as you may scare away
potential long term users. It's what Amazon did, they took (and are
still taking) hits with their business in order to secure long term
customers.
The Language
Despite what some
people may try and tell you, the ability to write your own software is
critical to a well designed application. It may seem scary to start
with, but there are a large number of guides out there, such as Codecademy, or scotch.io, that will help you. Don't try to run before you can walk.
As
for which language you should learn, it comes down to what you want
from your application, how much you are willing to spend, and what you
are most comfortable with, which will be discussed below.
Your
application will have to be well developed in order to succeed. After
you feel comfortable developing in your chosen language, it is time to
move to mobile development.
You have a number of options here, some easier than others.
One
option is React Native, which is written using Web technologies, such
as JavaScript, JSX and HTML. This is a version of Facebook's React
framework that can run "Natively" (in the operating systems own
language) which generally increases performance. It can be very
difficult for beginners.
Another option is Xamarin, a framework recently purchased by Microsoft, which uses C# and Visual Studio.
Yet another option is ExtJS developed by Sencha, which is again, JavaScript.
The most popular IDE for Android App Development, and the one I recommend for this guide, is Android Studio, which is multiplatform (Windows, OSX and Linux), and is developed by Google.
The Backend
Depending
on which type of application you are looking to build, you may need a
"backend", basically a computer which deals with all the data your
application requires, and generates. Applications that require a backend
include a social network application, or a chat application, whereas
applications such as a calculator or similar generally do not require
any backend code.
Generally, this is written using PHP, NodeJS or
some other code that sits on a server somewhere, usually with some sort
of database such as MySQL or MongoDB. If you aren't willing to purchase
and run such a machine yourself, there are options out there such as
Amazon Web Services or DigitalOcean, which only charge you for the
resources you use!
The Testing
Ideally, it
helps to have a test device, which could be your own device. To enable
development on an Android device, simply click the "Build Version"
within the phone's settings, in "About this phone".
If you don't
have a device at hand to use, that's okay as well. Most Integrated
Development Environments (IDE), including Android Studio and Visual
Studio, include a device simulator for their respective operating
systems. This can be useful to try different phones with slower hardware
and different screen sizes, to make sure your application is widely
accessible.
The Packaging
For the Google
store, you have to create a "Signed APK". The APK is created by the IDE,
and then "signed" using a keyfile that is generated using your
information. This key is unique to you, and makes sure that no one else
can upload a copy of your application with embedded malicious code.
Google
Playstore has it's own guidelines and procedures that you must follow
for it to be accepted, and it is not uncommon for applications to be
rejected, so be careful.