No, it is not always a good idea.
This is a topic that has been discussed multiple times previously.
For starters, see:
- Why do we need apps?
- Project organization- when is something a separate app?
- I need help with what should be an app and what shouldn't
- Structuring external service integrations in Django
(There are others, but most threads end up at some point referencing one of these.)
My opinion on this is at: Structuring external service integrations in Django - #2 by KenWhitesell