[SalesForce] Difference between the controller and helper in Lightning App and Lightning Component

I used to work in lightning using developer console. But when I tried to create a Lightning Bundle in Force.com IDE in eclipse, and it displays several options such as Lightning Component, Lightning App, etc.

I have created a Lightning Component and a Lightning App separately. It looks like the screenshot below. My questions are,

enter image description here

  1. why it has the separate controller and helper for app and component respectively?

  2. How the controller and helper would help an app? Because I think controller and helper are more meaningful in a component. Please
    clarify.

  3. Would there be more than one controller and helper in a Lightning component bundle? Please clarify.

Thanks

Best Answer

An App is essentially a specialized top-level component. It comes with the same code structure that a component does, including both a helper and a controller.

These entities can of course be empty if they're not required. However, the app often plays a "coordinating" role amongst its child components, and it may (for example) handle application events. These needs would be supported by the application's controller and helper, which might fire other events, call methods on the public API of its child components, set attribute values, and so forth.

A single Lightning component bundle would include only one helper and one controler.