SlideShare a Scribd company logo
ICPC 2018
International Conference on
Program Comprehension
UNIVERSITÀ
DEGLI STUDI
DI SALERNO
Do Developers Update Third-Party Libraries in Mobile Apps? May 28th, 2018
Do Developers Update

Third-Party Libraries in Mobile Apps?
Pasquale Salza1, Fabio Palomba2, Dario Di Nucci3, Cosmo D’Uva4, Andrea De Lucia4, Filomena Ferrucci4
1USI Università della Svizzera italiana, 2University of Zurich,
3Vrije Universiteit Brussel, 4University of Salerno
1
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Third-party libraries
Crucial for the development
of software
Save the effort related to
the implementation of
complex functions
Very popular for mobile
apps
2
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Libraries are software as well
Need to evolve
The updates aim at
making them more
stable and reliable
3
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Why is updating important?
Apps have an intense and
continuous release cycle
The user experience is
fundamental
Users are the very testers
and decide the success of
an app
4
Bavota et al., The impact of API Change- and Fault-Proness on the User Rating of Android Apps. IEEE
Transactions on Software Engineering, 2015
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Is it always worth updating?
The public API may
change and require
development effort before
being updated
Stability and reliability are
not truly guaranteed
5
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Goals
How much is common to update a
library?
Which category of libraries are
updated the most?
Is there any common behaviour
that developers have in updating
libraries?
Can a library update be related to
the success of an app?
6
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Large Empirical Study
291 Android open source apps
40,000 reviews
300,000 commits
275 unique libraries
7
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Mining Process
F-Droid
Git Cloner
Release Miner
Gradle Parser
Local
Git Repository
commit 1
commit n
commit 2
build.gradle
build.gradle
build.gradle
Remote
Git Repository
Remote
Dependencies
Repositories
Use
Dependencies
Release
Dependencies
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
8
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
F-Droid
Git Cloner
Releas
G
Remote
Git Repository
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
F-Droid parsing
9
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Git Cloner
Local
Git Repository
commit 1
commit n
commit 2
build.gradl
build.gradl
build.gradl
Remote
Git Repository
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Source code repository cloning
10
2014-12-01
2015-01-01
2015-02-01
2015-03-01
2015-04-01
2015-05-01
2015-06-01
2015-07-01
2015-08-01
2015-09-01
Date
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Gradle Parser
ry
commit 1
commit n
commit 2
build.gradle
build.gradle
build.gradle
Use
Dependencies
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Gradle libraries parsing
2014-12-01
2015-01-01
2015-02-01
2015-03-01
2015-04-01
2015-05-01
2015-06-01
2015-07-01
2015-08-01
2015-09-01
Date
21.0.3
22.0.0
22.1.0
22.1.1
22.2.0
22.2.1
23.0.0
23.0.1
2014-12-01
2015-01-01
2015-02-01
2015-03-01
2015-04-01
2015-05-01
2015-06-01
2015-07-01
2015-08-01
2015-09-01
Date
Version
Type Use
11
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Git Cloner
Release Miner
Local
Git Repository
commit 1
commit n
commit 2
build.gradle
build.gradle
build.gradle
Remote
Dependencies
Repositories
Use
Dependencies
Release
Dependencies
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Dependencies mining
21.0.3
22.0.0
22.1.0
22.1.1
22.2.0
22.2.1
23.0.0
23.0.1
2014-12-01
2015-01-01
2015-02-01
2015-03-01
2015-04-01
2015-05-01
2015-06-01
2015-07-01
2015-08-01
2015-09-01
Date
Version
Type Use
21.0.3
22.0.0
22.1.0
22.1.1
22.2.0
22.2.1
23.0.0
23.0.1
2014-12-01
2015-01-01
2015-02-01
2015-03-01
2015-04-01
2015-05-01
2015-06-01
2015-07-01
2015-08-01
2015-09-01
Date
Version
Type Release Use
12
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
21.0.3
22.0.0
22.1.0
22.1.1
22.2.0
22.2.1
23.0.0
23.0.1
2014-12-01
2015-01-01
2015-02-01
2015-03-01
2015-04-01
2015-05-01
2015-06-01
2015-07-01
2015-08-01
2015-09-01
Date
Version
Type Release Use
13
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Libraries popularity
The apps relies from 1 use
of third-party library to a
maximum of 35
The mean is about 4
libraries per app
14
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
RQ1
To what extent mobile
developers update the
version of the used third-
party libraries?
15
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
To update, or not to update
67% of libraries were used
but never updated during
the app development life
Only 2% of commits refers
to a version change
16
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Upgrade vs downgrade
Downgrades
25.95%
Upgrades
74.05%
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
17
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Upgrade vs downgrade
Downgrades
25.95%
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Anyone, any idea why the build
fails […] does maven need to be
updated too?!
18
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
RQ2
Which types of third-party
libraries are more and less
prone to be updated in
apps?
19
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Changed categories
Category Changes Upgrades Downgrades
Graphical User Interface 52.67% 75.12% 24.88%
Utilities 31.16% 73.43% 26.57%
HTTP 3.91% 63.33% 36.67%
Page Navigation 2.74% 57.14% 42.86%
JSON 1.96% 60.00% 40.00%
. . . . . . . . . . . .
Protocol Buffers 0.07% 100.00% 0.00%
Network 0.07% 100.00% 0.00%
Bug Fix 0.07% 100.00% 0.00%
Defect Detection 0.07% 100.00% 0.00%
Update com.android.recyclerview−v7
to get new fancy icons.
Update android.support to
have an environment
equivalent to the android
platform.
20
My 2 cents. This is an extreme
case, and it doesn't justify the
upgrade of the library.
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
RQ3
What types of update
patterns developers follow
when updating third-party
libraries?
21
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Open coding process
We distributed a total of 1126
library histories to 4 of the
authors (282 each)
22
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
5.0.1
5.1.0
5.1.1
5.1.2
6.0.0
6.1.0
7.0.0
7.0.1
8.0.0
2014-04-01
2014-05-01
2014-06-01
2014-07-01
2014-08-01
2014-09-01
2014-10-01
2014-11-01
2014-12-01
2015-01-01
2015-02-01
2015-03-01
2015-04-01
2015-05-01
2015-06-01
2015-07-01
2015-08-01
2015-09-01
2015-10-01
2015-11-01
2015-12-01
2016-01-01
2016-02-01
2016-03-01
2016-04-01
2016-05-01
Date
Version
Type Release UseDiligent
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
13%
23
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Diligent
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
!
!
!
13%
24
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
4.48
5.0
2013-11-01
2013-12-01
2014-01-01
2014-02-01
2014-03-01
2014-04-01
2014-05-01
2014-06-01
2014-07-01
2014-08-01
2014-09-01
2014-10-01
2014-11-01
2014-12-01
2015-01-01
2015-02-01
2015-03-01
2015-04-01
2015-05-01
2015-06-01
2015-07-01
2015-08-01
2015-09-01
2015-10-01
2015-11-01
2015-12-01
2016-01-01
2016-02-01
2016-03-01
2016-04-01
2016-05-01
2016-06-01
2016-07-01
2016-08-01
2016-09-01
Date
Version
Type Release UseIntroduced Once
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
9%
25
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Introduced Once
☠
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
9%
26
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
2.7.1
2.7.2
2.7.3
2.7.4
2.7.5
2.8.0
2.9.0
2.9.1
2.10.0
2.10.1
2.10.2
2.10.3
2.10.4
2.10.5
2.10.6
2.10.7
2.10.8
2.10.9
2.10.10
2.11.0
2015-01-01
2015-02-01
2015-03-01
2015-04-01
2015-05-01
2015-06-01
2015-07-01
2015-08-01
2015-09-01
Date
Version
Type Release UseJump Up
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
13%
27
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Jump Up
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
🕴
13%
28
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
19.0.0
19.0.1
19.1.0
20.0.0
21.0.0-rc1
21.0.0
21.0.2
21.0.3
22.0.0
22.1.0
22.1.1
22.2.0
22.2.1
23.0.0
2013-10-01
2013-11-01
2013-12-01
2014-01-01
2014-02-01
2014-03-01
2014-04-01
2014-05-01
2014-06-01
2014-07-01
2014-08-01
2014-09-01
2014-10-01
2014-11-01
2014-12-01
2015-01-01
2015-02-01
2015-03-01
2015-04-01
2015-05-01
2015-06-01
2015-07-01
2015-08-01
2015-09-01
Date
Version
Type Release UseJump Down
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
<1%
29
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Jump Down
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
🕺
☂
<1%
30
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
21.0.3
22.0.0
22.1.0
22.1.1
22.2.0
22.2.1
23.0.0
23.0.1
2014-12-01
2015-01-01
2015-02-01
2015-03-01
2015-04-01
2015-05-01
2015-06-01
2015-07-01
2015-08-01
2015-09-01
Date
Version
Type Release UseBack and Forth
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
2%
31
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Back and Forth
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
🏃
🏃
🏃
🏃
2%
32
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
RQ4
Are the update patterns
of high-rated and low-
rated apps different?
33
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
High and low rated apps
We classified the apps in two groups based on ratings
High rated: ≥ 3.5 ⭐
Low rated: < 3.5 ⭐
34
Khalid et al., What Do Mobile App Users Complain About? IEEE Software, 2015
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
High and low rated apps
Introduced Once
Diligent
Jump Up
Jump Down
Back and Forth
0% 25% 50% 75% 100%
21%
34%
78%
89%
30%
79%
66%
22%
11%
70%
Low High
35
May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps?
ICPC 2018
Future directions
Extend the study to closed
source apps
Automatic upgrade suggestions
to avoid useless changes
Effort estimation in updating
libraries
36

