With the growth of the urban population, the infrastructural problems and limited resources of thousands of cities around the world affect negatively the lives of billions of people. Making cities smarter can help improving city services and increasing the quality of life of their citizens. Information and communication technologies (ICT) are a fundamental means to move towards smarter city environments. Using a software platform on top of which Smart City applications can be deployed facilitates the development and integration of such applications. However, there are, currently, significant technological and scientific challenges that must be faced by the ICT community before these platforms can be widely used. This chapter presents the state-of-the-art and the state-of-the-practice in Smart Cities environments. We analyze eleven smart city platforms and eleven smart city initiatives with respect to the most used enabling technologies as well as functional and non-functional requirements. Finally, we enumerate open research challenges and comment on our vision for the area in the future.