What could go wrong?
Deciding on a project, investing your time and effort into it, and finding out a crucial feature you wanted to have is not possible is the disappointing. Nevertheless, it happens all the time. Teams lose their motivation, time, and resources: sometimes projects are abandoned. It is wise to invest 1/3 of your time into research and design process, since it is going to have the most effect on your application.
Check out the what could go wrong list before you start your brainstorming session.
List the features and APIs that you need before you start thinking about the details of your application.
For example, if you are planning to use both front facing and back facing camera of a mobile device, check the device developer documentation to see if it is possible. Having 2 cameras on a device does not mean you can have access to it at the same time as a developer.
Check out the SDK and API documentation for the functionality you need. A device might have a capability that you want to use, but sometimes the developer of the SDK or API makes a decision to not enable it for external use.
Another reason an API might not be available to you might be because the product team did not have a chance to make it available. If that is the case, you might be able to find the product road map. If the API or functionality will be available soon, you can sign up to be a beta user to get access to it earlier.
Warning: products that are not released yet, in the Alpha or Beta stages, will be unstable. You might run into issues where there aren't any online help or good documentation.