Avoid boilerplate configs, code etc and start Android applications like a pro, with a lot of fantastic features!
OTHER License
Andcre (android creator) is a python script to avoid boilerplate configs, code etc and create professional and ready to use Android projects.
"Project created with andcre"
andcre works with python3
First clone this repo
$ git clone https://github.com/fooock/andcre.git
$ cd andcre
Now install the dependencies
$ pip3 install -r requirements.txt
Create the environment variable ANDCRE to point to your android workspace. This is where the android projects will be created.
$ export ANDCRE=/home/user/AndroidProjects
If the environment variable is not set, the program will request it every time a new project is created
Execute the script or set the andcre.bat
or andcre
to the $PATH
to execute this program from any place!
To compile the generated project we need:
andcre
create android projects with a lot of useful files and tools. It include support for android lint, findbugs, checkstyle and pmd. Automatically create a git repo, add all project files, commit it and create the first tag.
README.md
file, that contains the project name.CHANGELOG.md
file and automatically write the name of the current versionTODO.md
fileLICENSE
file.gitignore
file with the common android ignored files/directoriesbuild.gradle
fileThe andcre script create a folder in the root project directory called buildsystem
.
It contains three files:
dependencies.gradle
: Contains the dependencies of the project (test dependencies andversion.gradle
: Contain all things related to the project versionproject.gradle
: Project properties like target sdk, build tools version etcThe version.gradle
file is based in this great post from Dmytro Danylyk on hackernoon
The gradle version used is the gradle-4.3.1
In the project root, a directory called quality
is created. It contains all files needed to execute the static analysis tools and style checkers like findbugs, checkstyle, pmd and android lint. To generate all these reports execute
$ ./gradlew check
Note that if you add more modules to the project, this task is applied. The reports are generated in the <project>/app/build/reports
directory
All quality files are from this fantastic repo!
The application create a custom DefaultApplication
for the debug
builds and initialize for default custom configurations not needed in application releases. The debug options are:
Timber
with the Timber.DebugTree()
StrictMode.setThreadPolicy()
and StrictMode.setVmPolicy
methods.LeakCanary
. Only compile in debugCompile
(see app/build.gradle)Stetho
Note: This configuration only applies to debug builds!
When the project is created a new git repository is initialized. You can use the gradle task printVersion
to check out it.
For default the AndroidManifest.xml
has the INTERNET
permission. For each build type (debug/release) a DefaultApplication
is created with different log configurations.
Timber.DebugTree()
is initialized.CrashReportingTree()
is created. This tree discards automatically all DEBUG
and VERBOSE
logs, and can be able to report all errors and warnings using the CrashLibrary
classThe applicatiod id for the debug build type has the .debug
suffix.
All apk's are generated in the build/outputs/apk
directory. The name of the apk correspond to the project name with the current version. For example, your module name is app
, and the version is 0.1
, the resulting apk's will be:
debug
build type: app-0.1-debug.apk
release
build type: app-0.1-release.apk
The play-services-oss-licenses
library is included to show the list of licenses used by the libraries included in the application. To show the list you only need to call the code:
final Intent intent = new Intent(this, OssLicensesMenuActivity.class);
startActivity(intent);
You can change the activity title. For more info see the documentation
For application debug, I included:
For application testing:
The result project structure is like this:
Open an issue or create a new pull request
Copyright 2017 newhouse (nhitbh at gmail dot com)
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.