Materials For Learning Android Development? - Android Software Development

Hey guys, I'd like to learn how to develop for the Android OS.
What materials would to recommend that start from a beginner level that fully explain every step? Examples and learning tasks would be excellent too.
Was shown Professional Android 2 Application Development by Reto Meier which I'm considering buying, but will it be too advanced to start with?
Thanks for any help.

Im looking for exactly the same thing, although i do know a bit of java, it would be nice too have some comprehensive guides.

video learnings
xtensivearts.com have posted 11 series on how to do development on android
and
follow this link for an hour tutorial on android development http://www.youtube.com/watch?v=j8XseabG5j0&feature=player_embedded
and u can find many more videos on related section

First you need to learn java
Here:
http://java.sun.com/docs/books/tutorial/getStarted/index.html
http://java.sun.com/docs/books/tutorial/java/index.html
http://java.sun.com/docs/books/tutorial/essential/index.html
http://java.sun.com/docs/books/tutorial/collections/index.html
http://java.sun.com/docs/books/tutorial/ui/index.html
http://java.sun.com/docs/books/tutorial/deployment/index.html

Depends on how beginner you are
What sort of programming experience do you have? Are you familiar with Java?
It's probably worth taking a look at some of the examples at the Dev Guide section of the Android Developer site (developer dot android dot com). If you're comfortable with that you should be fine to use Professional Android 2.
The book assumes you're a fairly experienced developer who is comfortable with Java (or at least experienced with similar OO languages), but that you have little to know knowledge of Android or mobile development.

houseonfire said:
First you need to learn java
Here:
http://java.sun.com/docs/books/tutorial/getStarted/index.html
http://java.sun.com/docs/books/tutorial/java/index.html
http://java.sun.com/docs/books/tutorial/essential/index.html
http://java.sun.com/docs/books/tutorial/collections/index.html
http://java.sun.com/docs/books/tutorial/ui/index.html
http://java.sun.com/docs/books/tutorial/deployment/index.html
Click to expand...
Click to collapse
You shouldn't include that first link in my opinion
About the Java Technology
Java technology is both a programming language and a platform.
The Java Programming Language
The Java programming language is a high-level language that can be characterized by all of the following buzzwords:
# Simple
# Architecture neutral
# Object oriented
# Portable
# Distributed
# High performance
# Multithreaded
# Robust
# Dynamic
# Secure
Click to expand...
Click to collapse
It's just sounds like marketing and someone stroking themselves.
[Second link]
http://java.sun.com/docs/books/tutorial/java/concepts/object.htm
I'm so ****ed... does anyone any where ever teach things in a manner that shows how things work, besides the bull****???
I'm never going to learn at this rate. Seems like their are peices of the puzzle people don't understand, which i fully understand and have no patience for.. and the stuff every one grabs onto easily is that stuff i can't find taught
[Next page]
http://java.sun.com/docs/books/tutorial/java/concepts/class.html
For some reason I doubt if I plug that code in its just going to flat out work...
Any tutorials that teach in a fashion that says... hey this is what you need to know..
There are variables, classes and this is what needs to go into place for them to work.
In the real world, you'll often find many individual objects all of the same kind. There may be thousands of other bicycles in existence, all of the same make and model. Each bicycle was built from the same set of blueprints and therefore contains the same components. In object-oriented terms, we say that your bicycle is an instance of the class of objects known as bicycles. A class is the blueprint from which individual objects are created.
Click to expand...
Click to collapse
Who CARES??
I want to see the tools and see what needs to be in place for them to work and how to work them.
This turtorial isn't for me
I need a no bull**** tutorial for newbies that flat out says these are the things you needto know how to utilize and this is how you utilize them, in explainable code that works, that isn't missing code someone assumes ill know to put there.
I'm coming to the conclusio that the most difficult part about developing is finding out where you need tolearn from and a good resource to teach you in your own learning style.
I'm a genius in an area everyone is retarded in and a retard in an area that makes the rest of the world seem to have genius about something im missing..

I'd recommend the book called Hello, Android.

