Friday 24 February 2017

Where to Start Learning Android App Development?

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.