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

05/18/2023
by   Kristiina Rahkema, et al.
0

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.

READ FULL TEXT
research
05/17/2023

Vulnerability Propagation in Package Managers Used in iOS Development

Although using third-party libraries is common practice when writing sof...
research
09/08/2023

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

A risk in adopting third-party dependencies into an application is their...
research
11/14/2019

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...
research
04/19/2022

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

There are plenty of excellent plotting libraries. Each excels at a diffe...
research
05/26/2022

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

Popular adoption of third-party libraries for contemporary software deve...
research
12/08/2020

Fine-Grained Network Analysis for Modern Software Ecosystems

Modern software development is increasingly dependent on components, lib...
research
08/13/2021

Contrasting Third-Party Package Management User Experience

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

Please sign up or login with your details

Forgot password? Click here to reset