This talk explores the considerations that go into library development for Android. From the types of libs out there, to API, development, release, and documenting it.
Given at Ljubljana Android Meetup on 22 February 2017
Java libs, UI Widgets, Android specific, Serverside, Testing Access: Publicly vs Privately accessible Pricing: FOSS, Free to use vs Commercial Packaging: JAR vs AAR API: Annotation-based, Reactive, n other things... 5
interfaces • They can be replaced with lambdas easily • Used in Retrolambda, Kotlin, Jack Compiler… • Power users tend to like it. Be nice to your power users.
do async • Still a “power user” feature • Keep a callback option • Rx adapter as optional extra? More: Paco Estevez makes AWESOME Rx libs/articles/talks
features - @NotNull, @Nullable • Autovalue, Autoparcel value types • Build annotations to “write” code for you • Use Square/JavaPoet More in: Jason Feinstein’s talk from Codemotion Tel Aviv 2016
be lazy Familiar > Unexpected Convention -> Configuration Naming, naming, naming Release wherever sensible for you ...but always on a Maven repo Be Lambda enabler Use Semantic Versioning Beautiful outside, “ugly” inside Have (more) tests There is magic in the copy-paste