Skip to content
Rafael Acosta edited this page Jul 22, 2020 · 3 revisions
Table of Contents

Demo App

A demostration app is available to download from GooglePlay (comming soon). It's allow you to play staight away with our library installed on an app.

His source code is in this repository ("sample" folder) and it's contains implementation examples. Clone the project and run the sample app module to install it into a real device or an emulator.

For PLUGIN DOCUMENTATION

In order to provide this features, your apk contains your source code as well as you compiled code (a zip file asset). We can directly read your app's assets but we also include a a zip file in your apk with other source files:

  • Your Java source sets. Content of src/main/java plus dynamic inclusions.
  • Your resources: Content of src/main/res but excluding the raw folder.
  • Build time generated sources. Content of build/generated/ excluding assets and png.

Important considerations

Debug vs Release compilation

Our goal is to enhance your internal compilation without interfering in your production compilations. Our default configuration assume that your debug compilations are for internal use and your release ones are for production, but you can adjust it.

You can disable our library and plugin in your debug builds by setting enabled = false in configuration or using our noop library. Read more.

We have a release protection mechanism to auto-disable everything on your release builds even if you forget to use our noop artifact or if your configuration have enabled = true. On release builds, our plugin will not perform any of their tasks and our androidx and support libraries will behave like the noop one.

To enable our library and plugin in your release builds you have to explicitly override our protection mechanism by setting enabledOnRelease = true in configuration. Read more.

Source code exposition

When this library is enabled, your source code get exposed to anyone who get your APK. It can be navigated and visualized throw our UI and someone could also extract all of them from your APK file, un-compiled.

You can adjust this behaviour to your needs, excluding some sources or disabling related features. Read more.


Configuration

You can easily configure our library behaviour at build time by using our gradle extension on your app module's build.gradle. This configuration also affect our plugin behaviour and cleaning your app's data will restore to this values.

apply plugin: 'es.rafaco.inappdevtools'

All available properties with descriptions can be found in our wiki. Read More.

You can also override your build configuration at run time from our UI (Overlay toolbar > More > Setting) or programmatically calling us from your sources. Runtime values will be lost when cleaning your app data, restoring the build ones from our gradle extension.

Iadt.getConfig().setBoolean(BuildConfigField.ENABLED, false);
Iadt.restartApp();