Camera code is really hard. Don't let anyone tell you otherwise. Writing camera code that is technically correct is easy. Writing camera code that feels right is really hard. You will spend the entire duration of your project tweaking your camera code to make it feel right. You will never be happy with it.