More Related Content

PDF
Developing Effective Software Productively
PDF
Transform the internal it landscape with APIs
DOCX
Emerging Trends in Cross-Platform Development_ Insights on React Native and F...
PDF
Rapid Prototyping: Developing GUI Applications with Python and Tkinter
PDF
Primers or Reminders? The Effects of Existing Review Comments on Code Review
PDF
OSS Projects Knowledge Mining with CROSSMINER, OW2con'18, June 7-8, 2018
 
PDF
Let's Make Pentesting Fun Again! Report writing in 5 minutes.
PDF
IoT Developer Survey 2016
Developing Effective Software Productively
Transform the internal it landscape with APIs
Emerging Trends in Cross-Platform Development_ Insights on React Native and F...
Rapid Prototyping: Developing GUI Applications with Python and Tkinter
Primers or Reminders? The Effects of Existing Review Comments on Code Review
OSS Projects Knowledge Mining with CROSSMINER, OW2con'18, June 7-8, 2018
 
Let's Make Pentesting Fun Again! Report writing in 5 minutes.
IoT Developer Survey 2016

Similar to Do Developers Update
 Third-Party Libraries in Mobile Apps? (20)

PDF
FIWARE Global Summit - Welcome & Opening Remarks
PDF
Find Out What's New With WhiteSource September 2018- A WhiteSource Webinar
PDF
IoT Developer Survey 2016
PDF
GSOC 2016 mifos
PPTX
8 Python Tools That Empower Android App Development.pptx
PDF
D2.2 Workflow Guidelines
PDF
Eclipse MicroProfile: Accelerating Cloud-Native Application Development with ...
PPTX
4 Amazing Flutter Open-Source Projects Need to Know in 2025.
PDF
[Workshop] Managing the API lifecycle with Open Source Technologies
PDF
Why Startups Should Consider Flutter App Developers?
PDF
Enabling Edge Analytics of IoT Data: The Case of LoRaWAN
PDF
INTERFACE by apidays 2023 - Developers' take on what makes up a high-quality ...
PDF
INTERFACE, by apidays - The Evolution of Data Movement.pdf
PDF
IRJET - Survey Paper on Tools Used to Enhance User's Experience with Cons...
PDF
DevNexus 2019: MicroProfile and Jakarta EE - What's Next?
PDF
Transform the internal it landscape with APIs and integration
PDF
6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdf
PDF
Python for IoT Development: A Beginner-Friendly Approach
PDF
15 Best React Native Developer Tools in 2024.pdf
PPTX
30 Years of Refactoring Research and Practice: A Large Scale Refactoring Infr...
FIWARE Global Summit - Welcome & Opening Remarks
Find Out What's New With WhiteSource September 2018- A WhiteSource Webinar
IoT Developer Survey 2016
GSOC 2016 mifos
8 Python Tools That Empower Android App Development.pptx
D2.2 Workflow Guidelines
Eclipse MicroProfile: Accelerating Cloud-Native Application Development with ...
4 Amazing Flutter Open-Source Projects Need to Know in 2025.
[Workshop] Managing the API lifecycle with Open Source Technologies
Why Startups Should Consider Flutter App Developers?
Enabling Edge Analytics of IoT Data: The Case of LoRaWAN
INTERFACE by apidays 2023 - Developers' take on what makes up a high-quality ...
INTERFACE, by apidays - The Evolution of Data Movement.pdf
IRJET - Survey Paper on Tools Used to Enhance User's Experience with Cons...
DevNexus 2019: MicroProfile and Jakarta EE - What's Next?
Transform the internal it landscape with APIs and integration
6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdf
Python for IoT Development: A Beginner-Friendly Approach
15 Best React Native Developer Tools in 2024.pdf
30 Years of Refactoring Research and Practice: A Large Scale Refactoring Infr...
Ad

