11

I'm looking into doing some Android app development, just for my own pleasure. I've taken a look at some of the developer articles, the basics etc, and it really sounds like there's a hidden basic assumption about one's prior knowledge in relation to app development.

A lot of what was talked about, even in the basics, seemed to go over my head. I'm relatively new to programming, I've mainly done C++ and a little Java. I've not gotten fully into object oriented, still just doing basic programming.

Honestly, I'm a little overwhelmed as where I need to go next in order to make this work. So what direction can you give me in terms of what to learn first. I get that Java will be a big part of it, but is there anything else that would help?

Thanks,

Andy.

Andy Hall
  • 454
  • 1
  • 5
  • 14

7 Answers7

9

The three big things that you need, in terms of background, are:

  • Java programming
  • XML
  • Experience with widget-based UI models (i.e., pretty much anything other than low-level HTML/CSS/JS stuff)

The specific sorts of stuff in Java that you need include:

  • Language fundamentals (flow control, etc.)
  • Classes and objects
  • Methods and data members
  • Public, private, and protected
  • Static and instance scope
  • Exceptions
  • Threads and concurrency control
  • Collections
  • Generics
  • File I/O
  • Reflection
  • Interfaces

Those will all be covered in any decent Java book/course/mind meld from a friendly Vulcan. Those resources will probably go into other stuff as well (Swing, servlets, etc.) that will not typically be relevant to Android.

CommonsWare
  • 986,068
  • 189
  • 2,389
  • 2,491
  • Thanks very much. I'll get a Java book right away. Can't hurt to learn some new stuff for general use anyway! – Andy Hall Sep 02 '12 at 23:37
3

First and foremost, you should be conformable enough with java so that you can easily understand the sample codes. OOP plays a major part and I believe you are going to have a tough time otherwise if you are not fluent with it, as it going to be the building block for Android programming.

And then when you get into the Android part, grab a decent book and follow it as your bible. Don't just skip the theory and start with coding as you would need to have your basics clear. The documentation is going to be your friend as long as you are in Android development, so make sure that you don't hesitate to look things up there. When you download the SDK, there are a lot of sample projects given there and they would provide you a lot of help too.

Once you get into the development, you would find that there are a lot of generic code available online and even Stack Overflow has a plethora of questions on Android.

My suggestion to you would be to get your foundation in java and then start making your own application, because learning hands-on is the best way to do so. Start with small and simple ones, preferably those that are explained in the book that you would be following. Try your hands on the applications and if you get stuck, post here and help would be provided readily.

Note : This a series of awesome video tutorials. Starts from the very basics and takes you to much higher levels, explaining everything that is happening. Very helpful.

Good luck with Android! May the Droid be with you!

Swayam
  • 16,294
  • 14
  • 64
  • 102
  • Okay. I think that's where I've gone wrong. I clearly don't know enough about Java in and of itself yet. And Android uses the same libraries that "standard" Java does? – Andy Hall Sep 02 '12 at 23:32
  • 1
    No, android uses other libraries...(And another vm - Dolvik vm) But all the java basics are the same. So knowing the basics of java is a must. – Eli Turchinsky Sep 02 '12 at 23:34
  • 1
    @AndyHall Android does not use SUN/Oracle's implementation of the standard libraries and Android does not include e.g. the desktop UI related parts like swing. But for your purpose: Android = standard Java 5 or 6 – zapl Sep 02 '12 at 23:44
3

You should start at the very beginning.

Follow the 'my first app' tutorial step-by-step here, and if you don't understand a word or term or the code, google it. I'd even suggest you re-type the code rather than copy-pasting, so that you actually think about what each line is doing and get some practice debugging what you do wrong.

You should also read and understand about activities as a minimum, but all of the headings under 'app components' are very relevant.

John Lyon
  • 11,180
  • 4
  • 36
  • 44
  • Thanks. I have actually been through this and sort-of understand it, abstractly. But a lot of the code seems to go right over me. It always references things I have no idea about, which may say more about my lack of Java knowledge than anything else. – Andy Hall Sep 02 '12 at 23:42
2

Basically it's all about java + some kind of specific xmlish declarative language. I guess java as a basis is enough because everything else is more android specific.

Eli Turchinsky
  • 331
  • 2
  • 8
2

One answer here
How do you know if you would understand android with your current knowledge?: Android Training Skim through code there, if you are able to understand it, that means all you need is java, and some xml layout stuffs.

Community
  • 1
  • 1
wtsang02
  • 18,603
  • 10
  • 49
  • 67
  • I kinda-sorta understand it, but as soon as it gets into fragments I'm lost. I can follow the basic stuff, though, but I have to really try. – Andy Hall Sep 02 '12 at 23:40
2

You can start with these tutorials, in this question:

Online Android Development Tutorial / Beginner's Guide?

Then, as you get more comfortable, familiar, start to look at the sample programs.

Community
  • 1
  • 1
James Black
  • 41,583
  • 10
  • 86
  • 166
2

There are few tutorials which start with basic. probably you want to have look into it. Before going through these tutorials read about the Android architecture and you are good to go.

Some of the Android basic tutorial.

  1. developer.android.com
  2. Vogella.com
  3. myong.com
Rakesh
  • 3,987
  • 10
  • 43
  • 68