If I could learn Android Development from scratch how would I re-do it?

  • Replies:1
  • OpenNot stickiedUnanswered
  • Forum posts: 23

Aug 10, 2016 4:24:12 PM via Website

If I could time travel and meet myself at the time when I was about to start learning android development, I would have suggested myself the following things:-
* Don’t be in despair, you are going to do okay. Although the amount of resources look huge you have to take one thing at a time and conquer it. You need not master all the things(As a matter of fact you can’t) and hence don’t panic.
* Don’t feel like you are the best programmer in the world just because you have coded an android application single-handedly whereas applications like facebook, instagram etc. are coded by teams. Most of the times your code is shit and just because it works doesn’t mean it would work for a million other people.
* Premature optimization is a sin. Don’t worry about writing the most optimal code at the first go. Get it working and re-factor as many times as possible.
* Don’t overthink
before developing anything(I even do this now). You are going to spend all your energy thinking and finally would give up overwhelmed.

  • You need not learn all the concepts of java before trying to develop an android application. To say the least one week should be more than enough to get basic code working and you will learn more as you go on with android development.
  • This advice is to myself two years back (applicable now as well). Don’t use Eclipse it’s going to die. Shift to android studio and make your life easier.
  • Buy a real android phone if possible. The android emulator is a hell and you would spend a lot of time waiting. Also somethings don’t work on an emulator. If at all emulator is your only option, go for bluestacks (I still use it).
  • Read a lot of code. Don’t always spend time on writing code, you are not going to get better after a level. Spend quality time on reading open source android apps code and you get to learn many things.

  • Working individually is not a heroic achievement. Work in teams and you get to learn a lot more. Writing code that is understandable to a different person is a greater achievement than developing code which only you can understand . And this is going to help you after taking a job , otherwise you will suffer.

  • Adding to 7th point you would get to know how to properly structure an android application by reading open source app’s code whose methods of development are already validated. If you don’t follow this your code base is going to be a mess and you would be spending all the time debugging it.
  • Document the app wherever possible. Not even you can understand what you have written if you approach it after 3 months. And it’s almost like working from scratch checking all cases what that part of code does.
  • Give priority to UI/UX. The user doesn’t care how many features the app has or how many hours you have worked to get the complex functionality working.

  • Less is more. More features is not going to bring you more users. Implement necessary features that work every-time than a bunch of fantasy feature which works once in a life-time.

  • Take utmost care that app doesn’t crash. Users hate apps crashing, they will uninstall it immediately. This should be a top priority.
  • Try to keep the app size as minimal as possible and remove all the unnecessary resources.
  • Don’t take all the permissions offered by the phone just for the sake of fun. Take only permissions which are required otherwise users get suspicious.
  • Don’t reinvent the wheel. The work you have been doing has already been done a million times and at a much better quality. Copy-paste the code whenever possible(In fact it is one of the best habits in android app development).

  • Use all prominent libraries. Don’t make HTTP requests using direct android code , you are going to die. Use Retrofit/Volley and save yourself. Use Picasso/Glide to load images. Don’t use facebook login official documentation, use simple-facebook library. Remove all the boilerplate code as much as possible.

  • You need not make the app available to android version 1. Just make sure the recent android versions are supported which would cover more than 90% of the devices. Don’t spend your valuable time on the remaining 10% old versions.
  • While using google you are going to get a lot of old results which are misleading. Use search tools to filter only the last year results. This is going to help you a lot.
  • Look at a lot of beautiful apps to get an idea about how things are being done in the world. You are going to learn by observing the patterns.
    Subscribe to Reddit to receive android developer news. It gets you updated with the latest developments and helps you getting inspired from other’s work as well.
    And finally ask a question like this on Quora/Reddit/Android forums like androidpit to get valuable suggestions before you start developing an android app ;).

— modified on Aug 10, 2016 4:25:06 PM