Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dependency Management in iOS Development: A Developer Survey Perspective

Dependency Management in iOS Development: A Developer Survey Perspective

https://doi.org/10.1145/3647632.3647992

Rising complexity in iOS development necessitates robust dependency management tools, facilitating efficient integration of third- party and open-source libraries. This study explores current trends amongst iOS developers, focusing on their preferred tools, challenges encountered, and potential shifts in tool usage. A survey revealed Swift Package Manager (SPM) as the dominant choice (70.5%), valued for its user-friendliness and official support. However, performance concerns persist. CocoaPods usage declines (26.8%), prompting further investigation. Notably, 20.54% of developers have switched tools, highlighting potential dissatisfaction and a search for improved solutions. This study underscores the need for deeper analysis of developer preferences, tool-specific challenges, and the evolving dependency management landscape, paving the way for future tool development and best practices tailored to developer needs.

Ezequiel Santos

April 15, 2024
Tweet

More Decks by Ezequiel Santos

Other Decks in Research

Transcript

  1. Ezequiel França dos Santos Mobile SDK Enginner @ Miniclip Portugal

    Phd Student in Digital Games Development @ IADE-U Lisbon Dependency Management in iOS Development: A Developer Survey Perspective
  2. Research Questions • Prevalence and In fl uencing Factors •

    What are the most commonly used dependency management tools among iOS developers, and what factors in fl uence their choice? • Challenges Faced • What challenges do iOS developers face with current dependency management tools? • Impact of Experience and Project Size • How do the preferences and challenges related to dependency management tools vary among developers with di ff erent levels of experience and project sizes? • Desired Improvements • What improvements or features do iOS developers desire in future iterations of dependency management tools? • Trends in Tool Switching • Is there a signi fi cant trend of switching dependency management tools among iOS developers, and what factors contribute to such changes? Dependency Management in iOS Development: A Developer Survey Perspective | Ezequiel Santos
  3. Methodology • Survey Design • A comprehensive survey was designed

    with both multiple-choice and open-ended questions to explore iOS developers' tool preferences, the challenges they face, and their opinions on potential tool switches. • Participant Selection • Participants were recruited from a diverse range of iOS developer communities globally, including: • Swift Leeds Community (UK) • Cocoaheads Brasil (Brazil) • iOS Developers SF Slack (USA) • iOS Developers LinkedIn Group (Worldwide) • Data Collection Process • The survey was conducted online using Google Forms. Data collection took place from November 2nd to November 14th, 2023. • Response Rate and Demographics • The survey received responses from 112 participants, covering a wide spectrum of experience levels from novices to seasoned developers. • Data Analysis Techniques • Quantitative data from multiple-choice questions were analyzed using descriptive statistical methods to identify patterns and trends. • Qualitative responses were analyzed through thematic analysis to extract deeper insights. • Ethical Considerations • Participants were informed about the study’s purpose and their rights, and assured of the con fi dentiality of their responses. All data are open on github after the data collection days. Dependency Management in iOS Development: A Developer Survey Perspective | Ezequiel Santos
  4. Apple ecosystem dependency managers • Swift Package Manager
 As the

    o ffi cial package manager introduced by Apple in December 2017, Swift PM is integrated into Xcode and supports a decentralized model. This integration streamlines the development work fl ow for iOS and macOS applications. The evolution of these package managers re fl ects the dynamic nature of software development, adapting to meet the challenges of modern iOS application development and indicating future trends in the fi eld. • Cocoapods
 Introduced in September 2011, CocoaPods has been a cornerstone in Swift development, o ff ering a centralized repository with a vast array of libraries. It automates integrating third-party libraries into projects, generating an Xcode Workspace that includes all dependencies. • Carthage
 Emerging in November 2014 as a decentralized alter- native to CocoaPods [6], Carthage o ff ers a streamlined approach, allowing developers to manually integrate libraries speci fi ed in a Cart fi le. This approach provides more control over project con- fi gurations. Dependency Management in iOS Development: A Developer Survey Perspective | Ezequiel Santos
  5. Literature Review Impact of dependencies managers • Vulnerability and Security

    Risks • Rahkema and Pfahl (2023) examined vulnerability detection with SwiftDependencyChecker, underscoring the importance of managing security risks in third-party libraries and the necessity for vigilant tool selection. • Quality Analysis • Rahkema and Pfahl (2023) analyzed code smells and security in iOS applications, o ff ering insights into maintainability and the distribution of vulnerabilities in the iOS library dependency network. • Programming Language Trends • Domínguez-Alvarez et al. (2022) studied the shift toward Swift and the ongoing use of Objective-C within the iOS ecosystem, highlighting the complex landscape of programming languages in iOS development. • Evolution of Library Dependency Networks • Rahkema, Pfahl, and Ramler (2023) assessed the evolution of library dependency networks, noting a shift towards Swift Package Manager and a comparative decrease in the use of CocoaPods and Carthage. • Tool Evolution and Preference • Rahkema and Pfahl (2023) explored the changing dynamics of iOS dependency management tools, revealing increasing complexities and preferences among CocoaPods, Carthage, and Swift Package Manager. • Impact on Code Quality and Maintainability • Bavota et al. (2022) conducted a study on the in fl uence of dependency management practices on code quality and sustainability in iOS applications, emphasizing the critical impact of tool selection on application maintainability. Dependency Management in iOS Development: A Developer Survey Perspective | Ezequiel Santos
  6. Initial Results Dependency Management in iOS Development: A Developer Survey

    Perspective | Ezequiel Santos Developers demonstrated a pronounced preference for Swift Package Manager (SPM), highlighting its ease of use and seamless integration with Xcode as decisive factors. Despite this preference, the survey uncovered signi fi cant challenges, notably in library compatibility and integration with existing tools, underscoring a need for more adaptable solutions. Interestingly, most respondents expressed readi- ness to switch from CocoaPods, citing performance improvements and better integration features as their primary motivators. •
  7. Potential Bias • Some Apple Technologies are Swift/SwiftUI only (ex:,

    Apple Vision Pro) • This survey was addressed to Native iOS Developers (not considering Flutter, React Native, Unity, and any others Hybrid/Cross plata ff orm ecosystem) • The survey did not considered git submodule as a dependency manager. Dependency Management in iOS Development: A Developer Survey Perspective | Ezequiel Santos