I have 16GB SD card but I still get the message insufficient memory when I want to download any app.
The issue is that apps aren't by default stored on the SD card. The SD card is for extra data like music/videos/downloads etc.
You can however move existing apps to the SD card most of the time (some apps don't allow that). You go to Settings > Apps and pick from as many apps that are large (the list should have a filter for this). After selecting an app you can often click "Move to SD" or something similar.
Consider setting your camera to save new photos to the SDCard
Most camera applications are all created by the hardware vendor of the phone, but they almost always allow an option for storing new photos on the SD card. There isn't a universal way for us to tell you how to find that setting, since every camera application is a little different.
Pay special attention to the fact I said NEW photos. The camera applications normally don't move your images for you to the SDCard. For that, I'd recommend moving the files yourself, or simply backing them up onto some cloud service like DropBox or GoogleDrive, and then deleting the ones on your phone.
Consider an application to help you visualize what is taking up the space on your phone.
Android Settings > Storage will give you some clues.
I like ESFile Explorer. It's the application I use to help people find and clean-up files. This part is all opinion, and you'll find other people give you great advice on their clean-up application of their preference. Here's the play store linke to ESFile Explorer: