Django documentation version 1.11 states:
Your apps can live anywhere on your Python path. In this tutorial, we’ll create our poll app right next to your
manage.pyfile so that it can be imported as its own top-level module, rather than a submodule of mysite.
Does this means that this is the recommended location for apps? Why is it that this is being recommended in the first place? What is the advantage of having the apps available to be imported as its own top-level module rather than a submodule of mysite?
There are basically two kind of apps: your own project-specific apps, and generic reusable ones. Examples of reusable apps are the Django contrib's "admin" and "auth" apps. But there are hundreds of third-part reusable apps on the net, ranging from a couple helper functions to full-blown CMS or e-shop solutions.
The project's root is of course the obvious place for your own project-specific apps. Third-parts are usually installed as python packages (Django apps are python packages) in your virtualenv.