![Get it on Google Play](https://cloud.githubusercontent.com/assets/1502341/17841713/0670bc32-67e1-11e6-907e-2f850d755b8f.png)
###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.
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
- MVP
- Dependencies Injection via Dagger 2
- Retrofit and OkHttp, backed by injected
OkHttpClient
(and thereby easily configurable) - Rx
Observable
, and related custom handlers for easy integration into newFragment
s andActivities
AutoValue
for safe data types- Logging that never touches production
- Common
Android
gotchas, pre-caught and intelligently handled.
###That's nice, What else?
Other features that are are often skipped by rushed developers:
-
How about Static code analysis?
-
And some Developer Quality-Of-Life settings?
###Build
(cmd + f9
)
Project Zeta comes with three different build variants plus with two different flavor.
Build variants
- Debug
- Release
- Automation
Build flavor
- Free
- 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.
- Release build
- (A) Automation build
- (D) Debug build
Oh, and don't forget Continuous Integration:
Automate all the builds Yay!
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.