freeCodeCamp/guide/english/android-development/index.md

6.1 KiB

title
Android Development

Table of Contents

Android Development

Android apps can be a great, fun way to get into the world of programming. Officially, programmers can use Java, Kotlin, or C++ to develop for Android, and though there may be API restrictions, using tools, developers can use a large number of languages, including JavaScript, C, or assembly, and the possibilities are endless.

From simple games and utility apps to full-blown music players, there are many opportunities to create something meaningful with Android. The Android developer community is widespread, and the documentation and resources online are easy to find, so that you can tackle any issue you're facing.

There is definitely a learning curve to get used to the Android framework, however once you understand the core components that make up the app, the rest will come naturally.

The learning curve involved in Android has a relatively smaller slope compared to learning other technologies such as NodeJS. It is also relatively easier to understand and make contributions towards AOSP hosted by Google. The project can be found here

Getting started

Check out the guides in this folder to learn about the 4 core components that make up an Android app and how you can get started with a sample app, and then delve into the more advanced topics such as fragments and the Gradle build system. Then check out the material design specifications guide as well to learn how to make your apps beautiful and user friendly.

Setting Up and Getting Started with Android Studio

Go to this link and install the latest JDK. Now download the Android Studio and SDK tools bundle from here. Install the Android Studio and SDK following the set up. Keep note of the SDK location. If you face any error go to settings later to solve it.

Lastly, learn to integrate 3rd party libraries and Firebase services to add functionality to your app. It would be helpful if you go through the official documentation for each component.

Official Documentation

Google Developers Guide for Android

Java vs Kotlin

Ever since Google announced Kotlin as the official language for Android development at Google IO in 2017, programmers who want to become Android developers are in a dilemma. The big question in front of them is whether they should learn Kotlin or Java.

Beginners in Android Development Should Start With Java

First and foremost is that Android development is not everything; as a programmer, you may be starting your career with Android development, but if you start with a well-established language like Java, you become a part of the bigger Java community and market, which directly means more job opportunities.

The second, and more important thing, is that there is a huge community of Java programmers, which means you can find answers when you are stuck. This is very important because, as a beginner, you will face a lot of technical problems and you might not know where to head when you are stuck. When you search Google with a Java problem, you are bound to get answers; the same cannot be said for Kotlin, which is still a new programming language.

Java Programmers Should Learn Kotlin

Now, coming back to the second set of programmers who wants to learn Android development: our fellow Java developers. For them, I think its best to learn Kotlin because it really improves productivity.

A class which takes 50 lines of code in Java can really be written in just one line in Kotlin. It can help you avoid all boiler-plate code, e.g. you don't need to specify getters and setters, equals(), hashCode() or toString() methods. Kotlin can generate all that by itself.

If you don't know, Kotlin was developed by JetBrains, the company behind one of the most popular Java IDEs, IntelliJ IDEA. They were a Java shop and developing IDEs like IntelliJ IDEA, PyCharm, and ReSharper, all in Java, and built Kotlin to improve their productivity, but at the same time, they cannot rewrite all their code in Kotlin, so that's why they made Kotlin fully interoperable with Java.

Because Kotlin generates Java bytecode, you can use your favorite Java frameworks and libraries in Kotlin and your Java friends can also use any Kotlin framework you develop.

Practice

Codelabs for Boosting up Skills

Google Developer Console

Google Developer Console

Courses

Udacity Android Nanodegree Program

Udemy The Complete Android Kotlin Developer Course

Developing Android Apps

The best part of learning Android is that many of the courses and material available out there online are free. The link to the basic course is here - Developing Android Apps. The link to the advanced course is here - Advanced Android App Development.

Android Studio

Android Studio
Installing Android Studio
Running Apps in an Emulator