Usually new developers try to ask questions such as, "Which IDE I should use, this one or that one and why". Probably, the question is not vague and is valid. Beginners do not want to start their career, they want to learn more about programming and they use IDEs to test programming languages, environment, APIs and the performance of the machines running them. The first question is where to start.
Where to start
I had the very same question in my mind, where actually should I start Android programming from? So, if you have the same question then I would like to guide you through. First of all, Android programming is done using the Java programming language, other languages such as C++ can also be used but the official API and developer documentations address Java programming language and provides the tools to do Android application programming using Java. So, the very first step would be to learn the Java programming language. There are very many tutorials and other resources, but I always prefer the official documentation for everything, if you can't understand the official documentation then you should try a third-party tutorial. Start
learning Java first.
Java is a great programming language, with a paradigm quite near to that of C# and the .NET programming library. Java has been used widely for most devices, as a matter of fact Java was used for old feature phones too, using Java ME.
Android application programming
Once you've learned Java, you can start to program Android applications, Google has put together a great set of Android developer documentation guide. You can find nearly all of the tools, SDK support, tutorials and other material from
Android Developers guide. All of the new stuff, such as new SDKs (for new flavors of Android), new articles and so on can all be found in the Android developers guide.
Setting up the IDE
For software development, having the IDE means a lot. An IDE is not required, but it makes your process easy. You don't need to worry about most of the underlying stuff. An IDE does the underlying processing and sorting of the files for you, it also executes the commands to compile and parse the applications to provide you with the binary that you can distribute to clients or share on the markets. There are two IDEs, heavily used for Android application programming,
- Eclipse
- Android Studio
I will go through both of them, to provide my own personal experience with both of them. So that you can chose from them to determine which one would suit you.
Android Studio is the new kid on the block, whereas Eclipse has been into the game for quite a long time and has much community contribution to make it better software. In the initial stages, Google supported Eclipse officially for Android application development, but for quite a time Google has launched Android Studio as the official IDE for Android application programming and has left Eclipse, although you can still use it.
Android Studio has a better interface and greater support for Android programming. Eclipse was developed for Java developers, thus it was used by Android programmers too. But Android Studio is developed from the ground up for Android programming and includes all of the libraries and features to support Android programming, such as Lint, Grunt and other dependencies.
The glitch in Android Studio is that it consumes much memory, so if you have an i7-based CPU and 8 GB of your RAM size, then you should try out Android Studio. If not, like me, i5 and 3 GB RAM then you should not consider using Android Studio. There are many other patches and patches that Google needs to add to Android Studio before it can be consumed by everyone. First of all, the excessive memory consumption. Eclipse is a better IDE and provides a similar environment, but just lacks official support now. I am using Eclipse in my machine.
Starting to write applications
Once you've done all of the preceding steps, installing the IDEs and other required software, you will be able to develop the applications, for Android OS.
Tip: Always try to make a Hello World application to check if everything is working fine.
You can write the code, compile and push it to your mobile, but these IDEs support in-machine testing of your application using emulators too. You can download various SDKs for a variety flavors and then test them on your machine by running multiple versions of these flavors to see how the various phones, hardware and flavors react to your application and handle your applications.
Writing the source code is not the only thing to do. You should consider making your application efficient and as user-friendly as well as device-friendly as possible. There are many plugins supported to check for memory consumption, to check for memory leaks (also known as resource leaks, such as not calling a close function on resources) and to test whether your application is strong enough to handle the commands and inputs and does not break due to invalid data.
You should also try to use Android applications for yourself. Try creating software for yourself, to test your skills. You know the dark side of your programming skills, test them.