The first post of this series was quite popular (read: 8 cool libraries to speed up your development). It covered more of the basic stuff though, so this time I wanted to bring to you something more specialized. The libraries I’m mentioning here are tested, and used in production by me, so it’s not like a random choice of possibly good libraries.
Testing libraries in production is time consuming. Sometimes after a while you realize that your choice wasn’t good and you have to cut off the library from the project or replace it with another one because it’s either buggy or it just doesn’t fit your extended needs anymore. That could be painful, but I prefer this than reading through a foreign code before I even start to use that. Legend says some do so!
Design, design everywhere
- Design Support Library
For the past months there has been one particularly hot Google library. I’m talking about Design Support Library. It’s a very powerful tool allowing you to introduce some mind blowing, amazingly beautiful material design features in your apps. If somehow you’re still not familiar with it better start digging into. Brace yourself however – it’s quite buggy and limited. It progresses fast but if you have more sophisticated needs it might not meet them.
- Material Range Bar
This one introduces refreshed seek bar. It’s much more powerful, and of course much more beautiful as well! I even contributed to this repo by adding possibility to keep those pins visible all the time. Definitely a good replacement for classic android SeekBar.
- Parallax RecyclerView
Parallax scroll animation is still something we love to see, especially on list headers. This library let’s you easily implement such header for your RecyclerView based list. I even managed to incorporate that with design library’s AppBarLayout so I have a list, parallax header and a toolbar with tab bar below. The tabs are snapped but the toolbar is also hidden with parallax animation. Description unclear? Better see it in action here. It’s a .gif so it looks little snappy, apart from the real feel of this animation.
- Floating Action Button
That’s my favorite implementation of custom Floating Action Button. I usually just use the one from Design Support Library nowadays, but it’s still very limited, so if I want to have an action button menu I use the mentioned library.
RxJava still kickin!
- Reactive Location
I’m still using Rx on the daily basis, actually I tend to use it more and more. It solves so many problems! It also generates new but those are “how do I do that with Rx” kind of problems 😉 This library is currently my favorite way of specifying user location without much hassle. When I started looking for this one I also stumbled on Reactive Play Services which might have seen as a better wider choice but I had problems setting it up, and it wasn’t as easy to use as the Reactive Location. See for yourself 🙂
Runtime permissions might give you a headache
You probably heard about runtime permissions – now some of the app permissions need to be asked in the runtime instead of only specifying in the AndroidManifest.xml. This actually requires quite a lot of boilerplate, as Google made it their kind of messy way. I do recommend to understand Google’s original flow of the process, but if you want the code cleaner you might want to use one of the libraries that have shown up quite recently. Nammu is one of them. I used it and liked it, but there are few others working very similarly.
I do more and more open source nowadays. I find it quite fun, especially when the library catches some attention. Let me present 3 of my personal products. Don’t worry – I wouldn’t post them here if I didn’t think they were good.
It’s a commponent I made for one of our Schibsted’s products. I thought it might be found useful, so I just posted in on github. It let’s you create a round badge with animated progress.
I’ve already written about this one, but since then I did a major release. This library lets you easily switch between your content progress, error or empty views – for example when loading lists. Now you can hold as many views in each group you want.
That one got surprisingly high attention. It let’s your app to implement image picker (camera, documents, gallery) quickly with as little code as possible. Just check it for yourself – the readme says it all. I’ve already merged several pull requests. This library is new but I expect it to be popping out in production apps soon.
Epilogue: why I love Android
I love Android and Java in general for the open source community. A lot has been done to make our lives easier. I recommend to everybody jumping on the open source train by contributing to the existing repositories or creating new ones. It’s good for you as an engineer. Most of the best employers will surely find it impressing. Hope I convinced you! 🙂