Here is a good sample project that explains how to use APPS to provision custom components on sites in SharePoint online with custom fields, content types etc. In brief, the app explained in the video has a Page with a couple of Buttons on it. On click of these buttons, components like Content type or Site columns or any other custom component like master page/page layout can be provisioned on the HOST web using client object model.
Ideally this provisioning is done only once when a site is created or custom components are modified and this APP should be primarily used by the site collection administrator.
In the "Site Contents", the APP will be shown to all the users. Even if the user might not have appropriate permission to provision these components, any user might be still able to go into the app and see what's in there..if i am not wrong. !! So my question is, is there any way to control who can SEE the app in the site ?
Off course we can hide it through jquery..but is there any better way to control this ? Any thoughts.