Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have some free time. I want to develop some android apps. I know a little bit of html, css and basics in C programing. The problem is I don't know any java or .net. I have to start from scratch and should learn on my own. Is it possible? If possible what should I learn to make some quality apps? I can spend time if I can learn.

share|improve this question

closed as too broad by Jim G., Kilian Foth, GlenH7, Bart van Ingen Schenau, Glenn Nelson Jul 8 '13 at 12:14

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

1  
Your question is asking about an overly broad area of programming. Have a look through the help center to get a better understanding of what types of questions fit well within Stack Exchange. –  GlenH7 Jul 8 '13 at 11:13

5 Answers 5

The easiest way to get started would be to download the Android SDK. You would be coding in Java. When I started with this I had never used Java before either, but it didn't take too long to pick up having done C and related languages before.

There are also a lot of getting started guides and tutorials on the same site.

From my personal experience, starting with the framework and tools and following tutorials, allowed me to pick up the Java language and enjoy doing it more than I would have if I had just focused on learning Java by itself.

share|improve this answer

First and foremost start with basic Java. Then learn about XML and web services. You also need to know database operations. Get started with SQLite database tutorials. Search google for beginner tutorials on Android. You can also look into "Beginning Android 4 Application Development" book.

share|improve this answer

If you have HTML skills, the go get a html-based cross-platform toolkit, such as Apache Cordova.

Then you can develop for iOS as well. There's no need to learn Java for Android dev, just because that's what they use in the SDK. You could use C with the NDK, but there are easier toolkits available, and IMHO learning a cross-platform toolkit is worth the effort.

share|improve this answer
    
I hear the upcoming Ubuntu-phone and Firefox also support Cordova. –  NoBugs Jun 21 at 4:18
    
FYI Visual Studio also supports Cordova so that means tooling support will be very good. –  gbjbaanb Jun 21 at 15:54

With a front-end web development skill set such as your own, you could go the route of something like Apache Cordova - combined with a framework such as JQTouch or jQuery Mobile... However I wouldn't advise that!

Why?

  • It's good to learn new things.
  • Sometimes these apps can be flakey, and just feel like a web page. (They can be neat don't get me wrong, but they can be not so neat...)

So with that in mind, you'll be best of learning Java - which the Android SDK requires. Now depending on your experience with C, this may not be too difficult.

C will have given you a good introduction to the syntax of Java, introduced you to the principles of flow control, variables, data types and so on. This is all good, and it's also pretty universal amongst mainstream languages. (Note, that's not a rule though. Ruby and Python are just two examples of languages that are more diverse)

The main thing that C wont have taught you is "Object Orientation"; and this is one big thing to try and grasp - especially with regards to Java. (It's essential to have an understanding of this) You'll be using some form of "Design Pattern" when developing your apps, possibly "MVC".

The three things I've highlighted are the three things I'd deem essential to understand; Object Oriented Programming and some basic design patterns; if only MVC to begin with.

For Java - Oracle have some good documentation, inherited from the Sun days here. If you go through the basic tutorials you'll have a fairly good foundation to work upon.

Now for Object Orientation - honestly speaking, I spent a couple of years bumbling about this topic - and it never truly clicked until I looked at Design Patterns. I'd suggest this website OODesign as a good resource. You wont find anything regarding MVC on there though, as technically it's a 'composite pattern' - meaning a mixture; so just read the wiki article and experiment!

Now that's my advice for getting a good understanding of Java; required for the Android SDK. Or you could do what I did, downloaded it and messed around making a lot of mistakes but learning a lot at the same time... ;)

In short - yes!! It's totally possible to learn in your own time, I would even advise it! Just take time out and experiment, read what you can and remember you have communities such as StackOverflow to fall back on. Hell, I often read topics about subjects I'm trying to learn - just to get some more knowledge.

There's training videos and books available that will take you step by step, but if you want the underlying knowledge first then I hope the advice above will hold you in good fortune. Overall, good luck and enjoy it!

share|improve this answer

You need to learn the beyond-basics of Java and also have a solid understanding of Object Oriented Programming if you want to avoid hard time on comprehending the Android Framework. Because if you don't, you will have a hard time of understanding the codes when you search on the internet and also the android developer site.

It may take a many days or a week doing so, but rest assured worth it and saves you a lot of time later om your development effort.

Additional: XML, and C/C++ for games and native code development.

share|improve this answer
    
Some examples would make your answer stronger and help demonstrate your points. –  GlenH7 Jul 8 '13 at 10:54

Not the answer you're looking for? Browse other questions tagged or ask your own question.