DeepAI AI Chat
Log In Sign Up

Analysis of Library Dependency Networks of Package Managers Used in iOS Development

by   Kristiina Rahkema, et al.
Software Competence Center Hagenberg
University of Tartu

Reusing existing solutions in the form of third-party libraries is common practice when writing software. Package managers are used to manage dependencies to third-party libraries by automating the process of installing and updating the libraries. Library dependencies themselves can have dependencies to other libraries creating a dependency network with several levels of indirections. The library dependency network in the Swift ecosystem encompasses libraries from CocoaPods, Carthage and Swift Package Manager (PM). These package managers are used when developing, for example, iOS or Mac OS applications in Swift and Objective-C. We provide the first analysis of the library dependency network evolution in the Swift ecosystem. Although CocoaPods is the package manager with the biggest set of libraries, the difference to other package managers is not as big as expected. The youngest package manager and official package manager for Swift, Swift PM, is becoming more and more popular, resulting in a gradual slow-down of the growth of the other two package managers. When analyzing direct and transitive dependencies, we found that the mean total number of dependencies is lower in the Swift ecosystem compared to many other ecosystems. Still, the total number of dependencies shows a clear growing trend over the last five years.


Vulnerability Propagation in Package Managers Used in iOS Development

Although using third-party libraries is common practice when writing sof...

Lessons from the Long Tail: Analysing Unsafe Dependency Updates across Software Ecosystems

A risk in adopting third-party dependencies into an application is their...

Thirteen Simple Steps for Creating An R Package with an External C++ Library

We desribe how we extend R with an external C++ code library by using th...

Plots.jl – a user extendable plotting API for the julia programming language

There are plenty of excellent plotting libraries. Each excels at a diffe...

Giving Back: Contributions Congruent to Library Dependency Changes in a Software Ecosystem

Popular adoption of third-party libraries for contemporary software deve...

Fine-Grained Network Analysis for Modern Software Ecosystems

Modern software development is increasingly dependent on components, lib...

Contrasting Third-Party Package Management User Experience

The management of third-party package dependencies is crucial to most te...