SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
+GabrieleMariotti
@GabMarioPower
Can you work without open
source libraries?
Droidcon Torino - 9/10 April 2015
Gabriele Mariotti
Mobile Project Manager at Namirial S.p.A.
Android Developer
Community Lead at GDG Ancona
Droidcon Torino - 9/10 April 2015
How many of you have used open source
libraries in your projects?
Droidcon Torino - 9/10 April 2015
Can you work without them?
PicassoRetrofit
Universal-Image-LoaderCrouton
Ion
AndroidStaggeredGrid
Cupboard
OkHttp
EventBus
ListViewAnimations
SwipeListView
Dagger
ButterKnife
Otto
ShowCaseView
PhotoView
SmoothProgressBar
StickyListHeaders
TwoWayView
PagerSlidingTabStrip
GoogleProgressBar
Teleport
Cardslib
Material Dialogs
Droidcon Torino - 9/10 April 2015
Use an open source library
Can you work without them?
Write your custom code
Which are the alternatives?
Droidcon Torino - 9/10 April 2015
● Never choose the first library
● Read the licence
● Read the readme
● Pay attention to some points
Before using open source libraries
Droidcon Torino - 9/10 April 2015
Some important points:
● Licence
● Maintenance
● Support
● Documentation
● Quality code
Before using a open source libraries
Droidcon Torino - 9/10 April 2015
Open source != Free
● Open source doesn’t mean you're free to do anything you want with
the library
● you have to respect the license
What is open source?
Droidcon Torino - 9/10 April 2015
What do you know about
the types of licence ??
Droidcon Torino - 9/10 April 2015
Can I use it ???
● Check the licence under which the library is released
● Check if the licence is compatible with your project
● Pay attention to legal issues
Licence
Droidcon Torino - 9/10 April 2015
Strong copyleft
● GNU GPL
It is a reciprocal licence VIRAL licence.
Are you ready to release your product under GPL licence?
Licence
Droidcon Torino - 9/10 April 2015
Weak copyleft
● LGPL
● Mozilla Licence
Permissive
● Apache V2
● MIT
● BSD
Licence
Droidcon Torino - 9/10 April 2015
Telegram+ was removed from Google Play for:
Violation of the intellectual property and impersonation or deceptive behavior
“Telegram is open source.
What’s wrong with a third party app based on that source? ”
Type of licence Telegram
Telegram is licensed under the GPLv2+.
This means you’re free to do pretty much whatever you want with the source code, as long as you make
it available to anyone who asks (you can make it public accessible for everyone, or include a written
offer to make the source code available any user who requests it).
A recent history
Droidcon Torino - 9/10 April 2015
Who is the author of this library ??
Droidcon Torino - 9/10 April 2015
Who is maintaining the library ??
● a company ?
● a community ?
● a single developer ?
Maintenance
Droidcon Torino - 9/10 April 2015
Is this library still alive ??
● Check the last commits in the repository. If the last commit was 1
year ago likely the project has been abandoned (or it is complete
and doesn't require updates...).
● Check how often the project is updated (or was updated).
Maintenance
Droidcon Torino - 9/10 April 2015
Do not underestimate this point.
If you use a library which is no longer maintained, you could have
problems in the future.
Maintenance
Droidcon Torino - 9/10 April 2015
Can someone help me….?
● Evaluate what kind of support you can find using it.
● Popular libraries have a tag (and a lot of posts) on stackoverflow
● Popular libraries have a G+ community or a very good issues
section where to find a lot of comments and posts.
Support
Droidcon Torino - 9/10 April 2015
Is someone fixing the issues….?
● Check how many issues are open
● Check how many issues were closed
If you find 300 issues open and 1 issue closed is not a good evidence
Issues
Droidcon Torino - 9/10 April 2015
How can I use the library ??
Droidcon Torino - 9/10 April 2015
You can’t use a library without documentation!
Check if the library provides:
● Doc section
● Wiki section
● A good Readme file
Doc & Wiki
Droidcon Torino - 9/10 April 2015
Check if the library provides:
● demo sources
● examples
● a demo in Google Play
Often a demo is the best way to see the features and it capabilities
Demo & examples
Droidcon Torino - 9/10 April 2015
The existence of unit tests is a good indicator of a serious project
● Few libraries have unit tests
● Unit tests requires time
● Unit test are very very important
Unit tests
Droidcon Torino - 9/10 April 2015
Is it good?
● Spend a few hours to browse the code
● Check how it is written
● Check if the authors use comments, javadoc, clean code..
Code quality
Droidcon Torino - 9/10 April 2015
Integration...
Droidcon Torino - 9/10 April 2015
● Does this library provide a Gradle support ??
Do not hesitate to open an issue to ask the author to push an aar on
maven.
Central Maven or jcenter
Droidcon Torino - 9/10 April 2015
What is Travis CI?
Travis CI is a hosted continuos integration and deployment system.
Some libraries are beginning to have this integration.
Travis CI
Droidcon Torino - 9/10 April 2015
Are you ready for….??
Droidcon Torino - 9/10 April 2015
Are you ready for…??
What if a day...
PLEASE NOTE, THIS PROJECT IS NO
LONGER BEING MAINTAINED
Droidcon Torino - 9/10 April 2015
Are you ready for…??
What if a day...
DEPRECATED
Droidcon Torino - 9/10 April 2015
Are you ready to explain to your
customer that a part of the project is no
longer maintained?
Droidcon Torino - 9/10 April 2015
Use an open source library
Can you work without them?
Write your custom code
Which are the alternatives?
Droidcon Torino - 9/10 April 2015
Write your custom code:
● Do you really need this code?
● Don’t reinvent the wheel
● Can you obtain the same result in a short time?
● Is it so easy to build this code?
Before writing a custom code
Droidcon Torino - 9/10 April 2015
PRO:
● Own code
● Without licence or royalities costs
● You can easily add a new feature
Before writing a custom code
Droidcon Torino - 9/10 April 2015
CON:
● It can requires a lot of time
● It can requires an extra budget
Before writing a custom code
Droidcon Torino - 9/10 April 2015
Use an open source library
Can you work without them?
Write your custom code
It could be not so simple
Droidcon Torino - 9/10 April 2015
A different point of view:
on the other side
Droidcon Torino - 9/10 April 2015
An incredible experience
2 years ago I decided to share a library.
I could not expect this…..
Droidcon Torino - 9/10 April 2015
1. IDEA
Droidcon Torino - 9/10 April 2015
IDEA
● Collect your ideas
● Collect your code
● Collect your examples
Droidcon Torino - 9/10 April 2015
2. CODE
Droidcon Torino - 9/10 April 2015
CODE
Writing for others is different from writing for themselves
● Make abstractions
● Write comments
● Write javadoc
● Write in a clean way
Droidcon Torino - 9/10 April 2015
3. PUBLISH
Droidcon Torino - 9/10 April 2015
PUBLISH
Brace yourself…
● Post a blog
● Publish a demo in Google Play
● Try to share your project
Droidcon Torino - 9/10 April 2015
4. SURPRISED
Droidcon Torino - 9/10 April 2015
SURPRISED
OMG…
● Emails
● Pull requests
● Issues
● Messages
Droidcon Torino - 9/10 April 2015
FINAL STEP…..
Droidcon Torino - 9/10 April 2015
Are you ready for…??
Now I can understand why I can find...
DEPRECATED
+GabrieleMariotti
@GabMarioPower
Thank you!

Más contenido relacionado

La actualidad más candente

Advantages of Python Learning | Why Python
Advantages of Python Learning | Why PythonAdvantages of Python Learning | Why Python
Advantages of Python Learning | Why PythonEvoletTechnologiesCo
 
Python slide basic to advanced english tutorial
Python slide basic to advanced english tutorialPython slide basic to advanced english tutorial
Python slide basic to advanced english tutorialmasukmia.com
 
Test Driven Development (TDD) with Windows PowerShell
Test Driven Development (TDD) with Windows PowerShellTest Driven Development (TDD) with Windows PowerShell
Test Driven Development (TDD) with Windows PowerShellHemmerling
 
Funcargs & other fun with pytest
Funcargs & other fun with pytestFuncargs & other fun with pytest
Funcargs & other fun with pytestBrianna Laugher
 
Continuous Integration In Php
Continuous Integration In PhpContinuous Integration In Php
Continuous Integration In PhpWilco Jansen
 
JAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone before
JAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone beforeJAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone before
JAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone beforejazoon13
 
Test Driven Development with PHP
Test Driven Development with PHPTest Driven Development with PHP
Test Driven Development with PHPRogério Vicente
 
Behaviour Driven Development Hands-on
Behaviour Driven Development Hands-onBehaviour Driven Development Hands-on
Behaviour Driven Development Hands-onHemmerling
 
Flatpak and AppImage usage on openSUSE
Flatpak and AppImage usage on openSUSEFlatpak and AppImage usage on openSUSE
Flatpak and AppImage usage on openSUSEKukuh Syafaat
 
Python Django Basics
Python Django BasicsPython Django Basics
Python Django BasicsRahilMemon5
 
Metasploit3 - David Calligaris
Metasploit3 - David CalligarisMetasploit3 - David Calligaris
Metasploit3 - David CalligarisDaniele Albrizio
 
What's unique to Qt
What's unique to QtWhat's unique to Qt
What's unique to QtYikei Lu
 

La actualidad más candente (20)

Advantages of Python Learning | Why Python
Advantages of Python Learning | Why PythonAdvantages of Python Learning | Why Python
Advantages of Python Learning | Why Python
 
Python slide basic to advanced english tutorial
Python slide basic to advanced english tutorialPython slide basic to advanced english tutorial
Python slide basic to advanced english tutorial
 
Test Driven Development (TDD) with Windows PowerShell
Test Driven Development (TDD) with Windows PowerShellTest Driven Development (TDD) with Windows PowerShell
Test Driven Development (TDD) with Windows PowerShell
 
Funcargs & other fun with pytest
Funcargs & other fun with pytestFuncargs & other fun with pytest
Funcargs & other fun with pytest
 
tizen-upstream-coop-tdc2014-pcoval
tizen-upstream-coop-tdc2014-pcovaltizen-upstream-coop-tdc2014-pcoval
tizen-upstream-coop-tdc2014-pcoval
 
FFmpeg: A Retrospective
FFmpeg: A RetrospectiveFFmpeg: A Retrospective
FFmpeg: A Retrospective
 
Continuous Integration In Php
Continuous Integration In PhpContinuous Integration In Php
Continuous Integration In Php
 
Pyconza(2)
Pyconza(2)Pyconza(2)
Pyconza(2)
 
JAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone before
JAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone beforeJAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone before
JAZOON'13 - Andres Almiray - Spock: boldly go where no test has gone before
 
Test Driven Development with PHP
Test Driven Development with PHPTest Driven Development with PHP
Test Driven Development with PHP
 
Behaviour Driven Development Hands-on
Behaviour Driven Development Hands-onBehaviour Driven Development Hands-on
Behaviour Driven Development Hands-on
 
Perl wants you
Perl wants youPerl wants you
Perl wants you
 
Frogans Technology - A new frontier for publishing content on the internet 20...
Frogans Technology - A new frontier for publishing content on the internet 20...Frogans Technology - A new frontier for publishing content on the internet 20...
Frogans Technology - A new frontier for publishing content on the internet 20...
 
Script
ScriptScript
Script
 
Flatpak and AppImage usage on openSUSE
Flatpak and AppImage usage on openSUSEFlatpak and AppImage usage on openSUSE
Flatpak and AppImage usage on openSUSE
 
Python Django Basics
Python Django BasicsPython Django Basics
Python Django Basics
 
Metasploit3 - David Calligaris
Metasploit3 - David CalligarisMetasploit3 - David Calligaris
Metasploit3 - David Calligaris
 
Besut Kode Challenge 1
Besut Kode Challenge 1Besut Kode Challenge 1
Besut Kode Challenge 1
 
tizen-maintain-20150413rzr
tizen-maintain-20150413rzrtizen-maintain-20150413rzr
tizen-maintain-20150413rzr
 
What's unique to Qt
What's unique to QtWhat's unique to Qt
What's unique to Qt
 

Similar a Droidcon Italy 2015: can you work without open source libraries?

OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...Niklas Heidloff
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processChristopher Cundill
 
PyTorch for Delphi - Python Data Sciences Libraries.pdf
PyTorch for Delphi - Python Data Sciences Libraries.pdfPyTorch for Delphi - Python Data Sciences Libraries.pdf
PyTorch for Delphi - Python Data Sciences Libraries.pdfEmbarcadero Technologies
 
Software Freedom and Open Source Community
Software Freedom and Open Source CommunitySoftware Freedom and Open Source Community
Software Freedom and Open Source CommunitySammy Fung
 
Introductory session flutter festival
Introductory session   flutter festivalIntroductory session   flutter festival
Introductory session flutter festivalApoorveGoyal2
 
Python App Development_ 7 Things to Keep in Mind.pdf
Python App Development_ 7 Things to Keep in Mind.pdfPython App Development_ 7 Things to Keep in Mind.pdf
Python App Development_ 7 Things to Keep in Mind.pdfBoTree Technologies
 
Testing and open source in automotive beyond automation and frameworks
Testing and open source in automotive  beyond automation and frameworksTesting and open source in automotive  beyond automation and frameworks
Testing and open source in automotive beyond automation and frameworksAgustin Benito Bethencourt
 
A Comprehensive Guide of Python Final Year Projects with Source Code.pdf
A Comprehensive Guide of Python Final Year Projects with Source Code.pdfA Comprehensive Guide of Python Final Year Projects with Source Code.pdf
A Comprehensive Guide of Python Final Year Projects with Source Code.pdfjagan477830
 
DevOps practices and tools of a small company in love with open source
DevOps practices and tools of a small company in love with open sourceDevOps practices and tools of a small company in love with open source
DevOps practices and tools of a small company in love with open sourceFrancesco Chicchiriccò
 
Eight Reasons Why Startups Need to Hire Python Developers
Eight Reasons Why Startups Need to Hire Python DevelopersEight Reasons Why Startups Need to Hire Python Developers
Eight Reasons Why Startups Need to Hire Python DevelopersInexture Solutions
 
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye codeKim Moir
 
Leverage the power of Open Source in your company
Leverage the power of Open Source in your company Leverage the power of Open Source in your company
Leverage the power of Open Source in your company Guillaume POTIER
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?LOGINPHP360
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?LOGINPHP360
 
The Ring programming language version 1.10 book - Part 99 of 212
The Ring programming language version 1.10 book - Part 99 of 212The Ring programming language version 1.10 book - Part 99 of 212
The Ring programming language version 1.10 book - Part 99 of 212Mahmoud Samir Fayed
 
What is Python? An overview of Python for science.
What is Python? An overview of Python for science.What is Python? An overview of Python for science.
What is Python? An overview of Python for science.Nicholas Pringle
 
Primeros pasos del Software Libre en infraestructura civil Civil Infrastructu...
Primeros pasos del Software Libre en infraestructura civil Civil Infrastructu...Primeros pasos del Software Libre en infraestructura civil Civil Infrastructu...
Primeros pasos del Software Libre en infraestructura civil Civil Infrastructu...Agustin Benito Bethencourt
 
Kickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdfKickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdfShreyaDhurde
 

Similar a Droidcon Italy 2015: can you work without open source libraries? (20)

OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy process
 
PyTorch for Delphi - Python Data Sciences Libraries.pdf
PyTorch for Delphi - Python Data Sciences Libraries.pdfPyTorch for Delphi - Python Data Sciences Libraries.pdf
PyTorch for Delphi - Python Data Sciences Libraries.pdf
 
Software Freedom and Open Source Community
Software Freedom and Open Source CommunitySoftware Freedom and Open Source Community
Software Freedom and Open Source Community
 
Introductory session flutter festival
Introductory session   flutter festivalIntroductory session   flutter festival
Introductory session flutter festival
 
Python App Development_ 7 Things to Keep in Mind.pdf
Python App Development_ 7 Things to Keep in Mind.pdfPython App Development_ 7 Things to Keep in Mind.pdf
Python App Development_ 7 Things to Keep in Mind.pdf
 
Testing and open source in automotive beyond automation and frameworks
Testing and open source in automotive  beyond automation and frameworksTesting and open source in automotive  beyond automation and frameworks
Testing and open source in automotive beyond automation and frameworks
 
A Comprehensive Guide of Python Final Year Projects with Source Code.pdf
A Comprehensive Guide of Python Final Year Projects with Source Code.pdfA Comprehensive Guide of Python Final Year Projects with Source Code.pdf
A Comprehensive Guide of Python Final Year Projects with Source Code.pdf
 
DevOps practices and tools of a small company in love with open source
DevOps practices and tools of a small company in love with open sourceDevOps practices and tools of a small company in love with open source
DevOps practices and tools of a small company in love with open source
 
Eight Reasons Why Startups Need to Hire Python Developers
Eight Reasons Why Startups Need to Hire Python DevelopersEight Reasons Why Startups Need to Hire Python Developers
Eight Reasons Why Startups Need to Hire Python Developers
 
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye code
 
Leverage the power of Open Source in your company
Leverage the power of Open Source in your company Leverage the power of Open Source in your company
Leverage the power of Open Source in your company
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?
 
The Ring programming language version 1.10 book - Part 99 of 212
The Ring programming language version 1.10 book - Part 99 of 212The Ring programming language version 1.10 book - Part 99 of 212
The Ring programming language version 1.10 book - Part 99 of 212
 
What makes python 3.11 special
What makes python 3.11 special What makes python 3.11 special
What makes python 3.11 special
 
Droidcon Berlin 2015
Droidcon Berlin 2015Droidcon Berlin 2015
Droidcon Berlin 2015
 
What is Python? An overview of Python for science.
What is Python? An overview of Python for science.What is Python? An overview of Python for science.
What is Python? An overview of Python for science.
 
Primeros pasos del Software Libre en infraestructura civil Civil Infrastructu...
Primeros pasos del Software Libre en infraestructura civil Civil Infrastructu...Primeros pasos del Software Libre en infraestructura civil Civil Infrastructu...
Primeros pasos del Software Libre en infraestructura civil Civil Infrastructu...
 
Kickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdfKickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdf
 

Último

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 

Último (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 

Droidcon Italy 2015: can you work without open source libraries?

  • 1. +GabrieleMariotti @GabMarioPower Can you work without open source libraries?
  • 2. Droidcon Torino - 9/10 April 2015 Gabriele Mariotti Mobile Project Manager at Namirial S.p.A. Android Developer Community Lead at GDG Ancona
  • 3. Droidcon Torino - 9/10 April 2015 How many of you have used open source libraries in your projects?
  • 4. Droidcon Torino - 9/10 April 2015 Can you work without them? PicassoRetrofit Universal-Image-LoaderCrouton Ion AndroidStaggeredGrid Cupboard OkHttp EventBus ListViewAnimations SwipeListView Dagger ButterKnife Otto ShowCaseView PhotoView SmoothProgressBar StickyListHeaders TwoWayView PagerSlidingTabStrip GoogleProgressBar Teleport Cardslib Material Dialogs
  • 5. Droidcon Torino - 9/10 April 2015 Use an open source library Can you work without them? Write your custom code Which are the alternatives?
  • 6. Droidcon Torino - 9/10 April 2015 ● Never choose the first library ● Read the licence ● Read the readme ● Pay attention to some points Before using open source libraries
  • 7. Droidcon Torino - 9/10 April 2015 Some important points: ● Licence ● Maintenance ● Support ● Documentation ● Quality code Before using a open source libraries
  • 8. Droidcon Torino - 9/10 April 2015 Open source != Free ● Open source doesn’t mean you're free to do anything you want with the library ● you have to respect the license What is open source?
  • 9. Droidcon Torino - 9/10 April 2015 What do you know about the types of licence ??
  • 10. Droidcon Torino - 9/10 April 2015 Can I use it ??? ● Check the licence under which the library is released ● Check if the licence is compatible with your project ● Pay attention to legal issues Licence
  • 11. Droidcon Torino - 9/10 April 2015 Strong copyleft ● GNU GPL It is a reciprocal licence VIRAL licence. Are you ready to release your product under GPL licence? Licence
  • 12. Droidcon Torino - 9/10 April 2015 Weak copyleft ● LGPL ● Mozilla Licence Permissive ● Apache V2 ● MIT ● BSD Licence
  • 13. Droidcon Torino - 9/10 April 2015 Telegram+ was removed from Google Play for: Violation of the intellectual property and impersonation or deceptive behavior “Telegram is open source. What’s wrong with a third party app based on that source? ” Type of licence Telegram Telegram is licensed under the GPLv2+. This means you’re free to do pretty much whatever you want with the source code, as long as you make it available to anyone who asks (you can make it public accessible for everyone, or include a written offer to make the source code available any user who requests it). A recent history
  • 14. Droidcon Torino - 9/10 April 2015 Who is the author of this library ??
  • 15. Droidcon Torino - 9/10 April 2015 Who is maintaining the library ?? ● a company ? ● a community ? ● a single developer ? Maintenance
  • 16. Droidcon Torino - 9/10 April 2015 Is this library still alive ?? ● Check the last commits in the repository. If the last commit was 1 year ago likely the project has been abandoned (or it is complete and doesn't require updates...). ● Check how often the project is updated (or was updated). Maintenance
  • 17. Droidcon Torino - 9/10 April 2015 Do not underestimate this point. If you use a library which is no longer maintained, you could have problems in the future. Maintenance
  • 18. Droidcon Torino - 9/10 April 2015 Can someone help me….? ● Evaluate what kind of support you can find using it. ● Popular libraries have a tag (and a lot of posts) on stackoverflow ● Popular libraries have a G+ community or a very good issues section where to find a lot of comments and posts. Support
  • 19. Droidcon Torino - 9/10 April 2015 Is someone fixing the issues….? ● Check how many issues are open ● Check how many issues were closed If you find 300 issues open and 1 issue closed is not a good evidence Issues
  • 20. Droidcon Torino - 9/10 April 2015 How can I use the library ??
  • 21. Droidcon Torino - 9/10 April 2015 You can’t use a library without documentation! Check if the library provides: ● Doc section ● Wiki section ● A good Readme file Doc & Wiki
  • 22. Droidcon Torino - 9/10 April 2015 Check if the library provides: ● demo sources ● examples ● a demo in Google Play Often a demo is the best way to see the features and it capabilities Demo & examples
  • 23. Droidcon Torino - 9/10 April 2015 The existence of unit tests is a good indicator of a serious project ● Few libraries have unit tests ● Unit tests requires time ● Unit test are very very important Unit tests
  • 24. Droidcon Torino - 9/10 April 2015 Is it good? ● Spend a few hours to browse the code ● Check how it is written ● Check if the authors use comments, javadoc, clean code.. Code quality
  • 25. Droidcon Torino - 9/10 April 2015 Integration...
  • 26. Droidcon Torino - 9/10 April 2015 ● Does this library provide a Gradle support ?? Do not hesitate to open an issue to ask the author to push an aar on maven. Central Maven or jcenter
  • 27. Droidcon Torino - 9/10 April 2015 What is Travis CI? Travis CI is a hosted continuos integration and deployment system. Some libraries are beginning to have this integration. Travis CI
  • 28. Droidcon Torino - 9/10 April 2015 Are you ready for….??
  • 29. Droidcon Torino - 9/10 April 2015 Are you ready for…?? What if a day... PLEASE NOTE, THIS PROJECT IS NO LONGER BEING MAINTAINED
  • 30. Droidcon Torino - 9/10 April 2015 Are you ready for…?? What if a day... DEPRECATED
  • 31. Droidcon Torino - 9/10 April 2015 Are you ready to explain to your customer that a part of the project is no longer maintained?
  • 32. Droidcon Torino - 9/10 April 2015 Use an open source library Can you work without them? Write your custom code Which are the alternatives?
  • 33. Droidcon Torino - 9/10 April 2015 Write your custom code: ● Do you really need this code? ● Don’t reinvent the wheel ● Can you obtain the same result in a short time? ● Is it so easy to build this code? Before writing a custom code
  • 34. Droidcon Torino - 9/10 April 2015 PRO: ● Own code ● Without licence or royalities costs ● You can easily add a new feature Before writing a custom code
  • 35. Droidcon Torino - 9/10 April 2015 CON: ● It can requires a lot of time ● It can requires an extra budget Before writing a custom code
  • 36. Droidcon Torino - 9/10 April 2015 Use an open source library Can you work without them? Write your custom code It could be not so simple
  • 37. Droidcon Torino - 9/10 April 2015 A different point of view: on the other side
  • 38. Droidcon Torino - 9/10 April 2015 An incredible experience 2 years ago I decided to share a library. I could not expect this…..
  • 39. Droidcon Torino - 9/10 April 2015 1. IDEA
  • 40. Droidcon Torino - 9/10 April 2015 IDEA ● Collect your ideas ● Collect your code ● Collect your examples
  • 41. Droidcon Torino - 9/10 April 2015 2. CODE
  • 42. Droidcon Torino - 9/10 April 2015 CODE Writing for others is different from writing for themselves ● Make abstractions ● Write comments ● Write javadoc ● Write in a clean way
  • 43. Droidcon Torino - 9/10 April 2015 3. PUBLISH
  • 44. Droidcon Torino - 9/10 April 2015 PUBLISH Brace yourself… ● Post a blog ● Publish a demo in Google Play ● Try to share your project
  • 45. Droidcon Torino - 9/10 April 2015 4. SURPRISED
  • 46. Droidcon Torino - 9/10 April 2015 SURPRISED OMG… ● Emails ● Pull requests ● Issues ● Messages
  • 47. Droidcon Torino - 9/10 April 2015 FINAL STEP…..
  • 48. Droidcon Torino - 9/10 April 2015 Are you ready for…?? Now I can understand why I can find... DEPRECATED