# ribot/android-guidelines

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/ribot-android-guidelines).**

5,007 stars · 1,349 forks · Apache-2.0

## Links

- GitHub: https://github.com/ribot/android-guidelines
- Homepage: http://ribot.co.uk/
- awesome-repositories: https://awesome-repositories.com/repository/ribot-android-guidelines.md

## Description

This project provides a set of Android development guidelines, architecture standards, and a coding style guide. It establishes uniform formatting and implementation rules to ensure code consistency and maintainability for applications built on the Android platform.

The project includes a standardized project structure template that defines consistent folder hierarchies and file layouts. These standards are designed to maintain a predictable development experience across multiple workstreams.

The guidelines cover architectural patterns including layer-based separation of business logic and presentation, feature-based module isolation, and unidirectional data flow. It also addresses the use of interface-driven dependency injection and a standardized package hierarchy.

## Tags

### Software Engineering & Architecture

- [Android Architectures](https://awesome-repositories.com/f/software-engineering-architecture/feature-based-project-structures/android-architectures.md) — Provides comprehensive structural patterns and modularization strategies for organizing Android application codebases.
- [Application Development Guidelines](https://awesome-repositories.com/f/software-engineering-architecture/application-development-guidelines.md) — Provides a comprehensive set of architectural, coding, and deployment standards for Android application development.
- [Code Style Guides](https://awesome-repositories.com/f/software-engineering-architecture/code-style-guides.md) — Includes a collection of uniform formatting and naming rules to ensure source code consistency.
- [Feature Modules with Routing](https://awesome-repositories.com/f/software-engineering-architecture/feature-based-project-structures/android-architectures/multi-module-architectures/feature-modules-with-routing.md) — Implements a multi-module architecture where functionality is grouped into distinct feature modules to reduce build times and dependencies.
- [Dependency Injection](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/dependency-injection.md) — Provides guidelines for decoupling components using interface-driven dependency injection to manage dependencies at runtime.
- [Domain Data Presentation Layers](https://awesome-repositories.com/f/software-engineering-architecture/logic-and-presentation-separation/domain-data-presentation-layers.md) — Defines a layered architecture pattern that separates the application into distinct domain, data, and presentation layers.
- [Project Folder Hierarchies](https://awesome-repositories.com/f/software-engineering-architecture/project-folder-hierarchies.md) — Establishes a standardized project folder hierarchy based on features and layers for predictable navigation.
- [Project Structure Standardization](https://awesome-repositories.com/f/software-engineering-architecture/project-structure-standardization.md) — Provides standards for consistent project folder and file layouts across multiple Android workstreams. ([source](https://github.com/ribot/android-guidelines))
- [Android Project Templates](https://awesome-repositories.com/f/software-engineering-architecture/project-structure-standardization/android-project-templates.md) — Ships a standardized project structure template defining consistent folder hierarchies for Android source code.
- [Unidirectional Data Flow Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/application-layer-architectures/state-management-architectures/action-reducer-architectures/unidirectional-data-flow-architectures.md) — Guidelines for implementing a unidirectional data flow architecture to manage state transitions from logic to UI.
- [Standardized Development](https://awesome-repositories.com/f/software-engineering-architecture/standardized-development.md) — Establishes uniform coding standards and structural layouts to ensure a consistent development experience. ([source](https://github.com/ribot/android-guidelines/blob/master/README.md))

### Mobile Development

- [Android App Architecture Patterns](https://awesome-repositories.com/f/mobile-development/android-app-architecture-patterns.md) — Defines architectural design patterns and structural guidelines for building maintainable Android applications. ([source](https://github.com/ribot/android-guidelines))

### Part of an Awesome List

- [Mobile Development Guides](https://awesome-repositories.com/f/awesome-lists/devtools/mobile-development-guides.md) — Coding standards for Android application development.
- [Platform and API Guidelines](https://awesome-repositories.com/f/awesome-lists/devtools/platform-and-api-guidelines.md) — Architecture and code guidelines for Android development.
