Frodo 2
is the second generation version of Frodo, mainly used for making easier debugging RxJava 2.
It generates and weaves code based on annotations only on debug
versions of the application where the plugin is applied, for instance, it is safe to persist any Frodo 2
annotation in the codebase.
- @RxLogObservable: Annotated methods which return
io.reactivex.Observables
will print the following information when emitting items:
@RxLogObservable
public Observable<List<MyDummyClass>> list() {
return Observable.just(buildDummyList());
}
To enable Frodo, a gradle plugin must be applied in your build.gradle
:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "com.fernandocejas.frodo2:frodo2-plugin:$project.version"
}
}
apply plugin: 'com.fernandocejas.frodo2'
//By default frodo2 is ON, although
//we can enable-disable it with this configuration.
frodo2 {
enabled = true
}
1 - Multi module setup (application + android library) will not log annotated methods/classes from Android Library Module but will do it on Android Application Module. The reason behind this, is that the Android Gradle Plugin will build all Android Libraries as release versions, for instance, Frodo is not able to weave any code on the annotated methods/classes (Remember that only weaves in debug versions). There is a workaround for forcing debug versions of your Android Libraries (just be careful in case this is forgotten and you end up shipping a version of your app with RxJava Logging enabled) by adding this line in your build.gradle
file:
android {
defaultPublishConfig "debug"
}
WIP
Clone the repo and use the scripts listed below in order to to run/install/execute frodo 2 locally:
./gradlew clean build
- Build the entire example and execute unit and integration tests plus lint check../gradlew installDebug
- Install the debug apk on the current connected device../gradlew installDebug
- Install the debug apk on the current connected device../gradlew runUnitTests
- Execute all unit tests within the project.
Here you can download and install the java codestyle. https://github.com/android10/java-code-styles
Copyright 2017 Fernando Cejas
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.