/zeta

Clean architecture & Bootstrap project

Primary LanguageJavaApache License 2.0Apache-2.0

Zeta Bootstrap

Zeta

Platform SDK Release Build Status CircleCI codecov

Get it on Google Play

###What is project Zeta?

Zeta is a bootstrap Android application. Zeta stands ready to take your project off the ground quickly, without sacrificing flexible architecture or incurring technical debt by its absence.

What does Zeta do for me?

Starting a blank Android project carries many hidden costs. You may have tried creating a new project only to find you still need to ...

  • Include state of the art libraries
  • Configure multiple build types (testing, dev, prod)
  • Set up common dependency injection scopes, modules, components
  • Create base classes for activities, fragments, presenters
  • Wire up intelligent logging that is enabled in development but deactivates in production.
  • Configure Pro-Guard all over again

In the worst case, you even delayed some of the above as technical debt. Zeta comes with these (and more) pre-configured, so you can start writing your code, now.

With Zeta there's no reason to do without common good practices, even in your prototypes.

###What do I need to do to start using Zeta?

In three words: fork and go.

Fork the Zeta project, and change the package name.

Zeta has baked in some conservative choices about architecture and design patterns, while trying not to impose too many opinions about how to shape your application. You'll find familiar concepts, configured by experienced developers that have been shipping stable Android applications to millions of active users for years.

Patterns Like

  1. MVP
  2. Dependencies Injection via Dagger 2
  3. Retrofit and OkHttp, backed by injected OkHttpClient (and thereby easily configurable)
  4. Rx Observable, and related custom handlers for easy integration into new Fragments and Activities
  5. AutoValue for safe data types
  6. Logging that never touches production
  7. Common Android gotchas, pre-caught and intelligently handled.

###That's nice, What else?

Other features that are are often skipped by rushed developers:


###Build (cmd + f9) Project Zeta comes with three different build variants plus with two different flavor.

Build variants

  1. Debug
  2. Release
  3. Automation

Build flavor

  1. Free
  2. Paid

You will probably want to change these defaults to align with your project's needs, but take note that automation builds are set up so that you can point to mock data. This is useful for running automated test scripts without invoking a real data layer. The Debug variant comes configured with logging enabled, and is typically what you'll be building as you develop on your local machine.

You may not need the build flavors Free and Paid, but observe that Zeta is prepared to check against the current build flavor and respond by enabling or disabling any features you choose.

Also, all these build can coexist in the same device.

Zeta

  • Release build
  • (A) Automation build
  • (D) Debug build

Oh, and don't forget Continuous Integration:

  1. Integration with Travis .travis.yml
  2. Integration of the Circle CI circle.yml

Automate all the builds Yay!

LICENCE

Zeta by Manjunath Chandrashekar, Manij Shrestha, Collin Flynn is licensed under a Apache License 2.0.

Copyright 2016 Manjunath Chandrashekar, Manij Shrestha, Collin Flynn.

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.