I'm working on Android Library project and want to add Picasso to my library. I've noticed that different libraries use different approaches to do this:
- Some libraries use static library dependency (like gif_encoder and gif_decoder libraries in Glide lib)
- Some libraries use usual dynamic gradle or pom dependencies (like Picasso uses OKHttp or Wire uses Retrofit and RxJava). I don't mean dynamic versions here marked with + sign (like 2.3.3+)
- Some libraries require adding the explicit dependence to some lib together with the target library (like RxAndroid uses RxJava)
So the question: what's the best way to add third party libraries to the Android library project? I mean the way that would help to simplify library integration process for the end-user and to avoid versions conflict and other potential issues. What are the advantages and disadvantages of a particular approach?