All Projects → ustwo → android-boilerplate

ustwo / android-boilerplate

Licence: Apache-2.0 license
Android Boilerplate à la ustwo

Programming Languages

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

Projects that are alternatives of or similar to android-boilerplate

Nytimes App
🗽 A Simple Demonstration of the New York Times App 📱 using Jsoup web crawler with MVVM Architecture 🔥
Stars: ✭ 246 (+472.09%)
Mutual labels:  android-development, android-application, android-architecture
Android Inappbilling
A sample which uses Google's Play Billing Library and it does InApp Purchases and Subscriptions.
Stars: ✭ 114 (+165.12%)
Mutual labels:  android-development, android-application, android-architecture
Dagger2 Sample
A sample app to demo how to implement dagger in Android using Dagger Android Support library
Stars: ✭ 72 (+67.44%)
Mutual labels:  android-development, android-application, android-architecture
Android Cleanarchitecture
This is a sample app that is part of a series of blog posts I have written about how to architect an android application using Uncle Bob's clean architecture approach.
Stars: ✭ 15,062 (+34927.91%)
Mutual labels:  android-development, android-application, android-architecture
Android Mvp Architecture
🏛 A basic sample android application to understand MVP in a very simple way. Just clone, build, run and understand MVP.
Stars: ✭ 203 (+372.09%)
Mutual labels:  android-development, android-application, android-architecture
Androidroom
Android example to show how to use Room to access SQLite database on device for reading and writing data. This example also shows how to use LiveData and ViewModel with Room to build reactive, well performing and easy to maintain applications.
Stars: ✭ 36 (-16.28%)
Mutual labels:  android-development, android-application, android-architecture
Cameraxdemo
A sample camera app with CameraX API from Android Jetpack
Stars: ✭ 112 (+160.47%)
Mutual labels:  android-development, android-application, android-architecture
Android Clean Architecture Boilerplate
An android boilerplate project using clean architecture
Stars: ✭ 3,534 (+8118.6%)
Mutual labels:  android-development, android-application, android-architecture
Android-daily-read-tips
log for articles and info in android for every developer
Stars: ✭ 13 (-69.77%)
Mutual labels:  android-development, android-application, android-architecture
Droid Feed
Aggregated Android news, articles, podcasts and conferences about Android Development
Stars: ✭ 174 (+304.65%)
Mutual labels:  android-development, android-application, android-architecture
Androidkex
Extensions for Kotlin. Use the power of Kotlin to make your code smaller and beautiful.
Stars: ✭ 35 (-18.6%)
Mutual labels:  android-development, android-application, android-architecture
Awesome Android Complete Reference
Awesome Android references for everything like best practices, performance optimization, etc.
Stars: ✭ 2,701 (+6181.4%)
Mutual labels:  android-development, android-application, android-architecture
Android Arsenal.com
Source to android-arsenal.herokuapp.com
Stars: ✭ 541 (+1158.14%)
Mutual labels:  android-development, android-application, android-architecture
Permissionsflow
A simple library to make it easy requesting permissions in Android using Kotlin Coroutines.
Stars: ✭ 49 (+13.95%)
Mutual labels:  android-development, android-application, android-architecture
Canaree Music Player
Complete music player published in the Play Store. Heavily relies on Dagger, kotlin coroutines and Clean architecture.
Stars: ✭ 371 (+762.79%)
Mutual labels:  android-development, android-application, android-architecture
Mediapicker
Easy customizable picker for all your needs in Android application
Stars: ✭ 105 (+144.19%)
Mutual labels:  android-development, android-application, android-architecture
Ibackdrop
A library to simply use Backdrop in your project (make it easy). Read more ->
Stars: ✭ 137 (+218.6%)
Mutual labels:  android-development, android-application, android-architecture
Modern Android Development
Modern Android Development tools & key points
Stars: ✭ 219 (+409.3%)
Mutual labels:  android-development, android-application, android-architecture
media-picker
Easy customizable picker for all your needs in Android application
Stars: ✭ 167 (+288.37%)
Mutual labels:  android-development, android-application, android-architecture
box
BOX is the Android framework from MyRealTrip which is a MVI architecture for Android apps that is created out of the box.
Stars: ✭ 38 (-11.63%)
Mutual labels:  android-development, android-architecture

Android Boilerplate

