Andcre (android creator) is a python script to avoid boilerplate configs, code etc and create professional and ready to use Android projects.
andcre works with
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 to the
$PATH to execute this program from any place!
Android project requeriments
To compile the generated project we need:
- Java 1.7 or greater (1.8 recommended)
- Latest Android SDK
- Latest Android build tools
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.
- Create automatically a
README.mdfile, that contains the project name.
- Create a
CHANGELOG.mdfile and automatically write the name of the current version and the current date
- Create the
- Create the
.gitignorefile with the common android ignored files/directories
- Create the root
The 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 and application dependencies)
version.gradle: Contain all things related to the project version
project.gradle: Project properties like target sdk, build tools version etc
version.gradle file is based in this great post from Dmytro Danylyk on hackernoon
The gradle version used is the
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
All quality files are from this fantastic repo!
App debug options
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:
- Detect all kind of problems and log it using the
LeakCanary. Only compile in
- Initialize the default values for
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.
- For the debug type a
- For the release type a custom
CrashReportingTree()is created. This tree discards automatically all
VERBOSElogs, and can be able to report all errors and warnings using the
The applicatiod id for the debug build type has the
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:
- For the
- For the
Include open source notices
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
- Android support libraries: app-compat, constraint-layout
- Google OSS Licenses
- Retrofit 2 & Gson converter
For application debug, I included:
For application testing:
Final Android project
The result project structure is like this:
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.