<@U6M59SL1Z> The name of my library is "Splitties"...
# android
l
@evan The name of my library is "Splitties". It means all features are split in small, mostly independent modules, to keep the dex count as low as practically doable. I try to do so without increasing dex size by inlining big methods without lambdas. So I think I'm on the right path for small footprint, but I want to do the right naming choices and support the API for the long term
a
GitHub link? Will star and follow. And contribute? 🤔
l
That would be nice! Keep in mind the README is being increasingly outdated (will update when I've done enough to publish a 2.0.0-alpha1): https://github.com/LouisCAD/Splitties
a
I'm about to fight you over this mixed case variable right now https://github.com/LouisCAD/Splitties/blob/master/build.gradle#L51 (sarcasm)
l
@adam-mcneilly The intent is to have the version suffix separated from the name of the library. I do it only in gradle versions because how ext properties work is so flaky compared to... Kotlin for example?
a
I keep version together in a lot of mine (roomVersion, timberVersion, supportVersion) etc. To each his own, I just got a sensible chuckle out of it.
l
@adam-mcneilly Note that there's IDE warnings for naming conventions that are not followed (There are none in Splitties). Java, Kotlin have it. Groovy & gradle probably too, but ext properties report no warning here.
a
🤔 I'm gonna go back to that tonight and check it haha.
You're open to simple documentation PRs?
l
I have not written a contributing guide yet 🙄
I'd prefer you to open an issue first to discuss what you'd like to document
I want to have a good and consistent documentation :)
a
Well I just noticed the README was quite large and it felt difficult to break out the different sections (for each module) in my head, so I thought about adding section links to make it easy to navigate the readme - https://github.com/AdamMc331/Splitties/blob/master/README.md (You'll see the bulleted list right before the
App Context
section)
That's just something I noticed without actually cloning this and digging through the code - which I'll do once I'm home and have time to dig in.
👍🏽 1
l
That's better than the current! Actually, I was thinking about ditching the whole documentation part from the README, providing only name, short desc, link to doc and copy paste ready dependency line
a
Yeah having all the different modules in the README will get really cluttered overtime. In the meantime though, do you want me to submit this as a PR or does it not fit with what you're trying to do?
l
It's good for the time being, so go submit! 😜
Thanks!
And yeah, if things were to stay as it is, it'd get cluttered for next version. I already have 20 library modules and counting
a
These must be pretty lightweight lol
Do you have an automated way to publish all of these to jcenter easily?
l
I had one but I had to build the modules one by one because some depends on other before uploading to bintray which is synced to jcenter
a
Gotcha. Welp I'm heading out of the office so I'll hopefully be able to tinker later. Love this idea and I'm eager to see which ones I can use myself/what I think is missing.
l
The publishing gradle script was originally written to support productFlavors of the library. I was originally super happy about what I could do and the fact I could reply to a year(s) long stackoverflow question, but I finally realized it was not the best idea for my library. As a result, the publishing script is a bit complex (more accurately, it's been a while I didn't look at it). It should keep doing fine, but I may simplify it before ot after 2.0.0-alpha1
I was looking at it yesterday, digging through the publishing scripts of various good/popular libraries published on jcenter.
a
Yeah, I figure groups like Square with all the various retrofit modules and converters have a smooth publishing process. No idea how it works though.
l
I know I won't be able to escape the hard part if I want to be able to publish snapshots (need to do so on sonatype which requires another config I don't understand, right?) one day (could help dogfood my libraries in various projects before committing to a version)
I will look at all of this when I'm ready for a nice snapshot or a 2.0.0-alpha1
One of the most important modules I'm dogfooding is one that made me stop writing UIs in XML. It's a View DSL for Android, similar to Anko, but even lighter, and more flexible
You can look at the MainActivity of the sample of my library Beepiz/BleGattCoroutines to have a preview of it
I find it very convenient for prototyping, but I also used it to ditch 99% of xml in an app. The update has made it to production and it works fine