I was thinking the same thing... i just can't afford to spend any more money on something that isn't going to teach me in my style...
I'm afraid something might be wrong with the area of my brain that handles communication, language and the english language because there seems to be something about specific things that i just can never grasp unless shown piece by piece a couple of times.
nobody seems serious about showing me anything eer.. they just want to tell me :/
[edit\
Starting here.. ill just tough through what I can but im certain ill be asking some basic stupid questions because there will be something ill be having trouble wraping my head around
2.1 The Big Picture
Let’s start by taking a look at the overall system architecture—the key
layers and components that make up the Android open source software
stack. In Figure 2.1, on the next page, you can see the “20,000-foot”
view of Android. Study it closely—there will be a test tomorrow.
Each layer uses the services provided by the layers below it. Starting
from the bottom, the following sections highlight the layers provided by
Android.
Click to expand...
Click to collapse
**** it, i just skipped to the creating menus section.... who in the world has time for people wanting to jolly themselves by talking a bunch of bull****?
I need to know "how" not "why"...damn it,

Bunnnyman said:
I'd recommend the book called Hello, Android.
Click to expand...
Click to collapse
The example code for enabling the menu button to pop up a menu appears to be incomplete.
I might be stupid but im not that stupid...

Related

So I want to learn to develop for Android...

This is me: college kid, no developing experience whatsoever (unless you could a basic HTML course in like 9th grade... lol), relatively intelligent, interested in technology.
What do I need to learn?
I found a "java 101" article to read here: Learn Java from the ground up - JavaWorld
Is android just Java or is there any other kind of language..? I've heard something about C++? or is that part of Java?
As you can tell, I'm a noob lol.
Then I read that I need Eclipse (what does that do again?), which one should I get (I'm on a Mac): Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, or Eclipse Classic 3.6?
Is this a bad idea considering I know nothing? Like am in way over my head?
Any other ideas or links anyone can share?
I made this same post on a different forum, and someone told me that XDA was a great place to learn programming and such.
Any help is appreciated. Thanks!
Oh and can I program without a problem from OS X or should I use bootcamp and do it all under Windows 7?
This is me: high school kid who is a noob Java programmer.
1. Learn Java. That's what Android apps are written in (I think).
2. C++ is a different language. Don't think it's of use here.
3. Eclipse for Java Dev.
4. Embrace your Mac.
I'm in much the same boat you are. I went and grabbed a book called, "Android Application Development" from my local book store tonight (oreilly.com). I am not endorsing the book yet as I'm only a few pages in and it was the only Android book at the store. There was not a single book on Java. I'll be turning to the many many web sites available for that until I get a solid recommendation for a book from someone.
The only thing I've ever done that's even remotely close is built SQL databases, reports and queries which I now manage as a cardiac researcher. I have no classes or anything else useful other than I know my way around PCs enough to build them and install my own OS's.
The advice in the book for the dev environment is:
1. JDK 5 or 6 and the book says that OSX comes with 5.
2. Eclipse IDE for Java Developers for your OS. Get the latest version (which defaulted as such for me for Vista 64).
3. The Android SDK.
After the above, there are some steps to take a look at on the Android SDK site. Follow those and read it all. I'm pretty sure I'm just a person of average intelligence and I think I have a handle on getting to where I can start working and the Hello World bit seems to make sense right now. We'll see how things go as I learn more of the Java syntax.
Good luck!
I would love any advice on sites/books for a non-programmer to start to get a grip on Java and creating an Android app in general. I have some plans for some specific medical uses for my job and I have always been interested in writing programs. Seems like a great time to start.
For Java, a good place to start (other than the Sun site itself) is JavaRanch. I'm too new to post links, but the URL is easy to figure out, and a quick search would turn it up as well. The site has lots of information, links to book reviews for Java, forums and so on. It was a good resource when I was studying Java in college!
Good luck!
nebulosity said:
For Java, a good place to start (other than the Sun site itself) is JavaRanch. I'm too new to post links, but the URL is easy to figure out, and a quick search would turn it up as well. The site has lots of information, links to book reviews for Java, forums and so on. It was a good resource when I was studying Java in college!
Good luck!
Click to expand...
Click to collapse
Thanks much! I found an Intro to Programming with Java class at the local community college here but it doesn't start until Sept. =/ That site looks good though, hopefully I can find a book that seems to fit.
(edit: the following assumes you've more or less mastered Java already; I really don't know what to recommend for someone who's trying to learn Java AND Android programming simultaneously. I suspect part of the reason for the lack of books for THAT niche is due to the fact that it's more or less impossible to take any programming class in college that doesn't either involve Java or have it as a non-negotiable prerequisite, even if Java per se isn't directly relevant. It's just part of the baseline cultural background noise).
If you buy nothing else, buy "Beginning Android 2" by Mark Murphy. If you're not totally broke, buy "Pro Android 2" by Sayed Hashimi while you're at it. Don't try to skip the first and go straight to the second... there's a lot of medium-level stuff that's covered thoroughly in "Beginning" that's barely touched upon in "Pro".
Those two books aren't great if you like to jump around and learn things in random order as need arises, but they're probably the gold standard right now for books that comprehensively teach Android Programming in a sensible order from start to finish.
"Professional Android 2 Application Development" by Reto Meier is a great complement to those books, because it IS more of a "jump around and grab important details as the need to learn them arises" book. I refer to all three on a regular basis.
"Hello, Android" is one of those books that you'll probably never look at again two weeks after you first start reading it... but if cash isn't really a problem, it's a nice tutorial for brand new Android developers.
Content-wise, the pdf commonsware.com books by Mark Murphy (yeah, the same Mark Murphy who wrote the Apress book) are probably the best of all, because they literally ARE updated regularly as typos & bugs get found (every book has 'em, few books ever usefully fix 'em) and new versions of Android get released. The problem is, unless you have an ebook reader, let's be honest... ebooks kind of suck. Sometimes, a real book is nice to have. So, I'd say Murphy's books kind of break new ground between online articles and real books... they go into a lot more depth, more coherently, than any one online source of info about Android programming... but unfortunately, because they're ebooks, they're about as pleasant to casually read as those same online articles.
18 months from now, when Android tablets with 1280x720(*) displays or better are common and relatively cheap, eBooks are going to be the norm for Android books going forward, because THEN they'll let you have the best of all worlds -- the coherent editing and comprehensive content of "real" books, the up-to-date accuracy of the best online sources of info, and a reading experience that doesn't kind of suck. Five years from now (when the eBook experience has finally become civilized), I'll be shocked if programming books even exist anymore in printed form, aside from maybe books like "${Language}: How to Program" that deal with topics that don't really change radically from month to month and are more or less universal as college textbooks. Programming and system administration are the kind of topics that are really too volatile for paper books, and for they most part they've ALWAYS been... there just hasn't really been a civilized alternative to them. IMHO, Android tablets will be what finally make it a civilized experience, because for the first time normal people (meaning developers who don't work for huge corporate entities like Amazon and Sony) will be able to develop ebook apps with their own UI experiments. Right now, all we have are devices optimized for reading mass-market top-20 fiction... devices that largely suck for the specific task of reading (and referring to) programming books (where you generally flip around a lot, and 700ms latency every time you change a page will drive you insane in 3 minutes).
So, in summary, here's my recommended buying order:
If cash is abundant and you want a nice intro: Hello, Android (latest edition)
Absolutely mandatory: Beginning Android 2
Equally mandatory, but maybe a few weeks later: Pro Android 2
then, it's a toss-up between a commonsware "Warescription" for Murphy's other books (which gives you access to the latest and greatest versions of them for a year, plus perpetual ownership the last copies you downloaded before the year ran out) and Meier's book (if you really hate ebooks). Personally, I'd recommend the Warescription AND Meier's book
(*)1280x720 is the rock-bottom minimum resolution viable for comfortably reading an O'Reilly-Manning-sized book in pdf form two pages at a time. 800x480 is just a hair below the resolution you really need to comfortably read ONE O'Reilly-Manning sized page at a time.
bitbang3r said:
<snip>
18 months from now, when Android tablets with 1280x720(*) displays or better are common and relatively cheap, <snip>
So, in summary, here's my recommended buying order:
If cash is abundant and you want a nice intro: Hello, Android (latest edition)
Absolutely mandatory: Beginning Android 2
Equally mandatory, but maybe a few weeks later: Pro Android 2
then, it's a toss-up between a commonsware "Warescription" for Murphy's other books (which gives you access to the latest and greatest versions of them for a year, plus perpetual ownership the last copies you downloaded before the year ran out) and Meier's book (if you really hate ebooks). Personally, I'd recommend the Warescription AND Meier's book
(*)1280x720 is the rock-bottom minimum resolution viable for comfortably reading an O'Reilly-Manning-sized book in pdf form two pages at a time. 800x480 is just a hair below the resolution you really need to comfortably read ONE O'Reilly-Manning sized page at a time.
Click to expand...
Click to collapse
The bolded above is the exact reason I am learning. I need to be able to write my own app for the upcoming tablets. We are planning to move a lot of document work to tablets over the next few years in the medical industry and the existing product lines are hilariously and prohibitively expensive. Since I already work extensively with our privacy laws and and regulations, I'm fairly sure that I can get a working solution for us over the next three years instead of investing millions of dollars in proprietary systems.
Thank you SO much for this advice. I'm ordering Beginning Android tonight and will pick up the other suggestions about halfway through the first book. My class will start in September. If you happen to have any other suggestions that might ease my way into programming concepts in general I would also appreciate those. Again, thanks a ton for the great advice.
Yeah i hear ya man. I took Java Programming in my senior year of highschool and got an A in it. So i know im capable for doing android, but im still finding my way around. hopefully one day i can actually do it! I hope!
bitbang3r said:
(edit: the following assumes you've more or less mastered Java already; I really don't know what to recommend for someone who's trying to learn Java AND Android programming simultaneously. I suspect part of the reason for the lack of books for THAT niche is due to the fact that it's more or less impossible to take any programming class in college that doesn't either involve Java or have it as a non-negotiable prerequisite, even if Java per se isn't directly relevant. It's just part of the baseline cultural background noise).
If you buy nothing else, buy "Beginning Android 2" by Mark Murphy. If you're not totally broke, buy "Pro Android 2" by Sayed Hashimi while you're at it. Don't try to skip the first and go straight to the second... there's a lot of medium-level stuff that's covered thoroughly in "Beginning" that's barely touched upon in "Pro".
Those two books aren't great if you like to jump around and learn things in random order as need arises, but they're probably the gold standard right now for books that comprehensively teach Android Programming in a sensible order from start to finish.
"Professional Android 2 Application Development" by Reto Meier is a great complement to those books, because it IS more of a "jump around and grab important details as the need to learn them arises" book. I refer to all three on a regular basis.
"Hello, Android" is one of those books that you'll probably never look at again two weeks after you first start reading it... but if cash isn't really a problem, it's a nice tutorial for brand new Android developers.
Content-wise, the pdf commonsware.com books by Mark Murphy (yeah, the same Mark Murphy who wrote the Apress book) are probably the best of all, because they literally ARE updated regularly as typos & bugs get found (every book has 'em, few books ever usefully fix 'em) and new versions of Android get released. The problem is, unless you have an ebook reader, let's be honest... ebooks kind of suck. Sometimes, a real book is nice to have. So, I'd say Murphy's books kind of break new ground between online articles and real books... they go into a lot more depth, more coherently, than any one online source of info about Android programming... but unfortunately, because they're ebooks, they're about as pleasant to casually read as those same online articles.
18 months from now, when Android tablets with 1280x720(*) displays or better are common and relatively cheap, eBooks are going to be the norm for Android books going forward, because THEN they'll let you have the best of all worlds -- the coherent editing and comprehensive content of "real" books, the up-to-date accuracy of the best online sources of info, and a reading experience that doesn't kind of suck. Five years from now (when the eBook experience has finally become civilized), I'll be shocked if programming books even exist anymore in printed form, aside from maybe books like "${Language}: How to Program" that deal with topics that don't really change radically from month to month and are more or less universal as college textbooks. Programming and system administration are the kind of topics that are really too volatile for paper books, and for they most part they've ALWAYS been... there just hasn't really been a civilized alternative to them. IMHO, Android tablets will be what finally make it a civilized experience, because for the first time normal people (meaning developers who don't work for huge corporate entities like Amazon and Sony) will be able to develop ebook apps with their own UI experiments. Right now, all we have are devices optimized for reading mass-market top-20 fiction... devices that largely suck for the specific task of reading (and referring to) programming books (where you generally flip around a lot, and 700ms latency every time you change a page will drive you insane in 3 minutes).
So, in summary, here's my recommended buying order:
If cash is abundant and you want a nice intro: Hello, Android (latest edition)
Absolutely mandatory: Beginning Android 2
Equally mandatory, but maybe a few weeks later: Pro Android 2
then, it's a toss-up between a commonsware "Warescription" for Murphy's other books (which gives you access to the latest and greatest versions of them for a year, plus perpetual ownership the last copies you downloaded before the year ran out) and Meier's book (if you really hate ebooks). Personally, I'd recommend the Warescription AND Meier's book
(*)1280x720 is the rock-bottom minimum resolution viable for comfortably reading an O'Reilly-Manning-sized book in pdf form two pages at a time. 800x480 is just a hair below the resolution you really need to comfortably read ONE O'Reilly-Manning sized page at a time.
Click to expand...
Click to collapse
Wow, thanks a ton! I'll be sure I pick up those 4 things later on.
Since I wrote the original post in this thread a couple days ago, I've spent some time trying to learn Java. As a total noob to programming, this has proven to be quite a challenge. Just about every book or eBook I see (A couple "java for dummies", "eclipse for dummies", "thinking in java", and I'm about halfway through the free sample of VTC's Java: Introduction to the Java Programming Language, which is an audio/video presentation thing) says that prior programming knowledge is necessary or that I should have some basis in C or something like that.
Also, there's command line as well as all of the different IDEs.. I'm assuming that these are all mainly interchangeable or what?
Should I just continue trying to learn Java and once I think I've figured it out just move on to Android or do you guys think I won't be able to get by without taking some sort of a programming class in school?
Thanks for all your help guys! By the way, how long do you think it might take to go from a noob to someone who can actually write an Android app?
for those of us that might be a bit hard up on cash http://developer.android.com/index.html
has a wealth of free information and sample programs. CHECK IT OUT!
Hello all, nice conversation that hasn't been diverted yet so I think I shall make a small contribution to this.
Programming courses and books that you can buy are a good way of learning but is not always an option due to mainly money constraints luckily we have this thing called internet , it has never been easier to learn programming than it is at the moment the plethora of resources available is absolutely incredible the only problem might be in finding things in a structured and well ordered way.
One of the tricks I've used in the past is to look up books that either get recommended or you like the look of and then find the index listing for that book which is usually given away free by sites selling books, then all you need to do is Google for the given topics =o)
As for learning Java to get started on the path to Android application building I think the biggest issue most people will be facing is that they find Java books but none of them seem to be making anything exciting, the problem is to make exciting things you really need to know a fair bit more about developing.
So that having been said I think as a short check list for someone looking to go from zero programming experience to developing their first android apps I would recommend something like this:
1. Go and read about Object Oriented Programming model
You won't fully grasp all the concepts straight away without having done any programming but it is good idea to get this stuff into your head straight away as it will start making more sense once you've learned a bit and then makes it easier to later on come back to this and get the lovely eureka! moments. Good place to start could be something as simple as Wikipedia.
2. Write console applications
By this I mean little java applications that you will be running from the command line on your computer. This is where most people I think get discouraged as they can't see how this relates to Android development.
Forget about graphics, user input, mobile devices etc for now, you can learn so much by writing these:
-Basic types & Variables
-Arrays
-Basic arithmetic and working with strings
-Loop structures
-Logic such as IF statements
-Creating new classes and objects
-Calling functions and returning values
Now all of the above will be used over and over and over again no matter whatever you are writing and the good thing is that it can all be learned by learning 1 additional non android specific thing: how to print out text to command line.
A good example application that you can write that uses most of the above would be a simple application you run from the command line, it fills an array with randomly generated integers between 1 and 20, lets say it generates 10 of them and then displays them to you in the order of smallest to highest.
No user input required, no graphics required etc, its not the most exciting thing but it will get you using all the basic building blocks.
3. Revisit the object oriented model
Do this again as it is pretty vital you understand it and after completing step 2 it will start making a whole lot more sense.
4. Install Eclipse and complete the Hello World tutorial on the android site:
There are plenty of guides on how to install the Android SDK and Eclipse environment and the best ones are from Google themselves. Follow them, if something doesn't work, try and figure out why it doesn't and then search for it, chances are that someone has already figured out why and you've just missed something.
Then complete this tutorial: http://developer.android.com/resources/tutorials/hello-world.html
5. Modify the Hello World tutorial:
Don't get ahead of yourself and start writing your killer app now, start slowly modifying the Hello World tutorial, learn how to display a piece of text from your application.
Now do everything you did with Step 2 but do it all on the Android app.
Visit this list but don't get too stuck with it:
http://developer.android.com/resources/faq/commontasks.html
6. Complete the Notepad tutorial:
If you've blindly followed my steps/similar steps this will be difficult and you should spend a good while dissecting all of it. The tutorial is actually excellent and touches on everything you pretty much need to write a fully functioning application. Don't go for the way of downloading sample source blindly following the tutorial, compiling in the end and then checking this as done.
I bet there are million things you won't understand about it so just keep going through it line by line and when you understand how it works, make it your own, start adding features to it, just silly things but do it =o)
7. Read, Read, Read & Start small.
You should now be at a point where you can start thinking about why you originally wanted to develop for android, if its a simple app you wanted to make start reading about topics that are specific to your app. Also this is a perfect time now to pick up an android application development book, up until this point all the free information has been as good as if not better than books.
If you want to make a game...be prepared to be spending atleast 2-3 times as long as you have to this point before it becomes even viable.
And final piece: Start small, for your first app don't start writing a full fledged facebook killer android social networking location based interactive photo editing physics calculator, do something simple and gradually build up to bigger projects...trust me on that =o(.
Anyhoo bored at work as you can probably tell, hope the above is a good outline for someone thinking of undertaking Android development if they have no previous experience. I don't mean to put people off just be prepared to spend a LONG time with this, it's not overly difficult but if you haven't done development before the sheer amount of new concepts you will have to understand from early on and WELL is very daunting.
.FxN
1. Install required components
* For Java use the latest version
* Android SDK
Once downloaded extract the folder to one of the PATH for example E: \ android_sdk_windows
* To Eclipse used Eclipse 3.5 (Galileo)
2. Add the Android platform and other packages needed to SDK
* SDK Run Setup.exe
* In the Available Packages menu to select all the packages downloaded
* select Install Selected and then select the Accept All to accept the selected packages
* select Install Accepted , Choose Install to install packages that we want to SDK
* Set the path to the Android SDK directory, by opening the Control Panel and then click on mycomputer system or right click and select Properties. Then on the Advanced tab select Environment Variables, click Edit on the path then input the Android SDK directory path
3. Install Android Development Tools (ADT)
fxn said:
Hello all, nice conversation that hasn't been diverted yet so I think I shall make a small contribution to this.
Programming courses and books that you can buy are a good way of learning but is not always an option due to mainly money constraints luckily we have this thing called internet , it has never been easier to learn programming than it is at the moment the plethora of resources available is absolutely incredible the only problem might be in finding things in a structured and well ordered way.
One of the tricks I've used in the past is to look up books that either get recommended or you like the look of and then find the index listing for that book which is usually given away free by sites selling books, then all you need to do is Google for the given topics =o)
As for learning Java to get started on the path to Android application building I think the biggest issue most people will be facing is that they find Java books but none of them seem to be making anything exciting, the problem is to make exciting things you really need to know a fair bit more about developing.
So that having been said I think as a short check list for someone looking to go from zero programming experience to developing their first android apps I would recommend something like this:
1. Go and read about Object Oriented Programming model
You won't fully grasp all the concepts straight away without having done any programming but it is good idea to get this stuff into your head straight away as it will start making more sense once you've learned a bit and then makes it easier to later on come back to this and get the lovely eureka! moments. Good place to start could be something as simple as Wikipedia.
2. Write console applications
By this I mean little java applications that you will be running from the command line on your computer. This is where most people I think get discouraged as they can't see how this relates to Android development.
Forget about graphics, user input, mobile devices etc for now, you can learn so much by writing these:
-Basic types & Variables
-Arrays
-Basic arithmetic and working with strings
-Loop structures
-Logic such as IF statements
-Creating new classes and objects
-Calling functions and returning values
Now all of the above will be used over and over and over again no matter whatever you are writing and the good thing is that it can all be learned by learning 1 additional non android specific thing: how to print out text to command line.
A good example application that you can write that uses most of the above would be a simple application you run from the command line, it fills an array with randomly generated integers between 1 and 20, lets say it generates 10 of them and then displays them to you in the order of smallest to highest.
No user input required, no graphics required etc, its not the most exciting thing but it will get you using all the basic building blocks.
3. Revisit the object oriented model
Do this again as it is pretty vital you understand it and after completing step 2 it will start making a whole lot more sense.
4. Install Eclipse and complete the Hello World tutorial on the android site:
There are plenty of guides on how to install the Android SDK and Eclipse environment and the best ones are from Google themselves. Follow them, if something doesn't work, try and figure out why it doesn't and then search for it, chances are that someone has already figured out why and you've just missed something.
Then complete this tutorial:
5. Modify the Hello World tutorial:
Don't get ahead of yourself and start writing your killer app now, start slowly modifying the Hello World tutorial, learn how to display a piece of text from your application.
Now do everything you did with Step 2 but do it all on the Android app.
Visit this list but don't get too stuck with it:
6. Complete the Notepad tutorial:
If you've blindly followed my steps/similar steps this will be difficult and you should spend a good while dissecting all of it. The tutorial is actually excellent and touches on everything you pretty much need to write a fully functioning application. Don't go for the way of downloading sample source blindly following the tutorial, compiling in the end and then checking this as done.
I bet there are million things you won't understand about it so just keep going through it line by line and when you understand how it works, make it your own, start adding features to it, just silly things but do it =o)
7. Read, Read, Read & Start small.
You should now be at a point where you can start thinking about why you originally wanted to develop for android, if its a simple app you wanted to make start reading about topics that are specific to your app. Also this is a perfect time now to pick up an android application development book, up until this point all the free information has been as good as if not better than books.
If you want to make a game...be prepared to be spending atleast 2-3 times as long as you have to this point before it becomes even viable.
And final piece: Start small, for your first app don't start writing a full fledged facebook killer android social networking location based interactive photo editing physics calculator, do something simple and gradually build up to bigger projects...trust me on that =o(.
Anyhoo bored at work as you can probably tell, hope the above is a good outline for someone thinking of undertaking Android development if they have no previous experience. I don't mean to put people off just be prepared to spend a LONG time with this, it's not overly difficult but if you haven't done development before the sheer amount of new concepts you will have to understand from early on and WELL is very daunting.
.FxN
Click to expand...
Click to collapse
Oh wow. This is great! Thanks a ton for taking the time to write all of that, I'm gonna go get started
I've already touched upon many of those things thanks to free ebooks and youtube tutorials and such, but now I know exactly what to do
Quick question though: what's the "notepad tutorial" ?
thanks again!
and @learnandroid, thank you as well for the instructions. i have eclipse set up now
A nice java book that I recommend is called Java Programming, comprehensive edition.
fichdak said:
Quick question though: what's the "notepad tutorial" ?
Click to expand...
Click to collapse
I can't yet post links, but just Google "Android notepad tutorial" - it's the first hit.
They take you through 3 different versions of the app, each slightly more complicated than the last. Definitely worth going through if you're new.
XDA has always been a fantastic community and you guys are the reason. Thank you for the thoughtful and very much appreciated advice and help.
I'm having a great time already. I really hope I can get into the class but it's already full with a waiting list. The books, tutorials and great resources are of course great but I have always liked to do new stuff with groups. I tend to learn more with some group goals involved along with the focused study.
Thanks again guys.
http://www.linuxclassroom.com/
This guy in San Antonio started an Android programming class for 8th graders and posted all of his lesson plans online. Might be a good place to start.
fichdak said:
Quick question though: what's the "notepad tutorial" ?
Click to expand...
Click to collapse
Sorry forgot to post the link: http://developer.android.com/resources/tutorials/notepad/index.html
.FxN
Great Thread full of info.
I have tried learning C# and Java on my own in the past but I could never grasp the concept and gave up.
I had an opportunity to go back to school full-time with programming in mind. I started last spring taking Software Development which teaches basic concepts of programming. Now I am starting my second semester in the fall taking intro to Java and c++ followed by advanced Java and c++ in the spring .
I hope I can transfer the knowledge from school along with the info provided in this Thread to build quality android applications in the future.
Thanks
-Bri
I know it's geographically limited to a small subset of the people here, but I'm pretty sure I remember reading somewhere that UC Santa Cruz actually has courses in Android Development (part of their certificate in embedded software development curriculum). However, I think it's safe to assume that a solid background in Java (including objects and threading) is a prerequisite. Anyone who lives within sane driving distance of Silicon Valley might want to check them out...
I definitely have to agree that if you're literally just starting with Java, don't even *think* about touching Swing until you're comfortable writing console apps. It's really easy to get overwhelmed by Swing. For the most part, Android programming isn't really harder than good Swing programming... the difference is, with Swing, you can still get away with doing some things that are bad, but will kind of work anyway (like blocking operations by a UI thread). Android simply won't tolerate or allow you to even *try*. It's good in the long run (I guess), but makes writing your first few real programs a lot harder than you probably expect it to be.
For example, Android won't allow classic "Modal" dialog boxes (where everything grinds to a halt until the user clicks something). Period, end of story. You really shouldn't do it anyway, but being allowed to do it in Swing makes it easier to take your first few baby steps and see your program (sort of) work. With Swing, you can staple the shell of your program together with bad things, then fix them and make them nice once the logic is worked out. With Android, you have to Do It Right the First Time, because it won't allow you to do it any other way.

[Q] future android developer

hi guys
I am an 16years old guy android lover.eddicted to Android
after using android from an year I have decided my future to be an Android devoleper
my aim is to work in Google android project or to become an devoleper like cynagon
can u(the best devolepers of xda) say me what languages to learn and all that I need to be a best android developer.
I also have the question that which operating system is good for learning languages and for Android devolepment is it
1 windows
2 mac os x
3 ubuntu
please my life is in ur answers
Really nice to see other ambitious persons wanting to develop in Android I myself have kind of the same question but I will open my own thread about that later.
Now for you.
I would say you should learn Java as I often read. and when you got a good basic of Java ( or any programming language for that matter) about variables and loops.
Also google provides several usefull starting points for android development but I wouldn't start with that before you have a good basic knowledge of programming itself.
http://developer.android.com/sdk/index.html
This link I find very usefull you learn how an android app works. Where is the data stored, what does it do when you click an app away( instead of exiting the problem)
http://developer.android.com/guide/topics/fundamentals.html
That is my 2 cents about Android Development.
For OS I myself use Mac OSX I find it alot easier to connect with adb than Windows but I can't say what is better.
Goodluck! hope to see alot of programs from you!
You need to become proficient in C/C++ and all the rest will fall into place. I recommend the linux platform (you mention ubuntu, but there are several) as the android platform is linux based. I use Gentoo myself.
Gene Poole said:
You need to become proficient in C/C++ and all the rest will fall into place. I recommend the linux platform (you mention ubuntu, but there are several) as the android platform is linux based. I use Gentoo myself.
Click to expand...
Click to collapse
agreed about c/c++, if you are proficient in c/c++ most if not all other languages will fall into place. its not about the language though but rather the theory and principles behind the languages. I suggest c/c++ because imo if you get c/c++ you get all the others.
Gene Poole said:
You need to become proficient in C/C++ and all the rest will fall into place. I recommend the linux platform (you mention ubuntu, but there are several) as the android platform is linux based. I use Gentoo myself.
Click to expand...
Click to collapse
Oh yeah, I agree here as well. In general, Linux is definitely good for learning programming on. All the tools are *free* (most of my college classes dealt with the Linux platform for this reason). Also, at least on Linux, I have not had problems getting ADB to recognize my device. On Windows, I did get my system to recognize my device, but it definitely took longer.
(Using OpenSuSE for my Android development).
Actually, unlike these spectacular developers, I recommend you learn Java. Android IS coded in JAVA and it is an object oriented programming language, which is in many ways VERY different from C/C++.... Then start going through demos of other Android applications till you can read the code and understand what it is doing.
It finally makes sense why Android developers are so far behind the rest in app development....... college degrees would help.
what happens if I learn java, c/c++
mynameisvineeth said:
what happens if I learn java, c/c++
Click to expand...
Click to collapse
I'm not sure what the question is here... Are you asking what you should do after learning those, or for more opinions about which you should start with?
Anyway, the best thing would be to take a computer science course. That way you'd learn all the fundamentals of computer programming as well as specific languages. If you can't do that, you can always just teach yourself. For example, I took a few basic programming classes (e.g. a few hours a week for 10 weeks "Introduction to C") but after that, everything I learnt was self-taught in Java using the Android SDK. I've been working at it for about a year now, and published my first app 6 months ago which has been selling slowly but steadily, so it can be done.
There are many many resources online you can find, as long as you have the patience and time to read everything. The two best places to learn things from are the official developer's guide and Stack Overflow; Stack Overflow is a question and answer site for programmers.
if I learn the three languages in the collage can i devolep apps.
my aim is to become an good android software engineer so please anyone suggest which course should I take in the university such that my future will be bright with google.
mynameisvineeth said:
if I learn the three languages in the collage can i devolep apps.
my aim is to become an good android software engineer so please anyone suggest which course should I take in the university such that my future will be bright with google.
Click to expand...
Click to collapse
You don't need to learn all three languages. I would personally learn Java first since it's excellent to learn basic programming concepts in and techniques and it is the main language used for developing Android apps. C/C++ should definitely be learned at some point if you want to work for Google, but you'll need at the very least a bachelor's degree before you get to that point. If you get to that point, I am sure you will have learned C/C++.
I do OK under Windows, but I recommend Linux if you can. USB drivers and I was good to go. Java is great, seems dauting at first. I would get java first. But once you know, you like it. At least I did. Makes it more difficult to make a mistake, IMO.
Of course, I'm just starting. Listen first to the extremely advanced people that post here.
Good luck!
is computer science good for me?
Depends I know a few Computer science schools where they teach PASCAL I don't think 4 years of PASCAL will be usefull so it kinda depends what classes are given there. Don't you have a summary of what classes you get at that computer science school? and furthermore computer science can be useful but I don't think you have to know what hardware is in a computer to create an android app.
SterAllures said:
Depends I know a few Computer science schools where they teach PASCAL I don't think 4 years of PASCAL will be usefull so it kinda depends what classes are given there. Don't you have a summary of what classes you get at that computer science school? and furthermore computer science can be useful but I don't think you have to know what hardware is in a computer to create an android app.
Click to expand...
Click to collapse
You have no idea what you're talking about. A computer science degree is not about what language you learn and how to program. It's about the concepts of computer science. It doesn't matter what language a computer science program uses. It has everything to do with the conceprd you learn to apply to programming.
Sent from my GT-I9000 using XDA App
If you wanna work on Android, start with an app instead of trying to work on the framework. You'll learn a lot more, much faster.
It sounds like your definition of a computer science degree is closer to what I'd call "computer theory".
Q: What's the difference between theory and practice?
A: In theory, there's no difference between theory and practice.
Yes, learning threading concepts (for example) in one language will carry over reasonably well to another... but you'll still need to learn a new API, and no two APIs are conceptually identical. Actually being familiar with a given language/API/OS/IDE out of the gate is a pretty big deal when it comes time to Actually Get Hired... or just doing stuff on your own with It (whatever It might be).
I was going to start a new thread with the following post, but I think my questions fit with this thread...
"I have a scientific/technical background and know some networking and Linux basics (i.e. enough to set up a very functional home server with SFTP, Samba, DLNA server, etc from Ubuntu/Deb packages), but I have very little computer programming training.
Where is the best place to start if I would eventually like to develop Android apps?
Should I focus on programming fundamentals with Java as the main programming environment or step right into the Android SDK with Eclipse?
Any links to recommended tutorials and lessons would be greatly appreciated too.
Thanks!"
It sounds to me like Java is the best language to use when learning programming fundamentals if the intent is to develop Android apps in the future. Links to recommended educational resources would really make this a valuable thread.
@ChiefNugget: Please learn first Java and then if you have understood the basics take a look at the developer.android.com site. You should buy a good Java Programmer Book Click
Couple of things to get straight here:
1. "Android" is written in C++ - This is the OS of the phone, it's not written in Java - if you want to be big like Cyanogen you'll need to know C++ very very well. *Sidenote: EXCITED FOR GINGERBREAD CODE TO DROP SOON*
2. Java is not a compiled language (why no OS is written in it) it is a "Interpreted" language meaning that there is very little change from what you type to what the JVM (Java virtual machine, in our case "Dalvik") actually interprets and runs as "Java Byte Code"
So it depends what you want your concentration to be in, if you want to write machine level code - hit up the C++ side of things, if you want to write Apps - java is where you should go.
How ever, I recommend to anyone who wants to become a developer, learn C++ before you learn anything. It's difficult for a reason - it makes you better in the end when you understand how memory is managed and why you shouldn't do things that lots of developers do.
Kcarpenter said:
Couple of things to get straight here:
1. "Android" is written in C++ - This is the OS of the phone, it's not written in Java - if you want to be big like Cyanogen you'll need to know C++ very very well. *Sidenote: EXCITED FOR GINGERBREAD CODE TO DROP SOON*
Click to expand...
Click to collapse
And linux is written in C.
Kcarpenter said:
2. Java is not a compiled language (why no OS is written in it) it is a "Interpreted" language meaning that there is very little change from what you type to what the JVM (Java virtual machine, in our case "Dalvik") actually interprets and runs as "Java Byte Code"
Click to expand...
Click to collapse
That is quite debatable. Between "javac", and JIT compilers, java code does indeed get turned into machine code. And "compiling to bytecode" is still has a valid meaning. When I think interpretted languages, I think "no code is checked until it is executed". You find out about syntax errors when you run it, not when you hit the "build it" button on your IDE.
Kcarpenter said:
How ever, I recommend to anyone who wants to become a developer, learn C++ before you learn anything. It's difficult for a reason - it makes you better in the end when you understand how memory is managed and why you shouldn't do things that lots of developers do.
Click to expand...
Click to collapse
Oh, granted. With java you ALMOST don't need to know what pointers are... but what's left will HANG YOU if you're not careful.
GC's spoil you. Kids these days! Why when I was your age... Anyway, getting into the habit of releasing memory early on means closing files and other resources is likewise well understood. Someone learning java only runs into resource management later on... "stunts their growth" as it were... like Europeans and fractions (metric vs Seemingly random combinations of units).
Get off my lawn!

Trying to become a developer

Sorry if this has been posted but I couldn't find one and if posted in wrong section
Im trying to become a developer but I am stuck at hello android and don't know what to do from there if anyone can show me a way to develop apps easily please help out and this is my first post too =]
Sent from my overclocked Cyanogenmod htc evolution 4g sucka
cesarcerros31 said:
Sorry if this has been posted but I couldn't find one and if posted in wrong section
Im trying to become a developer but I am stuck at hello android and don't know what to do from there if anyone can show me a way to develop apps easily please help out and this is my first post too =]
Sent from my overclocked Cyanogenmod htc evolution 4g sucka
Click to expand...
Click to collapse
You're stuck getting Hello Android to work or whate to do after hello android? Do you know any development languages such as Java or C#? (you'll be writing android apps in java, but C# is really MS version of java with a few syntax differences) If not, are you familiar with object orientation? If not, it's gonna be tough dude but if you're smart and pick stuff up quickly you can learn by reading.
Pick up some books and look at youtube videos.
Sent while sitting on the toilet.
Alright thanks its just that helloandroid project wouldn't start right but I will look up massively on how to start a different way or just try to find the solution and youtube always helps and anyone knows how to make roms looking to make aosp
Sent from my overclocked Cyanogenmod htc evolution 4g sucka
There's a few free Eclipse and Java books out there that a beginner will understand especially if you already understand the concepts of object-oriented programming. Eclipse IDE itself will need a book as it's full of plugins and tools you need to understand to compile your project effectively.
It's going to be a very very long and slow road.
This may help, a series of YouTube videos for beginners.
http://eclipsetutorial.sourceforge.net/totalbeginner.html
I've been thinking the same thing, learning to develop for Android. Since I have near zero experience programming (save for a VB class in college) I decided I would be better off hiring someone to write what I want.
Just keep in mind though, Hello World is just where people start.
You may want to check out the android Appinventor. It's made by Google, and is in beta testing now, but it's a graphical way of programming for android. Though there isn't any code involved and won't be good/used outside of Android, it does a good job imparting the logic of programming.
I'll give you some tips that I've learned over the years as a developer.
First if you haven't done any development before I highly advise obtaining a book. True there are tons of web tutorials out there but personally I find a good author can do wonders in learning how to develop software. Anytime I want to learn a new platform I pick up a book on that platform. Of course you can find a ton of books used but another great source is a library. If you're in college with a computer science program chances are your library will have a couple of books on Android development. Your public library probably has some books on the subject as well. If all else fails see if you have a friend who will loan you a book.
Reading about development is only part one, part two is hands on. You can read an entire book on developing software and walk away with no knowledge. You can mindlessly follow the examples in the book but I find it best to use the examples in books as a guideline. In other words take the idea in the book and morph it so you're working on something original. Trust me here, you'll learn a lot more doing this instead of just mindlessly following the examples.
Next thing you'll need is a problem. Why? Because you need something to write. I find myself most motivated to write software when I either have a problem or something else has one and a checkbook. What do you want your phone to do? Are there applications out there that solve your problem but you think you can do better? Think small and easy since you're still new. Realistically you're not going to be able to make a web browser from scratch as your first project but you can certainly make a database of movies you own.
One thing that is debatable is whether you should learn to write something quickly or well. Frankly I'm in the school or writing something quickly and ignoring "correctness" when you're new. People new to programming spend too much time worrying about doing things "correctly" (very important when you're developing actual software) instead of learning how to do things in the first place.
Your code may not be readable, may not be optimized, and may crash every time an invalid input is entered into a field but you'll learn from those things. I think most people who end up hating programming do so because they spent too much time on worry about the little things and thus seeing no results for their work. Once you have the basics down you can concentrate of the details of optimizing code, validating inputs, and making your code readable.
Honestly not matter what you write you'll look back at it in embarrassment ten years from now anyways.
Ok thanks will look for a book
Sent from my overclocked Cyanogenmod htc evolution 4g sucka
cesarcerros31 said:
Ok thanks will look for a book
Sent from my overclocked Cyanogenmod htc evolution 4g sucka
Click to expand...
Click to collapse
Buy a Java book that also covers Object Orientation basics and principals. (you'll also need to understand some XML to do android programming) If you want to make kernels/ROMS, definitely look into Linux and shell scripting. (you can find most of this info online though)
By the way, I heard the "Java in 24 hours" book is pretty good.
Sirchuk said:
By the way, I heard the "Java in 24 hours" book is pretty good.
Click to expand...
Click to collapse
it might be good, but it wont teach him how to actually code. Most of those books are made for people that know other languages like javascript/php/c/etc.. and are wanting to move to java and learn the new syntax.
I have no idea as to what you know. So ftw.
Write what ever you decide in a pseudo code, first.
Two things will fall out of that, a design, and java methods of implementing the pseudo language ( as you decide what java syntax does your psuedo code) which invariably returns you to (1) the design. I think it's called iterational refinement, or some such other bs.
So don't get bogged down, now that you know hello, make it start "right"...
You all do realize that eclipse was a machine.. a sunny>dg joke.

[Q] Learning to Dev

I have been a member of XDA for a while and now I want to contribute. I have a basic understanding of computers and want to learn more. Obviously our greatest devs were not born devs they had to learn everything from somewhere. I'm looking for suggestions on where to start on the road to become the best dev I can be. Keep in mind I'm flat broke so I cannot hit up the local bookstore or download any paid software, but with the way the internet is today there must a free legitimate source for everything somewhere. So anyone willing to help a noob If I posted in the wrong section please kindly redirect me rather than flame me. Thanks in advance.
It all depends on what you want to contribute. I'm a beginner myself (only developing since august). It is easy to learn Java, for the most part. I would suggest heading over to http://developer.android.com/index.html for starters. There are many examples and if you want to know something specific, try using the search bar at the top right (it comes in handy). I have already published an app, a simple one, but still an application none the less. I am working on two other projects simultaneously (a live wallpaper and a home-replacement app). You can come to my website http://futurinnovations.blogspot.com/ to see what I'm working on. I am still in the process of learning, and being in college slows things down a bit. Just make sure not to give up. If your stuck, ask someone (or everyone) on forums like this.
Futur Innovations said:
It all depends on what you want to contribute. I'm a beginner myself (only developing since august). It is easy to learn Java, for the most part. I would suggest heading over to http://developer.android.com/index.html for starters. There are many examples and if you want to know something specific, try using the search bar at the top right (it comes in handy). I have already published an app, a simple one, but still an application none the less. I am working on two other projects simultaneously (a live wallpaper and a home-replacement app). You can come to my website http://futurinnovations.blogspot.com/ to see what I'm working on. I am still in the process of learning, and being in college slows things down a bit. Just make sure not to give up. If your stuck, ask someone (or everyone) on forums like this.
Click to expand...
Click to collapse
I forgot to mention I want to learn to dev for Android. I want to start out with simple apps then work my way up to building/porting roms. Also I just downloaded the Java JDK and am using Java's "Greenfoot" Tutorial to get started since I have no experience with Java. And I will be sure to check out your blog and thank you for the reply.
porting and building is something far different from app development...you have to know much more if you want to work with kernel,drivers,basically you have to know everything from hardware level to user level (if you want to be top of the class)...good luck
farukb said:
porting and building is something far different from app development...you have to know much more if you want to work with kernel,drivers,basically you have to know everything from hardware level to user level (if you want to be top of the class)...good luck
Click to expand...
Click to collapse
Well we all gotta start somewhere. Now is probably a good time for me as I'm only 18 and a senior in high school. Since I don't have a job at the moment I have plenty of free time after school and on weekends.
I'm only 18 myself. I started straight with downloading Eclipse and all of the appropriate software for developing and just dove in. I would recommend watching these tutorials: http://www.xtensivearts.com/topics/tutorials/. They helped me A LOT. I am taking a programming in C class in the spring semster, which I am looking forward to. Programming in Java for Android is different than regular programming. It's the same concepts, just different APIs and tools. I like using Eclipse because it is easy to learn and get used to. There are a lot of fancy features like a type of autocorrect (not like on the phone, but smarter). Like you said, just start from the basics, like "Hello World" (Hello Android) and practice creating different layouts using the tutorials given on the Developer site. Explore the site and look through everything because eventually you may need to know where its located for quick access. Just don't set too high of goals for yourself, other wise you might be more prone to give up (like I almost did). Good luck
Im in ths same boat as you we got to start somewhere
mit have a fantastic course in computer science online.
search for MIT open courseware then introduction to computer science.
I'm on 10 now, getting very complicated
crowstar said:
mit have a fantastic course in computer science online.
search for MIT open courseware then introduction to computer science.
I'm on 10 now, getting very complicated
Click to expand...
Click to collapse
Thanks bro I'm checking out that MIT course right now it looks really helpfull
This is a great starting point for Android development, as it deals quite well with getting the Android SDK and Eclipse IDE set up and working together.
http://www.vogella.de/articles/Android/article.html
Futur Innovations said:
I'm only 18 myself. I started straight with downloading Eclipse and all of the appropriate software for developing and just dove in. I would recommend watching these tutorials: http://www.xtensivearts.com/topics/tutorials/. They helped me A LOT. I am taking a programming in C class in the spring semster, which I am looking forward to. Programming in Java for Android is different than regular programming. It's the same concepts, just different APIs and tools. I like using Eclipse because it is easy to learn and get used to. There are a lot of fancy features like a type of autocorrect (not like on the phone, but smarter). Like you said, just start from the basics, like "Hello World" (Hello Android) and practice creating different layouts using the tutorials given on the Developer site. Explore the site and look through everything because eventually you may need to know where its located for quick access. Just don't set too high of goals for yourself, other wise you might be more prone to give up (like I almost did). Good luck
Click to expand...
Click to collapse
Hi, I'm 24. And I learn how to 'program' since 14-15.
It's easy to write apps for Android. But it's hard to write good apps.
You should take Software Engineering course (NOT Computer Science course).
If you take CS (Computer Science) course, than you will learn mainly about algorithm.
But if you enter SE (Software Engineering) course, you will learn about SDLC, software QA/testing, and planning to write programs for living
:-D
I personally don't like eclipse, it's just bloated IDE :-(
I use SciTE, apache ant, MinGW/MSYS (GCC 4.5.0), Java SDK, ActivePerl, Dev-C++ IDE. That's should be enough for development :-D
I will see if there are any software engineer classes at the college I am attending. If so, then I will sign up for it. Thanks for pointing me in the right direction. Is taking the programming class still beneficial?
Sent from my ADR6300 using XDA App
Futur Innovations said:
Is taking the programming class still beneficial?
Click to expand...
Click to collapse
I'd really recommend a class if it's a viable option. It will help you understand object oriented programming, where just working through examples won't actually teach you how to understand what you're doing. Things like classes, inheritance and polymorphism are pretty difficult principles to grasp unless you've got someone to explain them to you. Then it's pretty easy.

[Q] Getting started with developing games

Hello everybody.
Various game concepts have been springing up in my mind lately and I am starting to think that I should make them a reality: that's one of the reasons why I bought OUYA.
Problem is...
I know absolutely NOTHING about programming, but I am eager to learn. Does anybody know how should I begin (besides of course getting a good Java manual, which I plan to do ASAP)?
Thank you in advance.
Pretty much just learn as much Java as you can and then start with the tutorials on the Android website. I've done very little Android programming though...very little.
There is a couple ways you can go. You can either use java code with the sdk, or C++ using the ndk. Java will be much easier to use, but because it utilizes a garbage collector, you need a slightly higher understanding of how the code works to write fast running code. C++ is more difficult to learn, especially for a beginner, but because you manage memory manually you have complete control over how your game runs. I would recommend starting with java. There is a good book called Beginning Android Game Development which is published by APress, that covers all the basics.
timkd127 said:
There is a couple ways you can go. You can either use java code with the sdk, or C++ using the ndk. Java will be much easier to use, but because it utilizes a garbage collector, you need a slightly higher understanding of how the code works to write fast running code. C++ is more difficult to learn, especially for a beginner, but because you manage memory manually you have complete control over how your game runs. I would recommend starting with java. There is a good book called Beginning Android Game Development which is published by APress, that covers all the basics.
Click to expand...
Click to collapse
Java first. Garbage collection may be something of a crutch, but if you've never touched programming before in your life, you'll want to focus on learning how to just deal with data structures and methods before worrying about memory management.
Of course, that said, you don't want to learn terrible habits in Java either.
Rirere said:
Java first. Garbage collection may be something of a crutch, but if you've never touched programming before in your life, you'll want to focus on learning how to just deal with data structures and methods before worrying about memory management.
Of course, that said, you don't want to learn terrible habits in Java either.
Click to expand...
Click to collapse
Agreed
Thank you everybody! I'm getting the book Timkd127 suggested as soon as I have some spare time
Pkmns said:
Thank you everybody! I'm getting the book Timkd127 suggested as soon as I have some spare time
Click to expand...
Click to collapse
Glad to help. I did just remember though, that book approaches game dev assuming you already know some java. You might want to familiarize yourself with the language before you spend money on a text.
timkd127 said:
Glad to help. I did just remember though, that book approaches game dev assuming you already know some java. You might want to familiarize yourself with the language before you spend money on a text.
Click to expand...
Click to collapse
That's my concern for the OP. Most resources I've seen for learning Android development assume some Java knowledge and most Java resources assume some basic level of knowledge about programming in general. In this case the OP is claiming to have none of that.
The good news is there are many paths available, the bad news is there are many paths available
Most paths fall into one of two categories:
1) Very high level - Flash and Unity are the two best examples for Ouya that I can think of off the top of my head. While both allow you to get into the code both also provide ways to build some things without getting much into code. Great for getting up and going but a lot of times you can end up finding yourself limited by your tools when you take this kind of approach. Personally I'm not a huge fan. In general you tend to develop skills that are specific to the engine/platform you're working with rather than general skills. The low barrier to entry can be attractive - but the frustration of making your square ideas fit into the round holes provided by your tools can be an issue down the road.
2) Very low level - Grab a text editor and start coding some java is more or less what this breaks down to. But even this path there are several libraries you can use to help yourself along and you can even get lower level and dive into the NDK to write native code in C++. The steep learning curve can scare a lot of people away from this path - but you tend to build more general skills that are easy to re-apply with other tools and scenarios.
I cover my thoughts on some of this specific to Ouya better in my thread on OuyaForums where I'm following my own progress on building some simple games for Ouya: http://ouyaforum.com/showthread.php?4074-Baby-steps
Even though it's more intimidating I personally strongly suggest taking approach 2 before looking into things like Unity and GameMaker - develop your fundamentals then look into tools that can help you leverage them into bigger and bigger ideas.
Whichever path you take at some point you're going to need to know how to code. If you're starting with absolutely no knowledge about coding then it's going to be a bit harder. For example the Android Game Development book (Which I'm currently reading and finding very good - it's also written by the author of libGDX which is the library I'm using to speed development.) assumes a basic knowledge of Java and suggests "Thinking in Java" which is available free on-line (for older versions but they're just fine) to bring people up to speed with Java. I'm also reading that (actually reading that more than the android game development book right now) to brush up on my Java basics. But at the start of that book the author makes it clear that he assumes a basic background in some other programming language! Apparently the printed versions of that book come with a CD including a multimedia course covering programming basics. Phew! That's a lot of books to get through!
They aren't great but one set of tutorials that is aimed at the complete and utter noob are the Kilobolt tutorials that were actually started here on XDA before moving to the authors own site here: http://www.kilobolt.com/tutorials.html
I'm not completely in agreement with the approach those tutorials take or with all of their examples...but they are the best I've seen for someone starting with absolutely no programming knowledge looking to get into Android and by extension Ouya development.
If I was just starting out the advice I'd like someone to give me would probably be:
1) Start with the Kilobolt tutorials.
2) Once you're through Unit 1 start reading Thinking in Java
3) Once you're through TIJ or Unit 3 add in Android Game Development
4) Once you think you're ready for AGD start looking into libGDX
5) Build a SIMPLE game. Play some old atari 2600 games and try to replicate one.
6) Make that simple game fancier - add some modern touches like better graphics and sound, a high score list, achievements, power ups....
7) Let your dreams take over.
One other source you may want to look into as a total beginner is Udacity...I saw their Java course a few weeks ago and signed up for it but haven't been following it because it's more beginner oriented than I was looking for and...well it's incomplete. One of my big beefs with the Kilobolt tutorials was I started following them last year - and the update rate on them quickly dropped so low I forgot about them. Now that they're complete that isn't an issue. But I wasn't about to dive into another incomplete learning resource so when I saw that Udacity's Java intro wasn't complete I didn't even watch more than the intro video. But it's probably worth checking out here: https://www.udacity.com/course/cs046
jhitesma said:
That's my concern for the OP. Most resources I've seen for learning Android development assume some Java knowledge and most Java resources assume some basic level of knowledge about programming in general. In this case the OP is claiming to have none of that.
The good news is there are many paths available, the bad news is there are many paths available
Most paths fall into one of two categories:
1) Very high level - Flash and Unity are the two best examples for Ouya that I can think of off the top of my head. While both allow you to get into the code both also provide ways to build some things without getting much into code. Great for getting up and going but a lot of times you can end up finding yourself limited by your tools when you take this kind of approach. Personally I'm not a huge fan. In general you tend to develop skills that are specific to the engine/platform you're working with rather than general skills. The low barrier to entry can be attractive - but the frustration of making your square ideas fit into the round holes provided by your tools can be an issue down the road.
2) Very low level - Grab a text editor and start coding some java is more or less what this breaks down to. But even this path there are several libraries you can use to help yourself along and you can even get lower level and dive into the NDK to write native code in C++. The steep learning curve can scare a lot of people away from this path - but you tend to build more general skills that are easy to re-apply with other tools and scenarios.
I cover my thoughts on some of this specific to Ouya better in my thread on OuyaForums where I'm following my own progress on building some simple games for Ouya: http://ouyaforum.com/showthread.php?4074-Baby-steps
Even though it's more intimidating I personally strongly suggest taking approach 2 before looking into things like Unity and GameMaker - develop your fundamentals then look into tools that can help you leverage them into bigger and bigger ideas.
Whichever path you take at some point you're going to need to know how to code. If you're starting with absolutely no knowledge about coding then it's going to be a bit harder. For example the Android Game Development book (Which I'm currently reading and finding very good - it's also written by the author of libGDX which is the library I'm using to speed development.) assumes a basic knowledge of Java and suggests "Thinking in Java" which is available free on-line (for older versions but they're just fine) to bring people up to speed with Java. I'm also reading that (actually reading that more than the android game development book right now) to brush up on my Java basics. But at the start of that book the author makes it clear that he assumes a basic background in some other programming language! Apparently the printed versions of that book come with a CD including a multimedia course covering programming basics. Phew! That's a lot of books to get through!
They aren't great but one set of tutorials that is aimed at the complete and utter noob are the Kilobolt tutorials that were actually started here on XDA before moving to the authors own site here: http://www.kilobolt.com/tutorials.html
I'm not completely in agreement with the approach those tutorials take or with all of their examples...but they are the best I've seen for someone starting with absolutely no programming knowledge looking to get into Android and by extension Ouya development.
If I was just starting out the advice I'd like someone to give me would probably be:
1) Start with the Kilobolt tutorials.
2) Once you're through Unit 1 start reading Thinking in Java
3) Once you're through TIJ or Unit 3 add in Android Game Development
4) Once you think you're ready for AGD start looking into libGDX
5) Build a SIMPLE game. Play some old atari 2600 games and try to replicate one.
6) Make that simple game fancier - add some modern touches like better graphics and sound, a high score list, achievements, power ups....
7) Let your dreams take over.
Click to expand...
Click to collapse
Thank you for all this info! I'll probably dive in the Kilobolt tutorials as soon as I have some free time, then I'll start thinking about which way to take later (I don't know whether all this is more frightening or exciting )
jhitesma that's a very informative and helpful post. Nice.

Categories

Resources