Best way to learn Android App development in 30 days?

What is the best way to learn Android App development in 30 days?




Practically, you can’t. Theoretically, possible.
Becoming expert takes time, getting job done takes smartness and shortcuts. What you are asking is a smart trade-off so you can row in two boats at same time. If difficult. However, I will try to get as much things done.
You just can’t eat the combined meal of 8 days in a single day.
In first few paragraphs, I will be writing some craps just for sake of my insanity and then I will answer the actual question.
First. lets focus on what the definition of expert app developer is? What level do you consider expert? People now a days can code an app and release on google play (even if all it shows a screen with “Hello world”) and call themselves a cool android developer. Then there are some cool apps which does more than what you can expect. Then comes more in-depth apps which utilize system level api (using root permissions) and gets the job done. Then there are hardcore developers who modifies android kernel to suit their needs. Then there are guys like Linus Torvalus who made these kernel.
Basically there is no limit on becoming an expert. Theoretically, you can become like the said developer in matter of days, depending how fast you grab concepts. Theoretically, a monkey can also write Macbeth if enough iterations are allowed. Although it takes a human 10,000 hours to become an expert in something, I don’t think you are after such theories. You just want enough knowledge to get your job done. Here is what you can do within a month.
Since you mentioned yourself a “non programmer”, here is my approach:
Week 1
  1. your first approach should be to start with programming basics, such as variables, loops, conditional logic and methods. Start with JAVA since android uses JAVA to compile and run apps.
  2. Once you are able to code programs based on conditions, make your code user interactive, so that user can expect the output based on whatever the input is. In week 1, you should be able to take user inputs and output based on those.
Week 2
  1. (3–4 days): Start with Object Oriented Programming in JAVA. Start with basic examples of how to make classes and call data and methods within, to other parts of your code. Since you are understanding fundamentals, don’t rush. Since android is all about making classes and calling them, you should be comfortable enough with this portion.
  2. (2 days) Open Android Developer page and start reading documentation while you are eating, drinking, or even canoodling. Your focus should be on how android works. Don’t freak out if its too difficult to grasp. Just get familiar with how android works and how apps have lifecycles. Focus on how layouts are defined in XML files and code uses them in JAVA (just basics).
  3. (1–2 days) If you do have a day or two left, open up android studio and create a project. It will automatically create the source code for you. Since you have just got familiar with OOPs, you can understand the class structure. However, you may see many things you haven’t seen in JAVA. There will be lot of XML, where the screen layouts, menu, strings will be defined and there will be JAVA code which calls them and present to users. Just try figuring out how this works, by changing few texts and code.
Week 3
  1. (3–4 days) Now is good time to get started with android. Start by making 2–3 screen with some simple texts on it. After this, try making app more interactive by adding some inputs to it. These 3–4 days are for you to try out most of elements you see in layout editor and how to utilize them. Some of them would be complicated enough to be done at this point of time. Ignore them (but do try to read android resources about what they are and what do they do).
  2. (2-3 days) Now that you are comfortable getting user inputs, figure out how to save them. On files, in shared preferences and in database. Read how to add tabs, side menus, toolbars.
Week 4
  1. (3–4 days) The most important thing almost every app does now a days is to communicate with server, which acts as central database and helps keep app data sync. Read how to communicate with HTTP services. Don’t waste time reading core parts of HTTP fundamentals. Just read how to use volley and other libraries which already does this job. Learn how to use asynctask and singletons. POJOs are quite useful in making listviews etc. so pay attention to these. If you paid enough attention to your OOPs fundamentals, it would be most beneficial here.
  2. (if any time remaining) Try learning services, broadcast receivers and how to implement them, how to receive notifications from GCM services (optional).
This will give you a head-start, if not make you an expert. You can call yourself an android developer and start showing off some apps as well. I am attaching some links below which will help you not waste time googling and give you a good grasp on things you are going to need. Hope it helps someone.
Links:
Basics:
  1. Programming 101 - 5 Basic Concepts of Programming
OOPS:
  1. REALLY GOOD java learning resource for beginners. • /r/learnprogramming
  2. Object-Oriented Programming
  3. Object Oriented Programming in Java - University of California, San Diego | Coursera
  4. Lesson: Object-Oriented Programming Concepts
Android:
  1. Getting Started | Android Developers
  2. Android App Development for Beginners Playlist
  3. Learn about android programming • /r/learnandroid
  4. The new step by step guide detailing how to get started developing Android apps, with no prior experience necessary. Includes every resource I used, simple explanations and an interesting first app tutorial. Everything you need to get started in Android Development is here. • /r/Android
Some tips here: Try to watch as many videos as you can find, instead of reading long documented pages since we are under time constraint. I myself oppose this ideology. Try to code as much as you can, simultaneously reading the things. Try to find as much libraries as you can. That would save you time figuring out simple things.

answered by Ashutosh Chaudhary on Quora.com

Comments

Popular Posts