Elixir inherits a lot of concepts from Erlang/OTP, and the application's behaviour is one of those concepts. For the Erlang VM, an application is a component that can be started and stopped as a single unit, and is described by an .app
file (for example, hello_world.app
) that defines, among other things, the Application Module Callback. This is a module that needs to implement a start/2
function that's responsible for kickstarting the application, usually by spawning its top-level supervisor (in the next chapter, you'll learn all about supervisors). In a way, you can think about the start/2
function as the common main
entry point on applications developed with other programming languages.
Because we're using Elixir, we don't need to explicitly specify the .app
file. The Elixir compiler will find the correct application module callback by looking for a module using the Application
behaviour and will then generate the .app
file for us.
Let's use mix
to generate a sample...