![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_blog_cover_android_a61a0657ac/medium_blog_cover_android_a61a0657ac.png)
android
![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_blog_cover_android_a61a0657ac/medium_blog_cover_android_a61a0657ac.png)
RxOAuth2: reactive OAuth approach for Android, pt. 2
RxOAuth2: reactive OAuth approach for Android, pt. 1
![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_android_audio_api_web_6a1e4df428/medium_android_audio_api_web_6a1e4df428.jpg)
Android High Performance Audio APIs ?
![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_materialshape_web_ea77ab8d17/medium_materialshape_web_ea77ab8d17.jpg)
Create beautiful shapes with MaterialShapeDrawable
![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_blog_exceptions_9a14281d84/medium_blog_exceptions_9a14281d84.jpg)
Error Handling: Make Your Exceptions Nicer
![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_react_web_a8c1b1b77c/medium_react_web_a8c1b1b77c.png)
Reactive programming
![](https://storage.googleapis.com/ackee-blog-cms-static-files/medium_kucharka_039b28bd2c/medium_kucharka_039b28bd2c.png)