More from Pasquale Salza (6)

PDF
A Framework for Genetic Algorithms Based on Hadoop
PDF
Parallel Genetic Algorithms in the Cloud
PDF
Recommending and Localizing Change Requests for Mobile Apps based on User Rev...
PDF
elephant56: Design and Implementation of a Parallel Genetic Algorithms Framew...
PDF
COSMIC Functional Measurement of Mobile Applications and Code Size Estimation
PDF
UniSa Pursuit: A Location-Based Game for the University of Salerno
A Framework for Genetic Algorithms Based on Hadoop
Parallel Genetic Algorithms in the Cloud
Recommending and Localizing Change Requests for Mobile Apps based on User Rev...
elephant56: Design and Implementation of a Parallel Genetic Algorithms Framew...
COSMIC Functional Measurement of Mobile Applications and Code Size Estimation
UniSa Pursuit: A Location-Based Game for the University of Salerno
Ad

Recently uploaded (20)

PPTX
Effective_Handling_Information_Presentation.pptx
PDF
Tunisia's Founding Father(s) Pitch-Deck 2022.pdf
PPTX
BIOLOGY TISSUE PPT CLASS 9 PROJECT PUBLIC
DOC
LSTM毕业证学历认证,利物浦大学毕业证学历认证怎么认证
PPTX
Sustainable Forest Management ..SFM.pptx
PPTX
Anesthesia and it's stage with mnemonic and images
PPTX
lesson6-211001025531lesson plan ppt.pptx
PPTX
Project and change Managment: short video sequences for IBA
PDF
Swiggy’s Playbook: UX, Logistics & Monetization
PPT
First Aid Training Presentation Slides.ppt
PPTX
Presentation for DGJV QMS (PQP)_12.03.2025.pptx
DOCX
"Project Management: Ultimate Guide to Tools, Techniques, and Strategies (2025)"
PPTX
Intro to ISO 9001 2015.pptx wareness raising
PPTX
MERISTEMATIC TISSUES (MERISTEMS) PPT PUBLIC
PPTX
Impressionism_PostImpressionism_Presentation.pptx
DOCX
ENGLISH PROJECT FOR BINOD BIHARI MAHTO KOYLANCHAL UNIVERSITY
PPTX
ART-APP-REPORT-FINctrwxsg f fuy L-na.pptx
PPTX
Tour Presentation Educational Activity.pptx
PPTX
nose tajweed for the arabic alphabets for the responsive
PPTX
water for all cao bang - a charity project
Effective_Handling_Information_Presentation.pptx
Tunisia's Founding Father(s) Pitch-Deck 2022.pdf
BIOLOGY TISSUE PPT CLASS 9 PROJECT PUBLIC
LSTM毕业证学历认证,利物浦大学毕业证学历认证怎么认证
Sustainable Forest Management ..SFM.pptx
Anesthesia and it's stage with mnemonic and images
lesson6-211001025531lesson plan ppt.pptx
Project and change Managment: short video sequences for IBA
Swiggy’s Playbook: UX, Logistics & Monetization
First Aid Training Presentation Slides.ppt
Presentation for DGJV QMS (PQP)_12.03.2025.pptx
"Project Management: Ultimate Guide to Tools, Techniques, and Strategies (2025)"
Intro to ISO 9001 2015.pptx wareness raising
MERISTEMATIC TISSUES (MERISTEMS) PPT PUBLIC
Impressionism_PostImpressionism_Presentation.pptx
ENGLISH PROJECT FOR BINOD BIHARI MAHTO KOYLANCHAL UNIVERSITY
ART-APP-REPORT-FINctrwxsg f fuy L-na.pptx
Tour Presentation Educational Activity.pptx
nose tajweed for the arabic alphabets for the responsive
water for all cao bang - a charity project

