Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3613372.3613381acmotherconferencesArticle/Chapter ViewAbstractPublication PagessbesConference Proceedingsconference-collections
research-article

Reactive Programming with Swift Combine: An Analysis of Problems Faced by Developers on Stack Overflow

Published: 25 September 2023 Publication History
  • Get Citation Alerts
  • Abstract

    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.

    References

    [1]
    Amritanshu Agrawal, Wei Fu, and Tim Menzies. 2018. What is wrong with topic modeling? And how to fix it using search-based software engineering. Information and Software Technology 98 (2018), 74–88.
    [2]
    S Ahmed and M Bagherzadeh. 2018. What do concurrency developers ask about. In Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ACM.
    [3]
    Engineer Bainomugisha, Andoni Lombide Carreton, Tom van Cutsem, Stijn Mostinckx, and Wolfgang de Meuter. 2013. A survey on reactive programming. ACM Computing Surveys (CSUR) 45, 4 (2013), 1–34.
    [4]
    Anton Barua, Stephen W Thomas, and Ahmed E Hassan. 2014. What are developers talking about? an analysis of topics and trends in stack overflow. Empirical Software Engineering 19 (2014), 619–654.
    [5]
    Jonathan Chang, Sean Gerrish, Chong Wang, Jordan Boyd-Graber, and David Blei. 2009. Reading tea leaves: How humans interpret topic models. Advances in neural information processing systems 22 (2009).
    [6]
    Apple Inc.2023. App Store. Retrieved 2023-05-16 from https://www.apple.com/app-store
    [7]
    Apple Inc.2023. Combine: Customize handling of asynchronous events by combining event-processing operators.Retrieved 2023-05-16 from https://developer.apple.com/documentation/combine
    [8]
    Apple Inc.2023. Using Combine for Your App’s Asynchronous Code.Retrieved 2023-05-16 from https://developer.apple.com/documentation/combine/using-combine-for-your-app-s-asynchronous-code
    [9]
    Gustavo Pinto, Fernando Castor, and Yu David Liu. 2014. Mining questions about software energy consumption. In Proceedings of the 11th Working Conference on Mining Software Repositories. ACM, 22–31.
    [10]
    ReactiveX. 2023. RxSwift. Retrieved 2023-05-15 from https://github.com/ReactiveX/RxSwift
    [11]
    Marcel Rebouças, Gustavo Pinto, Felipe Ebert, Weslley Torres, Alexander Serebrenik, and Fernando Castor. 2016. An empirical study on the usage of the swift programming language. In 2016 IEEE 23rd international conference on software analysis, evolution, and reengineering (SANER), Vol. 1. IEEE, 634–638.
    [12]
    Guido Salvaneschi. 2016. What do we really know about data flow languages?. In Proceedings of the 7th International Workshop on Evaluation and Usability of Programming Languages and Tools. 30–31.
    [13]
    Guido Salvaneschi, Alessandro Margara, and Giordano Tamburrelli. 2015. Reactive programming: A walkthrough. In 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, Vol. 2. IEEE, 953–954.
    [14]
    Guido Salvaneschi, Sebastian Proksch, Sven Amann, Sarah Nadi, and Mira Mezini. 2017. On the positive effect of reactive programming on software comprehension: An empirical study. IEEE Transactions on Software Engineering 43, 12 (2017), 1125–1143.
    [15]
    Ilia S Stukalov, Natalia A Mamedova, Olga V Staroverova, and Ekaterina V Makarenkova. 2021. Method for Organizing Network Requests in iOS Applications. In 2021 International Siberian Conference on Control and Communications (SIBCON). IEEE, 1–9.
    [16]
    Carlos Zimmerle, Kiev Gama, Fernando Castor, and José Murilo Mota Filho. 2022. Mining the usage of reactive programming APIs: a study on GitHub and stack overflow. In Proceedings of the 19th International Conference on Mining Software Repositories. 203–214.

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    SBES '23: Proceedings of the XXXVII Brazilian Symposium on Software Engineering
    September 2023
    570 pages
    ISBN:9798400707872
    DOI:10.1145/3613372
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 25 September 2023

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Reactive programming
    2. Stack Overflow Mining
    3. Swift Combine

    Qualifiers

    • Research-article
    • Research
    • Refereed limited

    Funding Sources

    • CNPq

    Conference

    SBES 2023
    SBES 2023: XXXVII Brazilian Symposium on Software Engineering
    September 25 - 29, 2023
    Campo Grande, Brazil

    Acceptance Rates

    Overall Acceptance Rate 147 of 427 submissions, 34%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 34
      Total Downloads
    • Downloads (Last 12 months)34
    • Downloads (Last 6 weeks)1

    Other Metrics

    Citations

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format.

    HTML Format

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media