No description, website, or topics provided.
Prolog Java
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.idea
app
buildsystem
config/quality/androidlint
flavoredapp
gradle/wrapper
library
.gitignore
LICENSE.md
README.md
_travis.yml_template
build.gradle
gradle.properties
gradlew
gradlew.bat
lombok.config
lombok.config.template
settings.gradle

README.md

GWSAndroidGradle

A set of gradle build scripts for android java application development.

modules:

app is non flavored and not using lombok or kotlin

favoredapp is flavored but not using lombok or kotlin

library is not flavored and not using lombok or kotlin

Downloading

I use JitPack to deploy my libraries so you can put this in your root build script:

allprojects {
        repositories {
            jcenter()
            maven { url "https://jitpack.io" }
        }
   }

the maven url has to be after jcenter to work and than in the module build script:

compile 'com.github.shareme:GWSAndroidGradle:{latest-release-number}@aar'

the latest-release-number will match the latest release listed in the github releases tab.

Implementation

Using the principle that gradle can load gradle snippets as plugins to separate out the gradle build scripts concerns so that we get very readable module build scripts.

This set of build scripts is optimized for fast compiling on junk laptops, that means that I am running the code qa stuff as local IDE plugins instead when I need that feedback.

Git Hashes:

Implemented as cross-platform using the Grgit wrapper that wraps JGit libraries within the root build script as that is the only place where one can do gradle import statements. In the app modules than the git has is referenced as a rootProject ext global variable and stored in a buildConfigField buildTypes block.

The main reason for this is so we track app module releases via the git hash to match up analytics crash reports with the correct release causing the problem via the stored git hash in the buildConfigField.

Proguard:

Workaround for Samsung devices support lib goof/patch included, its known as the 4.x fix and its marked with comments in the proguard-matches-android-optimize.pro file.

EditText:

workaround for api 21 and 22 in res/values/dimens.xml and same in values-21 and values-22 res folders

App Sign Key:

I use putting app key in buildsystem folder rather than some other local user folder. NOT SAFE for public repos, if you need with public repos you should change it to something reading from the command line as system.property that way you can still execute it on CI servers.

AndroidTest:

Implemented system animations disable during testing via my own library of classes and the gradle build script tasks and the AndroidManifest.xml files in androidTest.

Travis CI:

no-boot-anim fails on api-23 images so the travis CI stuff needs to not have used as a before script command.

Code QA:

Other than Android Lint, code qa will be executed on CI server. This way can work anywhere with even junk laptops and still have code QA results generated.

UIAutomator and Cucumber:

Due to UIAutomator not accessible until api 21 we use a replacement called Cucumber.

Usage

Changelog

Credits

Fred Grott(aka shareme GrottWorkShop) MyGithubProfile

Computer language polyglot focusing on designing and developing Android Java Applications to Launch people's lives for start-ups. Quality Java Software Engineer begets quality GUI-intensive mobile applications.

Only FUNDED start-ups and no recruiters(No recruiters, PLEASE!)

Repos

Github Bitbucket

Social

G+ Twitter Facebook Reddit GeekList

Bookmarks

Delicious

Design

DeviantArt BeHance Dribbble

StartUps

AngelList BuiltINChicago HackerNews FounderDating

Freelancing

GunIO

Questions

StackOverflow Quora

CV

LinkedIN Xing

Slides

SlideShare SpeakerDeck

Articles, Blogging

Medium Blogger blog Android Hacker Tumbler

Video

YouTube channel Ustream

AboutMe

AboutMe

License

Apache 2.0 License

Resources

Google Android Developer Site

Google Android Developer Tool Site

Google Android Developer Blog

StackOverflow Android Questions

Gradle

Reddit-androidev

AndroidChat at Slack

Amazon Android Dev Site

JavaRanch Android Forum

Android Development Tools G+ community

Android Development G+ Community

Android Developers G+ Community

Android Design G+ Community

UX Design for Developers

Android MVP G+ Community