Hide Views with custom module
You need to implement two Views hooks: hook_views_api() and hook_views_plugins(). Have a look at views_views_plugins() in Views' /includes/plugins.inc file for an example implementation of the plugin hook; specifically, look at the plugins in the 'access' key.

Beyond that, look at the views_plugin_access* files in /plugins/ for examples of actual implementations.