Most of the beginner start android app development by learning Java. Java is essential but not the prerequisite if you have enough programming maturity. By programming maturity, I mean you know how to program in some language(probably C/C++/PHP) and have some ability to think logically.
If you don’t have these prerequisites, you should start with learning Java. For logical maturity, I would recommend you to play some logical games like Rubik cube, Sudoku and some other strategy games. If you are academically inclined, then learning First-order logic is a good alternative option.
Note: The Familiarity of an Algorithms and Data Structures will surely accelerate the learning process.
FAQs on Android app development
How much Java do I need to know for android app development?
All you need is the basics of Java. Java is an object-oriented programming language. So, the key to understanding Java is to understand object oriented programming. This includes learning about class, object, abstract data types, inheritance, interface and listeners.
Apart from object-oriented concepts, you need to learn about the representation of arrays/collections, string and it’s properties like concatenation, replace, substring etc.
This is all you need to learn in java.
Some useful links
After Java what next?
Learn about the tools and framework that is used to make android apps. You need to learn how to use the following tools
- Android Studio
- Android SDK
- Android versions and API level
- Gradle build system
Video tutorial on android studio installation
Ubuntu 14 LTS
Note: If you are using windows operating system, then you need to install the android device driver. Don’t forget to enable developer options in your android device before running the android project.
What next after configuring tools?
Now you are ready to start making apps. Get familiarize yourself with android terminology like Activity, Layouts, Drawables, Android Manifest, build.gradle, TextView, ImageView, Button, EditText, Intents.
This much of knowledge is enough to start building some utility apps like calculator, unit converter, quiz app etc.
Some useful links
- Android developer official site
- Android Activities – TutorialsPoint
- Activity basics
- Android – UI Layouts
Is that enough?
Yes and No. From now onwards, it totally depends on what you want to do. For making utility apps, I guess this is enough, but if you want to expand your horizon of knowledge, then I would recommend you to learn networking. By networking, I mean client-server technology. I don’t want to emphasize on the potential of networking in the current context, but I would say, it is the main backbone of our modern knowledge economy. If you want to learn more about networking and client-server technology, You should learn how a client communicates with the server.Technically this means you need to learn GET, POST, Web Service, JSON/XML technology.
Additionally, you should learn android networking client library like Retrofit/Volley/OkHttp/HttpUrlConnection. For server side, you need the knowledge of any one of the server friendly language like PHP/Python/Ruby/C#.
Knowledge of database technology is also mandatory for building client-server system. This includes learning about Relational Database like SQL/MySql.
Some useful links
If you want to go further, then you can develop specialization on location(GPS), Google map, multimedia(Photo/Video), Bluetooth, RFID communication, port communication etc. Also, learn to showcase your product by publishing it in google play store.