If the application is already installed on device user should have an option to uninstall that app,also the user should be able to install apps not present in device from the list.
You can do it with URL register scheme.
But you won't be able to get the list of all installed applications (if app has shared URL mechanism you can check if its installed or not - find it here
smile , there is one more open source library which will give you installed apps on the device
Here is the link - http://amitay.us