You can setup your own CI server with real devices on gitlab with these scripts and setups. I found this issues that are common between any CI server:
Since Espresso will wait for AsyncTask to finish, we can take advantage of this making every RX call use the ThreadPool from there on every request, how to overrite that?
OneSignal offer Push Notification as a service, an Android SDK and a Public API.
Using @JvmOverloads tag helps to avoid multiple constructors with Kotlin
The idea is to use retryWhen RxJava function to create a new timber observable if it’s a timeout on error