Useful tips to begin developing on Android

Written on 07/03/2017
Saveria Maroselli

According to Mobile Statistics, the number of Android devices sold reached the 170 million mark in the first quarter of 2018 alone, and there are now more than 1,3 million apps available on the Google Play Store.

Nowadays with such easy access to information, the web is full of tutorials where people share their knowledge about different subjects. As we have a team of app developers working daily with programming, we decided to ask two Android experts a few questions about Android Development.
We interview Guido and Sergio:  

1. How and why did you start developing apps for Android?

Guido - My friend suggested a video tutorial about development, and I always liked developing, so I started to make my simple app. It was all about curiosity at first, but I kept learning more and I really liked it! I must’ve watched like, 50 videos about programming in one night and without planning it I became a developer. 

Sérgio - For me it was different, because at first I wanted to do programming for iOS, but later, in school, I was very interested in embedded systems. And in that world, we heard that Android was a promising OS for embedded systems, so I began working with it and then I get involved in the Android world. 


2. In your opinion, what do you need to become an Android Developer?

You need passion about programming in general and also some basic knowledge. For example, if you have some basic knowledge of Java, which is the main language, It’s not complicated to start developing.  
Of course you need a few basic things, such as a computer, the Eclipse or Android Studio inside (IDE) and a good book also helps a lot, I even can recommend one: Android 4 Application Development, by Reto Meier, it’s a very good reference to start out and also to improve your knowledge.

3. There are different languages, are they specific for each purpose? I heard that Android is Java-based. Are there any differences between "classic Java" and "Android Java"?

Yes, there are different languages, the main one is Java, but to create the layout of the app you use the XML, and sometimes little bit of Javascript and HTML. 
It can be said that Android development is Java-based but many of the Java libraries that are not supported either have better replacements (other similar libraries) or are simply not needed. For instance, to print data for debugging, Java programmers use the System.out. For Android it's recommended to use the Log class for this. 
The virtual machine (which translates java code into machine understandable instructions) is also different. Java code compiles in Java bytecode, while Android code compiles in Davilk (or in ART since Android Kitkat) opcode. 

4. What are the main differences between coding for computer software and mobile apps?

The main differences is that in mobile you have more limited resources, because the screen is smaller, the processor is weaker, you have less memory, so you have to consider all of these limitations. Your code has to be maximally optimized for high performance (fluid navigation and user experience) and the memory must be managed more carefully to avoid crashes. Even though now we have all these powerful devices that have almost the same characteristics as a computer, we cannot forget that there are still older versions of Android to take into account. 
Our job when building apps is to offer the best user experience on every device.

5. Can you give some advice to people who want to start learning Android development?

As I said before I think you have to have a passion for programming, some basic notions of Java, a little "geekiness" is also important. For someone who is starting to learn programming, you can be tempted to use the schematic option, where you can define the layout of the app with code generated automatically. But believe me, the best way is to start out writing in XML, because afterwards you’ll be able to easily create more complex interfaces. 

Also, as said in the beginning, there are millions of apps available on Google Play, so there’s a big probability that there’s already an app with the same subject as yours. Take note that what will make the difference at that point is the design! So my advice is to always be design oriented while programming, because it will be crucial for you to create a great app. You can access the Google Developer page to find information about design of Android apps.

*This is demo content