Android BLE

Unpacking BLE frames in a readable way.

Ever wondered why does unpacking Bluetooth data you receive is so much work compared to automatic unpacking done by Retrofit via GSon/etc? This is caused because BLE data is usually very tightly packed and data format varies greatly between devices. Some devices can send Int values as one/two/three/four bytes, sometimes they are big-endian, sometimes little-endian. […]

Android RxJava Tips Tricks


Do you want to make sure that your Rx Java Disposables are disposed from the viewModel when they are no longer needed?

Pure Rx Java solution Create CompositeDisposable as field Register all your Disposables via its add method. When you don’t need to receive more updates call clear: public class RxLifecycleViewModel extends ViewModel { private final CompositeDisposable disposables = new CompositeDisposable(); public void onAttach(final ViewInterface view) { disposables.add(Observable.interval(1, TimeUnit.SECONDS) .subscribe(aLong -> { view.updateText(aLong); })); } public void […]


Tips – clean code & less boilerplate

A few tips on how to keep the code clean and testable 1. Don't want to have Android dependencies in viewModel, but still want it to handle clicks? Create an onClick BindingAdapter that does not pass View, or use one from SecretSauce library. 2. Do you want to auto refresh your data in view by [...]

Android Course

Android development tutorials collection

This is my handpicked list of resources for developers who want to start or get better with Android. List will evolve with time, new items will be added, old removed. START HERE VIDEO TUTORIALS/COURSES Android Development Tutorial by Derek Banas DESIGNER RESOURCES TESTING PRACTICAL MORE ADVANCED […]