All Projects β†’ wotomas β†’ ShieldAuto

wotomas / ShieldAuto

Licence: Apache-2.0 License
πŸ›‘οΈ ShieldAuto is a Java based Gradle plugin to manage proguard config for release builds

Programming Languages

java
68154 projects - #9 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to ShieldAuto

Awesome-Black-Friday-Cyber-Monday-deals
2021 - Black Friday & Cyber Monday, Christmas & Holidays Deals for Developers, Techies, & Entrepreneurs,
Stars: ✭ 151 (+387.1%)
Mutual labels:  plugins
Crusta
Fast, modern and minimal desktop web browser with rich features
Stars: ✭ 53 (+70.97%)
Mutual labels:  plugins
keeweb-plugins
KeeWeb plugins
Stars: ✭ 27 (-12.9%)
Mutual labels:  plugins
mackerel-plugin-linux-proc-stats
Linux processes metrics plugin for mackerel.io agent.
Stars: ✭ 13 (-58.06%)
Mutual labels:  plugins
AdobeXD-maps
πŸ—ΊA map generator plugin for Adobe XD using google maps API
Stars: ✭ 36 (+16.13%)
Mutual labels:  plugins
Pocketmine-School
A Website To Teach Everything About PocketMine-MP
Stars: ✭ 15 (-51.61%)
Mutual labels:  plugins
diagnostictools
Plugin for Qt Creator (Memory and CPU usage visualizer)
Stars: ✭ 41 (+32.26%)
Mutual labels:  plugins
Reconstruct
ProGuard Deobfuscator
Stars: ✭ 79 (+154.84%)
Mutual labels:  proguard
VimConfig
Configuration files for Vi-IMproved.
Stars: ✭ 23 (-25.81%)
Mutual labels:  plugins
gradle-cleaner-intellij-plugin
Force clear delaying & no longer needed Gradle tasks.
Stars: ✭ 26 (-16.13%)
Mutual labels:  gradle-plugin
javacard-gradle-plugin
πŸ”‘ Gradle plugin for JavaCard development
Stars: ✭ 24 (-22.58%)
Mutual labels:  gradle-plugin
stater
Android library for easy save data to bundle in Activity/Fragment.
Stars: ✭ 12 (-61.29%)
Mutual labels:  gradle-plugin
HootHoot
Justice 2.0, a moderation bot for the repl.it discord
Stars: ✭ 13 (-58.06%)
Mutual labels:  plugins
stati
An extensible and Jekyll-compatible PHP static website generator
Stars: ✭ 21 (-32.26%)
Mutual labels:  plugins
sphinx-gradle-plugin
Sphinx site generation plugin for Gradle
Stars: ✭ 19 (-38.71%)
Mutual labels:  gradle-plugin
Shot
Screenshot testing library for Android
Stars: ✭ 951 (+2967.74%)
Mutual labels:  gradle-plugin
malice-av
Malice AntiVirus Plugins
Stars: ✭ 98 (+216.13%)
Mutual labels:  plugins
use
Easily add plugin support to your node.js application.
Stars: ✭ 25 (-19.35%)
Mutual labels:  plugins
MyScriptics
This is collection useful script and plugins.
Stars: ✭ 40 (+29.03%)
Mutual labels:  plugins
feature-flag-android
A Gradle plugin to achieve feature flag based development for Android applications.
Stars: ✭ 82 (+164.52%)
Mutual labels:  gradle-plugin

Disclaimer

  • This project is meant for a proof of concept, to check if it is feasible to have a single magic solution for Proguard configurations
  • Currently its a 0.0.X version. Please don't use it in a real environment. Its terrible.
  • Basically googled and copied the first result for each proguard. The point I wanted to convey was that a single source, when crowdsourced enough, could bring value. (And also that most of google’s first result when used without knowledge is valueless)
  • My imagination of a real case usage in the future would be something like this:
shieldConfig {  //inside build.config
   libraries {
       ...
       picasso {
           enableDownloader true
           useOkhttp3 true
           ...
       }
   }
}

ShieldAuto

CI status Download

We were tired of searching for proguard configs for every library that needed to be included in release APK. By using ShieldAuto developers don't have to worry about checking proguard config file to check if setup is correct for each imported libraries.

ShieldAuto checks your dependencies extension defined in the build.gradle file to check for matching proguard and to generate a simple proguard config file. In short, ShieldAuto is a Java based Gradle plugin to manage proguard config for release build.

This is still a premature version and any helps are welcome. Test cases, refactoring, optimization, bug fixes and adding any libraries are welcome. Current State diagram is as following:

State Diagram

How to use?

// modify project level build.gradle
buildscript {
    repositories {
        ... 
        maven {
            url  "https://dl.bintray.com/wotomas/maven"
        }
    }
    dependencies {
        ...
        classpath 'info.kimjihyok:ShieldAuto:0.0.4'
    }
}
// add ShieldAuto plugin below application plugin 'com.android.application' plugin
apply plugin: 'info.kimjihyok.ShieldAuto'

android {
    ...  
    buildTypes {
        release {
            // apply sheidlAuto.auto() to proguardFiles configuration
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', shieldAuto.auto()
        }
    }

Note

Currently ShieldAuto is able to check for libraries imported only through compile configuration (which is deprecated and should be replaced with implementation, but direct access is not allowed right now). I would love for additional help with this issue.

Supported Libraries

Request for additional libraries could be submitted through issues. Pull requests are always welcome.

License

Copyright (C) 2018 Kim Jihyok

See the file License

Development and Contribution

We are open for any contributions. Please use the issue tickets for communication before sending pull requests.

Thanks to

Icons made by Maxim Basinski from www.flaticon.com is licensed by CC 3.0 BY
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].