License Apache 2.0 ustwo twitter Platform Android

Description

Android boilerplate project to create new Android projects from. It provides basic architecture, tools and guidelines that we use when developing Android apps.

Getting started

First clone the boilerplate repository. Next, if you want to copy the boilerplate into your own repository follow Clone into your own repository. If you just want to get started with customising things for your own project skip onto Make it your own.

Clone into your own repository

Follow these steps if you have a repository with a branch you'd like to copy the boilerplate project into:

$ cd <path to boilerplate>
$ git remote add newrepo <path to newrepo>
$ git checkout --orphan copy
$ git commit -m "Copying boilerplate"
$ git push newrepo copy:<branch on new repo>

This will copy the boilerplate project without history to your own branch in your repository.

Make it your own

Personalise the boilerplate for your own project:

  1. Rename com.ustwo.boilerplate packages to your own domain's stucture. E.g com.mydomain.myapp. See StackOverflow for steps to easily accomplish this in Android Studio.

  2. Open app/build.gradle and change the following to match your new package names:

    • applicationId "com.mydomain.myapp"
    • testInstrumentationRunner "com.mydomain.myapp.application.ApplicationTestRunner"

Modules

This project consists of the following modules:

  • app, Phone & tablet module

Tools

  • Android Studio, Provides the fastest tools for building apps on every type of Android device.
  • Gradle, An open source build automation system.

Testing and CI

Circle

By default this boilerplate comes configured to run on CircleCI. The YML file circle.yml will setup the dependencies, run the tests configured in scripts/ci.sh and export relevant reports and artefacts.

If you have configured the environment variables defined in the "Firebase cloud testing" the tests will be run on the Firebase test lab otherwise your tests will be run on an emulator.

Firebase cloud testing

This boilerplate ships with Firebase cloud testing built in. You simply need to enter the following environment variables to make it work:

  • GCLOUD_SERVICE_ACCOUNT - The service account email address is listed in the Firebase console here: https://console.firebase.google.com/project/<projectId>/settings/serviceaccounts/adminsdk
  • GCLOUD_SERVICE_KEY - This is an export of the contents of the JSON secret file that can be obtained by generating a new private key here: https://console.firebase.google.com/project/<projectId>/settings/serviceaccounts/adminsdk
  • GCLOUD_PROJECT_ID - This is a unique identifier for your Firebase project which can be found in this project's URL: https://console.firebase.google.com/project/<projectId>

The cloud testing setup by default will run your instrumentation tests, take screenshots and save the test report and artefacts.

Signing and secrets

The repository contains two files responsible for secrets and signing; ci-keys.cipher and release.keystore.cipher respectivly. Both files have been encrypted using openssl aes-256-cbc with the key ustwoopensource. These files are intended solely as placeholders to allow you to make release builds and need to be replaced before releasing to the app store.

The current secret management implementation is simple when you have a small number of secrets or files that need encrypting and / or a small team. If you are working on a large project where access to secrets and files should be more carefully managed then we recommend using BlackBox by StackExchange.

Editing secrets

To add, view or edit secrets you first need to decrypt them using openssl:

openssl aes-256-cbc -d -out ci-keys -in ci-keys.cipher -k ustwoopensource

This will creat a file called ci-keys which you can then edit as needed and encrypt again using:

openssl aes-256-cbc -e -in ci-keys -out ci-keys.cipher -k ustwoopensource

The file ci-keys.cipher will then be ready to commit.

The same process can be used with release.keystore.cipher when you need to replace or change the keystore with your own details.

CI setup

For the secrets and keystore to be used by your CI server you will need to export the environment variable CI_SECRETS_KEY with the default key listed above or your own if you've re-encrypted the secrets and keystore yourself. You will also need to ensure that openssl is added as a dependency / installed by default.

Code Standards

Code of Conduct

Contributing

Please, take some time before starting a contribution to read our documentation

Updating gitignore

The gitignore file is generated using GitIgnore.io and using Android and Intellij for the selected technologies. This allows for easy updating when tools are updated or otherwise when required.

Note that gitignore is not setup to ignore common OS files like Thumbs.db or .DS_Store. For this we recommend creating a global gitignore file that will apply to all of your projects. This guide explains how. GitIgnore.io provides content for a variety of OS to copy and paste in.

Contact

[email protected]

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].