An intro to Android Application Development

Yashvardhan Kukreja
5 min readJun 5, 2018

Hi friends, I am Yashvardhan and I am a full stack Android developer. This is my first article and I was wondering what should be the topic for it. So, I decided to choose the topic for my first online article based on my first programming field experience i.e. Android Application Development. So, this article will focus mainly on an introduction and some basics about android application development.

So, first of all, I would like to claim that you don’t need to be a pro in Java to become eligible for starting Android AppDev. I started Android AppDev around 1 year ago and at that moment I just knew “if, else, for loop and while loop” in Java and very very basic OOPS (Object Oriented Programming). That was it, nothing more. I came to know about programming around that time only. Even, I was sort of intimidated at that time that I would have to learn advanced level Java and OOPS concepts but still I told myself, “Let’s just give Android AppDev a shot instead of doing a bunch of courses on Java or OOPS”. And that was one of the best things I did in my life for myself because that direct “shot” for Android AppDev made me passionate for it and it became a kickstart for my technical experience. I never faced a necessity for learning Java (specifically)to understand any Android related concept. I used to watch video tutorials on YouTube for learning Android and in those tutorials, the tutors used to explain the code while they typed it and that’s how I learnt Android alongside Java on the go.

So, I hope this mega-myth of being a pro Java coder to start Android AppDev is sorted out.

Now, let’s dive into some intro about Android AppDev.

The development environment used for Android AppDev is Android Studio.

Android Apps are coded in two languages- Java and XML

=> XML is used to design the static UI of the app that you are developing, like placing a button on the screen, setting up the colour of toolbar, placing text fields on the screen etc. XML is a very basic language and it is so descriptive that it becomes very easy to understand it and hence, learn it.

Also, the one of the most amazing things of Android AppDev is that it is technically possible to build the static UI of the app without even writing a single line of XML by just dragging and dropping the UI elements from the UI palette such as Text Fields, Buttons, Checkboxes etc. with a little bit of care so that the responsiveness of the app isn’t compromised.

=> Now, Java behind Android. Java handles all the core dynamic functionalities of an app. For example, what happens when a button is pressed or loading some animations when the app is launched for the first time or adding different kinds of items in a random list in the app.

Now, I would like to explain some of the basic terminologies behind Android AppDev :-

  1. Activity — A single screen in an app. Like instagram has a screen(Activity) which displays news feed and another screen(Activity) which displays the profile. These activities are basically java classes on the development side.
  2. Layout Resource — This is basically an XML file which corresponds to the static UI design of an activity or a dialog or any part of the app.
  3. Manifest — This is also an XML file but it is not at all related to design. It consists of all sorts of things like the phone permissions required by the app (like camera permission, location permission, reading SMS permission etc.), which activity to launch first when the app launched, what theme should each activity have etc.
  4. Resource— Any visual element such as an image which will be used in the app any purpose (like setting it as background image of an activity) or a font file for setting up that font in different parts of the app is called a Resource.
  5. Widget — All UI elements such as buttons, text fields, DatePickers etc. are collectively called as widgets.
  6. View — A view is nothing but a rectangular area in which a UI element like a button or a checkbox resides.
The screen on the left is supposed to be displayed to a normal user while using the app. The screen on the right is the blueprint of that screen displaying all the views with their respective measurements. ( Image source — https://www.homeandlearn.co.uk/android/images/started/android_studio6_B.gif )

7. ViewGroup — A ViewGroup is a container which contains child views in it and determines how those child views are going to be placed in it. Some examples of ViewGroups are Linear Layout (Aligns the child views in linear fashion like a stack), Relative Layout (Aligns the child views with respect to the position of other child views) etc.

Links to some YouTube playlists containing very good video tutorials for starting off Android AppDev :-

  1. newboston (My personal favorite :))https://www.youtube.com/playlist?list=PL6gx4Cwl9DGBsvRxJJOzG4r4k_zLKrnxl
  2. ProgrammingKnowledge — https://www.youtube.com/playlist?list=PLS1QulWo1RIbb1cYyzZpLFCKvdYV_yJ-E

I would highly recommend to start off with newboston because he teaches in a very entertaining way and thereby, he maintains the interest of the learner and it is very important to not get bored when you start learning a new skill.

There are no issues to start off with any other playlist if you’re understanding well from it but try to stick with one playlist, atleast till you get a decent understanding of Android AppDev. If you keep on switching between playlists in between then, you might get confused due to different kinds of teaching patterns of different tutors.

So, I hope that this article provided a good insight to the introduction about Android Application Development. Also, I would like to say that if anyone encounters any other problem or doubt whilst starting Android AppDev, just drop me a mail (yash.kukreja.98@gmail.com). I would love to resolve it.

--

--

Yashvardhan Kukreja

Software Engineer @ Red Hat | Masters @ University of Waterloo | Contributing to Openshift Backend and cloud-native OSS