Do Developers Update
 Third-Party Libraries in Mobile Apps?

  • 1. ICPC 2018 International Conference on Program Comprehension UNIVERSITÀ DEGLI STUDI DI SALERNO Do Developers Update Third-Party Libraries in Mobile Apps? May 28th, 2018 Do Developers Update
 Third-Party Libraries in Mobile Apps? Pasquale Salza1, Fabio Palomba2, Dario Di Nucci3, Cosmo D’Uva4, Andrea De Lucia4, Filomena Ferrucci4 1USI Università della Svizzera italiana, 2University of Zurich, 3Vrije Universiteit Brussel, 4University of Salerno 1
  • 2. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Third-party libraries Crucial for the development of software Save the effort related to the implementation of complex functions Very popular for mobile apps 2
  • 3. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Libraries are software as well Need to evolve The updates aim at making them more stable and reliable 3
  • 4. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Why is updating important? Apps have an intense and continuous release cycle The user experience is fundamental Users are the very testers and decide the success of an app 4 Bavota et al., The impact of API Change- and Fault-Proness on the User Rating of Android Apps. IEEE Transactions on Software Engineering, 2015
  • 5. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Is it always worth updating? The public API may change and require development effort before being updated Stability and reliability are not truly guaranteed 5
  • 6. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Goals How much is common to update a library? Which category of libraries are updated the most? Is there any common behaviour that developers have in updating libraries? Can a library update be related to the success of an app? 6
  • 7. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Large Empirical Study 291 Android open source apps 40,000 reviews 300,000 commits 275 unique libraries 7
  • 8. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Mining Process F-Droid Git Cloner Release Miner Gradle Parser Local Git Repository commit 1 commit n commit 2 build.gradle build.gradle build.gradle Remote Git Repository Remote Dependencies Repositories Use Dependencies Release Dependencies May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 8
  • 9. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 F-Droid Git Cloner Releas G Remote Git Repository May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 F-Droid parsing 9
  • 10. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Git Cloner Local Git Repository commit 1 commit n commit 2 build.gradl build.gradl build.gradl Remote Git Repository May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Source code repository cloning 10 2014-12-01 2015-01-01 2015-02-01 2015-03-01 2015-04-01 2015-05-01 2015-06-01 2015-07-01 2015-08-01 2015-09-01 Date
  • 11. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Gradle Parser ry commit 1 commit n commit 2 build.gradle build.gradle build.gradle Use Dependencies May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Gradle libraries parsing 2014-12-01 2015-01-01 2015-02-01 2015-03-01 2015-04-01 2015-05-01 2015-06-01 2015-07-01 2015-08-01 2015-09-01 Date 21.0.3 22.0.0 22.1.0 22.1.1 22.2.0 22.2.1 23.0.0 23.0.1 2014-12-01 2015-01-01 2015-02-01 2015-03-01 2015-04-01 2015-05-01 2015-06-01 2015-07-01 2015-08-01 2015-09-01 Date Version Type Use 11
  • 12. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Git Cloner Release Miner Local Git Repository commit 1 commit n commit 2 build.gradle build.gradle build.gradle Remote Dependencies Repositories Use Dependencies Release Dependencies May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Dependencies mining 21.0.3 22.0.0 22.1.0 22.1.1 22.2.0 22.2.1 23.0.0 23.0.1 2014-12-01 2015-01-01 2015-02-01 2015-03-01 2015-04-01 2015-05-01 2015-06-01 2015-07-01 2015-08-01 2015-09-01 Date Version Type Use 21.0.3 22.0.0 22.1.0 22.1.1 22.2.0 22.2.1 23.0.0 23.0.1 2014-12-01 2015-01-01 2015-02-01 2015-03-01 2015-04-01 2015-05-01 2015-06-01 2015-07-01 2015-08-01 2015-09-01 Date Version Type Release Use 12
  • 13. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 21.0.3 22.0.0 22.1.0 22.1.1 22.2.0 22.2.1 23.0.0 23.0.1 2014-12-01 2015-01-01 2015-02-01 2015-03-01 2015-04-01 2015-05-01 2015-06-01 2015-07-01 2015-08-01 2015-09-01 Date Version Type Release Use 13
  • 14. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Libraries popularity The apps relies from 1 use of third-party library to a maximum of 35 The mean is about 4 libraries per app 14
  • 15. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 RQ1 To what extent mobile developers update the version of the used third- party libraries? 15
  • 16. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 To update, or not to update 67% of libraries were used but never updated during the app development life Only 2% of commits refers to a version change 16
  • 17. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Upgrade vs downgrade Downgrades 25.95% Upgrades 74.05% May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 17
  • 18. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Upgrade vs downgrade Downgrades 25.95% May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Anyone, any idea why the build fails […] does maven need to be updated too?! 18
  • 19. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 RQ2 Which types of third-party libraries are more and less prone to be updated in apps? 19
  • 20. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Changed categories Category Changes Upgrades Downgrades Graphical User Interface 52.67% 75.12% 24.88% Utilities 31.16% 73.43% 26.57% HTTP 3.91% 63.33% 36.67% Page Navigation 2.74% 57.14% 42.86% JSON 1.96% 60.00% 40.00% . . . . . . . . . . . . Protocol Buffers 0.07% 100.00% 0.00% Network 0.07% 100.00% 0.00% Bug Fix 0.07% 100.00% 0.00% Defect Detection 0.07% 100.00% 0.00% Update com.android.recyclerview−v7 to get new fancy icons. Update android.support to have an environment equivalent to the android platform. 20 My 2 cents. This is an extreme case, and it doesn't justify the upgrade of the library.
  • 21. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 RQ3 What types of update patterns developers follow when updating third-party libraries? 21
  • 22. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Open coding process We distributed a total of 1126 library histories to 4 of the authors (282 each) 22
  • 23. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 5.0.1 5.1.0 5.1.1 5.1.2 6.0.0 6.1.0 7.0.0 7.0.1 8.0.0 2014-04-01 2014-05-01 2014-06-01 2014-07-01 2014-08-01 2014-09-01 2014-10-01 2014-11-01 2014-12-01 2015-01-01 2015-02-01 2015-03-01 2015-04-01 2015-05-01 2015-06-01 2015-07-01 2015-08-01 2015-09-01 2015-10-01 2015-11-01 2015-12-01 2016-01-01 2016-02-01 2016-03-01 2016-04-01 2016-05-01 Date Version Type Release UseDiligent May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 13% 23
  • 24. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Diligent May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 ! ! ! 13% 24
  • 25. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 4.48 5.0 2013-11-01 2013-12-01 2014-01-01 2014-02-01 2014-03-01 2014-04-01 2014-05-01 2014-06-01 2014-07-01 2014-08-01 2014-09-01 2014-10-01 2014-11-01 2014-12-01 2015-01-01 2015-02-01 2015-03-01 2015-04-01 2015-05-01 2015-06-01 2015-07-01 2015-08-01 2015-09-01 2015-10-01 2015-11-01 2015-12-01 2016-01-01 2016-02-01 2016-03-01 2016-04-01 2016-05-01 2016-06-01 2016-07-01 2016-08-01 2016-09-01 Date Version Type Release UseIntroduced Once May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 9% 25
  • 26. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Introduced Once ☠ May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 9% 26
  • 27. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.9.0 2.9.1 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.10.5 2.10.6 2.10.7 2.10.8 2.10.9 2.10.10 2.11.0 2015-01-01 2015-02-01 2015-03-01 2015-04-01 2015-05-01 2015-06-01 2015-07-01 2015-08-01 2015-09-01 Date Version Type Release UseJump Up May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 13% 27
  • 28. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Jump Up May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 🕴 13% 28
  • 29. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 19.0.0 19.0.1 19.1.0 20.0.0 21.0.0-rc1 21.0.0 21.0.2 21.0.3 22.0.0 22.1.0 22.1.1 22.2.0 22.2.1 23.0.0 2013-10-01 2013-11-01 2013-12-01 2014-01-01 2014-02-01 2014-03-01 2014-04-01 2014-05-01 2014-06-01 2014-07-01 2014-08-01 2014-09-01 2014-10-01 2014-11-01 2014-12-01 2015-01-01 2015-02-01 2015-03-01 2015-04-01 2015-05-01 2015-06-01 2015-07-01 2015-08-01 2015-09-01 Date Version Type Release UseJump Down May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 <1% 29
  • 30. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Jump Down May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 🕺 ☂ <1% 30
  • 31. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 21.0.3 22.0.0 22.1.0 22.1.1 22.2.0 22.2.1 23.0.0 23.0.1 2014-12-01 2015-01-01 2015-02-01 2015-03-01 2015-04-01 2015-05-01 2015-06-01 2015-07-01 2015-08-01 2015-09-01 Date Version Type Release UseBack and Forth May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 2% 31
  • 32. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Back and Forth May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 🏃 🏃 🏃 🏃 2% 32
  • 33. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 RQ4 Are the update patterns of high-rated and low- rated apps different? 33
  • 34. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 High and low rated apps We classified the apps in two groups based on ratings High rated: ≥ 3.5 ⭐ Low rated: < 3.5 ⭐ 34 Khalid et al., What Do Mobile App Users Complain About? IEEE Software, 2015
  • 35. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 High and low rated apps Introduced Once Diligent Jump Up Jump Down Back and Forth 0% 25% 50% 75% 100% 21% 34% 78% 89% 30% 79% 66% 22% 11% 70% Low High 35
  • 36. May 28th, 2018Do Developers Update Third-Party Libraries in Mobile Apps? ICPC 2018 Future directions Extend the study to closed source apps Automatic upgrade suggestions to avoid useless changes Effort estimation in updating libraries 36