Smart handheld devices such as smartphones are capable of sensing and interacting with surrounding environments. This emerging capability of smartphones has resulted in the utilization of it as input devices and led it to be used as the default physical interface in applications of ubiquitous computing. Mobile crowdsensing is a new paradigm, which utilizes the different sensors in the smart devices to sense data from the surroundings and then transmit large amount of data to the cloud to be analyzed, managed, and stored. Crowdsourcing, on the other hand, can be defined as a model to solve a complex problem that is distributed in nature, where a crowd of unspecific size is utilized through an open call. The usage of smart devices with unique multi-sensing proficiency and context-aware capability will be able to utilize the full potential of crowdsourcing. Hence, the smart devices with the capability of sensing the environment and utilization of the wisdom of the crowd can be utilized for various benefits of the society for a better standard of living. In this survey, we present a comprehensive understanding of mobile crowdsensing and mobile crowdsourcing and how it has helped in improving the standard of living of people, specifically in the context of smart cities. Pertaining challenges have been highlighted which were creating hindrances in smooth implementation of these techniques and a few of the solutions have been discussed.