5 Things to Know Before Building Your First Android App

| Get awesome (and free) stuff here


Want to build an Android app? Keep reading.

Recently, I came across PraneethVT’s Reddit post about how he built his first Android mobile app – a GPA calculator.

Seeing that he is a relative newbie to the programming world, I thought diving deeper into how he built his first app would be perfect for Learn to Code With Me.

Here’s a little bit about PraneethVT before we get started.

  • He is a computer engineering college major
  • So, in total, he has had about six months of actual programming classes
  • Two of the introductory CS courses he has under his belt teach Java
  • During his summer break, he decided to put some of his CS skills into practice and build an Android app

Below are some further questions, in Q&A style, with PraneethVT on how he went about making his first Android app. (My questions are in bold, and his responses follow.)

At the end, I share the five main takeaways on Android app development for beginners.

Q&A on Android Application Development

Could you break it down for me—what is every skill/language needed to build an Android app?

Building an Android app comes down to two major skills/languages: Java and Android. Java is the language used in Android, but the Android part encompasses learning XML for the design of the app, learning the concepts of Android, and using the concepts programmatically with Java.

Once you learn Java and XML (XML is really easy to get used to, and you should learn the language as you program your app rather than learning it beforehand like you would with Java), you need to learn how to connect these two using Android principles.

I gave some good resources in my post on Reddit for learning things like Activities, Fragments, and other important Android concepts, but my favorite is the Big Nerd Ranch book because teaches you while you make apps during the book.

