Based on your specific goals and needs, the final solution will have certain features and look/work in a certain way. There are, however, a number of standard elements that make up any IoT application.
There are 5 layers in an IoT development stack and one cross-layer in order to create a complete IoT solution: Device & Software, Communication, Cloud Services, Applications, and Security.