Just published my first app! A comprehensive guide and my journey on how I got started in Android Development over the past two months.
My previous experience:
I am 19 and entering my second year in college. I had never programmed or knew anything about programming before freshman year of college. Through two intro comp sci classes in my freshman year, I was able to learn Java decently enough to get started on Android in mid-June. It is mid-August now and I have just published my first, full and complete app on the Play Store.
Prerequisites to learning Android:
-Must know a good amount of Java (classes, interfaces, the way objects interact, types of variables, etc.). Like I said I only have 1 college year of experience, which is only about 6 months of actual classes, and I only took one Java class each of my first two semesters. So even though 1 year's worth of experience may seem like a lot, it really isn't that much.
-Must have an android device with a USB cable to connect it to your computer (not exactly a must, but extremely recommended since the Android emulator is REALLY slow. I personally have a Nexus 5)
First steps:
The first thing I tell everyone to do is to go on the Android Developers website and complete the "Building Your First App" lesson. It walks you through how to set up the SDK and how to install the IDE (integrated development environment) Eclipse (which is what I used in the beginning). Speaking of IDEs...
Eclipse vs. Android Studio
I personally started off with Eclipse because it was what my university used to teach Java and I didn't want change. But once I setup Android Studio, I realized how much I loved it more than Eclipse, specifically with the auto correcting and the preview view next to an XML file. However, a lot of the tutorials online are based in Eclipse, so I recommend that for beginners, but I will say that you must try Android Studio at least once because it is truly the future of Android IDEs.
Okay so I built my first "Hello world!" app, now what?
After doing the beginning app on the developers website, I heard about this Coursera course from the University of Maryland on Reddit. I watched the videos (never did any of the practice examples and exercises) for about a week until I got extremely bored with it. The guy explains concepts pretty well, but I personally found him unexciting. Then I discovered this book about android, which many consider to be the best Android book available. Out of the couple hundred pages in this book, I spent the remainder of June and a good amount of July completing the apps that were in this book. This helped me learn things like fragments, intents, lists, dialogs, etc. This book is what helped me going into Android, and I believe that anyone who is even slightly interested in Android Development should pick up this book.
Now about 2-3 apps into the book, I started venturing into the world of app ideas. I picked a problem that I had with something in my life, and I started on the process of making an app for it. For me personally, I found that there was no GPA calculator that could store all my classes and allow me to make adjustments to grades/credits on the fly. Sure there were GPA calculator apps on the Play Store and web programs online, but a lot of them seemed to have a bunch of bugs and glitches, and none of them did exactly what I wanted.
Okay, you're probably sick of me talking about my app like I'm advertising it, but I'm just taking you through my thought process in this journey, and I'm sorry if it feels like I'm promoting it somehow (I'm trying not to). Basically the premise is after you get a good feel for what an Android app consists of (fragments, activities, etc.), you HAVE to start exploring the world on your own. Only by making your own app do you truly learn the things in Android Development that aren't taught in books.
Speaking of making your own app, you're going to struggle A LOT. I found this out the hard way. There were tons of times where I posted on /r/androiddev and stackoverflow because I was completely stuck on a problem. IT'S OKAY TO LOOK IT UP ON GOOGLE. This isn't a test in school. You are completely doing this on your own, and if you don't see a solution to a problem and you're stuck on it for a while, look it up on Google.
Still don't want to venture into your own world? Stuck on the basic concepts of Android?
Here are the top 5 resources that I used in my journey, not including the ones I had already mentioned:
For android:
-
http://www.amazon.com/Android-Programming-Pushing-Erik-Hellman/dp/1118717376/ref=sr_1_2?ie=UTF8&qid=1408144123&sr=8-2&keywords=android+books
-
http://cs76.tv/2012/spring/#about,lectures (MUST WATCH)
-
https://www.youtube.com/watch?v=Z149x12sXsw
-
http://www.vogella.com/tutorials/android.html (best android online tutorials imo)
-
google.com (seriously. if you're stuck on something Google it. You'll learn a lot more searching for an answer than sitting around doing nothing)
For Java:
-
http://code.tutsplus.com/tutorials/java-tutorial--mobile-2604
-
http://www.tutorialspoint.com/java/java_basic_syntax.htm
-
https://www.youtube.com/watch?v=TBWX97e1E9g
-
http://www.amazon.com/Head-First-Java-2nd-Edition/dp/0596009208/ref=sr_1_6?ie=UTF8&qid=1408144218&sr=8-6&keywords=java+books
-
http://www.amazon.com/Java-Beginners-Guide-Herbert-Schildt/dp/0071809252/ref=sr_1_1?ie=UTF8&qid=1408144218&sr=8-1&keywords=java+books
And that leads to today, where I officially published my first app. It took a long, hard-working two months out of my summer, but it was way more than worth it. For those who are curious, here is the play store link below.
I have no idea how to upload my project to github, so if someone wants to help me on that, I am more than happy to learn how to do so! I realize my style may be very poor on my code, but I am only still a beginner, and there is a ton more stuff that I will learn. If I missed anything in this post, or even if you have the slightest doubt or question you want answered by me, feel free to comment on this post or privately message me. I love answering people's questions and clearing up their doubts!
https://play.google.com/store/apps/details?id=com.praneeth.gpacalculator&hl=en
Happy learning! :)