(Link to book here: Android Programming: The Big Nerd Ranch Guide (Big Nerd Ranch Guides)

For a total beginner looking to make an android app, what would you recommend they learn first?

For a total beginner, I recommend learning Java. There are no shortcuts here, you just have to learn Java.

Now for a total beginner, I recommend YouTube tutorials to get the basic idea of how to install Eclipse (the Integrated Development Environment, or IDE, for Java) and the Java Development Kit (JDK). It also helps to get the basic idea of syntax behind Java concepts, such as for loops and if statements.

But from then on, after you have learned the very basics, I HIGHLY recommend ditching the YouTube tutorials in favor of a book or a lecture series. YouTube tutorials very often do NOT give intuition behind important concepts, which I feel is 100% necessary if you wish to make an Android app.

What exactly is Eclipse and Android Studio? And are these two completely necessary to build an android app?

Android Studio and Eclipse are IDEs, or Integrated Development Environments. You could code Java using other programs that run code, but I personally am not too familiar with these and would not recommend these at all to a beginner.

The IDEs compile and run your code with just a touch of a button, unlike other applications where you would have to write some code to compile and then write some code to run. You have to install the Android SDK with Eclipse, but all of the installation process is covered in depth on the Android developer’s website.

How much time did you spend daily/weekly on building the app?

I took almost exactly two months to complete my app.

When I started off, I spent 4+ hours a day reading the Big Nerd Ranch book and following the tutorials to make the apps in the book. Time flew by when I was actually making my own app, because solving a small problem, such as saving data, took me a while to fully understand the material since it was new to me.

I had a bunch of time to do this because I am on summer break from a university and had nothing else to do.

As far as seeking help and getting questions answered, where was your favorite place to turn? 

I used Google to search up any questions that I was stuck on, which was a lot of the time because I was new to Android. The top results were usually Stack Overflow, but when Stack Overflow didn’t have an answer that worked for me, I posted on /r/androiddev Subreddit and they were extremely helpful.

—–

Special thanks to PraneethVT on giving such great insights for newbies!

And, in summation:

5 things to know before building your first Android App:

  1. You need to learn Java, there is no way around it
  2. Android part encompasses learning XML for the app design, understanding concepts of Android and using said concepts programmatically with Java
  3. Beginners should probably use an IDE (PraneethVT preferred Android Studio over Eclipse)
  4. Building your first app is time-consuming: it won’t happen overnight. This is not a project for those looking for a fast result
  5. When stuck on a problem (which will inevitably happen), turn to Stack Overflow. If no luck there, look to the Android Subreddit where there is a helpful community

For more Android and Java resources, look to PraneethVT’s original Reddit post. He has a great list of resources he used and his opinion on what worked and what did not.

He also created a follow-up Reddit post with more information on building his first app—check it out here.

Start coding now

Stop waiting and start learning! Get my 10 tips on teaching yourself how to code.

Don't worry. I'll never, ever spam you! Powered by ConvertKit

Additional Places To Learn About Making Android Apps


  • biker8337

    You can actually develop android apps in C, C++, C#, Delphi XE5, Basic4Android, Visual Studio, Objective C so knowledge of java is not required (its a shitty language anyway, I dont know any java developers who like it)

    • Apparently you can also do Android/iOS very easily now when building on meteor –> https://www.meteor.com/blog/2014/09/15/meteor-092-iOS-Android-mobile-apps-phonegap-cordova

      There’s always multiple ways to do something! Personally I am very unfamiliar with mobile app development. And it’s not an area I am too eager to pursue. At least at the moment.

    • Enumerations… Visual Studio is not a language… Objective C is a mess, that is the main reason why Swift was created… And I do love Java…
      The “native tools” approach is always the best, you may do the same through other tools, but you can’t understand the platform without it. When you know it better, you can start trying some obscure proprietary tools that never comes with limitations or bugs, such as… …

  • ABHISHEK SURESH

    First of all thanks a lot for the excellent article. However I want to know about sources to get me started with learning XML for android. When you mentioned that there isn’t any need to learn XML before hand and you can learn along the way , i was thinking how is it possible?

    • Hey — this article is a Q&A with another person who built an Android app.

      My main focus is web development — notably front end. (Not mobile app building.) But I try to cover other topics on the site by incorporating views from others.

      So I do not have an answer for you on XML. But if you’re looking to learn more about Android app building and have questions — definitely check out the Android subreddit. – https://www.reddit.com/r/Android/

    • XML is pretty easy to understand. The main problem is to understand how Android uses it. A lot of Widgets are available and an infinite of attributes can be applied. These options (widgets and attributes) need time to have a good command of it. Imho, the best resource is http://developer.android.com/guide/topics/ui/declaring-layout.html

  • Pingback: The Most Epic Guide to Online Coding Bootcamps, Ever()

  • This is great wonderful information.. Awesome Thanks

    Web Development India

  • hannan sarker

    Nice post but i think ADT need to build up my first android apps .
    What you think ? Please reply my answer .Thanks
    school management software

    • Hi — what is ADT? I just Googled but all that shows up is the security system…

      • Hardik Raj Kharga

        ADK

  • kavan

    hii this post is too good i rally understand what is do for making new android application

  • Pingback: Coding Camps California - www.Confidential-Coach.com()

  • Navin Kukreja

    Yeah, You have really great job done..! Its really usefull post by your side for beginners ..
    Thanks a lot for this..!

  • Pingback: Web dev. | Pearltrees()

  • Malik Zohaib

    I learn android through same proccess that you have described…..Good book i understand major concepts of android in summer by using this book in summer….

  • uhwhat

    Mobile development is a different beast than what most basic Java courses teach at a university. Just like web development in Java (like the Spring framework) it is a different beast. Although you will get the fundamental skills in Java that you would need but at least in my experience most academic courses I’ve taken are using outdated development methods (like building a desktop GUI in Swing instead of JavaFX). There are some great step by step tutorials on getting familiar with setting up your environment and fully developing multiple apps on udemy and even youtube. I would highly suggest you make sure whatever guide you follow is up to date using the most up to date methods for developing the app. Mobile app development is probably tied for the fastest evolving branch of development right next to web and even a tutorial that is a year old could be teaching you outdated material.

  • bin yu

    感谢撸主

  • oh_mss

    Thank you, Laurence! Wonderful post.

    I have also did a little Googling and found FIT (Florida Institute of Technology) has provided the book for free via http://my.fit.edu/~vkepuska/ece5570/android%20programming_%20the%20big%20nerd%20ranch%20guide%20-%20hardy%20brian%20%20phillips%20bill.pdf

    Hope this would be included in your post for those who can’t pay for it :)

    Millad

  • taichi

    on which java platform & packages should i have strong grasp in order to build java application

    • I am unfamiliar with Java. You should join newbiecoderwarehouse.com and ask there!

      • Taichi

        First of all thanks you miss for your quick response.It seems you care & show more devotion towards you website viewers.
        Secondly, I am pursuing Bachelor of Science (Information Technology).
        It’s my last year and within 2 months I have to submit my final project.
        I have basic knowledge of:
        Mark Up Language: HTML
        Style-Sheet Language: CSS
        Client-Side Scripting: JavaScript
        Object Oriented Programming: Java
        & yet trying to learn JQuery, AngularJS, BootStrap, & one of Server-Side Language either php or ruby.
        based from above knowledge would you suggest / help me in choosing perfect project topic.

  • Good post , very insightful ..

  • mazhar

    Hi I am a .NET Developer using C# Language, now I am going to build
    an android app. I learned java when I was in my graduate time. Know
    Start learning android through udemy videos. Please suggest me more or
    is there any sample app to start Or your code techniques. Thank you in
    advance. Please suggest or send me to my email id: mohdmazharkhanmca@gmail.com

    • Kamina Singh

      try “the new boston” channel on youtube there is a series of 77 videos for android studio and 200 videos for eclipse IDE.
      I hope this helps

  • anandkr

    Great piece of artice Laurence!

    People can also explore talking directly to an expert over a video call, who has experience building an app that scales to millions of active users/month. One can talk to Mario Stallone(Technical lead of Myntra – one of India’s top startups) https://helpingo.in/experts/mario.stallone

    We at helpingo.in are trying to bring in good experts who can help people with quick & personalized solutions over a video call.

  • WinFlyWeb

    Before you begin on your Android development journey, there are a few prerequisites that you need to fulfill.

    1)Android is

    2)Why Android

    3)Business preview

    4)History

    5)Advantages & Disadvantages

    6) “C”

    7)Java

    then u can start learning from basic platform

    Know Before Android Apps Development : http://www.winflyweb.com/things-to-know-before-android-application-development/

  • Stephan

    Hi, so for a total beginner like me looking to make an android app, and learning java is the first prerequisite, what free books on java do u recommend me to get?

  • Start How To Learn Java Programming Language : http://java.meritcampus.com/core-java-topics/java-programming-language

  • Brian Vallana

    I’m starting with Android Studio. This article is just what I needed, thank you!

  • Atom

    Slightly off topic , beautiful blog !!