Reactive Programming with Swift Combine: An Analysis of Problems Faced by Developers on Stack Overflow - Pereira, Alessandra; Gama, Kiev; Zimmerle, Carlos; Castor, Fernando (Anais do Simpósio Brasileiro de Engenharia de Software (SBES); 2023: Anais do XXXVII Simpósio Brasileiro de Engenharia de Software, 2023)
Reactive programming is a programming paradigm that enables systems to automatically react to changes in data or events in a responsive and asynchronous manner, leveraging the concept of streams. The adoption of reactive programming techniques has grown significantly, particularly in developing mobile applications that demand efficient frameworks for creating adaptable and scalable systems. An example of such a framework is Combine, introduced by Apple in 2019 for Swift application development on the iOS platform. A framework that is worth mentioning is Combine, which was introduced by Apple in 2019 for Swift application development on the iOS platform. However, transitioning from imperative to reactive paradigms presents complex challenges for developers. This study aims to address the research gap that exists in Swift Combine by identifying and understanding the key challenges faced by developers when adopting and using that framework. Using a data mining approach, we analyzed questions and accepted answers from Stack Overflow related to Combine usage. Employing topic modeling with Latent Dirichlet Allocation, our analysis revealed 14 topics related to Combine usage, highlighting the most relevant and challenging aspects. These findings provide valuable insights for developers learning or incorporating Combine into their applications and serve as a reference for future studies in the field.