What are the differences between both and which one should i consider for the different kinds of java-based apps?
awt is the oldest, which means swing is the ... ta-daa :) youngest, most up to date and in certain parts improved compared to awt.
off course, you'll still use a number of awt functionalities, but if you intend to make GUI's in Java, I'd suggest picking up on Swing.
Well some of the conditions which could influence you use whether AWT or Swing are:-
can Swing run on web applets though?