A prototype is something that represents a product or an idea. It can have elements of the final product and is something that people can interact with.
Prototypes can take multiple forms and be physical or digital, and can interact with any of the senses. There are many apps which produce high-fidelity computing prototypes, but it also be done using programs like
keynote or powerpoint. A great example of keynote prototyping is this example of
Material Design transitions (including download).
Keynote does Material Design (Complete) from
Andrew Haskin on
Vimeo.
Prototyping doesn't have to be digital and can include things like paper, clay, or props.
How you make a prototype depends on what form it takes.
Prototypes are used to represent solutions, or part solutions, to specific design problems. They show how a user would interact with a particular element of a design.
The purpose of prototyping is to collect data on your product through testing, on the user's experience and provide feedback as part of
design thinking iteration.
It is best to prototype as early as possible, well before implementation, to allow time to go back and apply the things you learned from prototyping. Prototyping should happen as many times as possible.