Giter VIP home page Giter VIP logo

parrot's Introduction

๐Ÿฆœ Parrot

Parrot is my toy project designed to explore multi-module Android configurations and eventually Android Media3.

Table of Contents

Overview

Parrot is a multi-module Android project that focuses on experimenting with different Android architecture patterns and features. The primary goal is to provide a sandbox for learning and trying out new concepts related to Android app development.

Plugins

The project leverages several custom plugins created in the build-logic directory to streamline the development process. These plugins offer pre-configured settings and dependencies for different module types:

  • ParrotBaseAndroidPlugin: This base plugin should be applied to all Android modules in the project. It configures common settings and dependencies, such as compileSdk, defaultConfig, packaging, build types, compile options, and Kotlin settings. It also applies other necessary plugins like "org.jetbrains.kotlin.android" and "kotlin-kapt."

  • ParrotAndroidAppPlugin: This plugin is specifically designed for applying to "app" modules. It automatically applies essential plugins like "com.android.application," "org.jetbrains.kotlin.android," "parrot-android-base-plugin," and "parrot-compose-plugin." It configures the targetSdk and applies common settings to the "app" module.

  • ParrotAndroidFeaturePlugin: This plugin should be applied to Android feature modules. It applies the necessary plugins like "com.android.library," "org.jetbrains.kotlin.android," "parrot-android-base-plugin," and "parrot-compose-plugin."

  • ParrotComposePlugin: This plugin enables Jetpack Compose and configures related dependencies for Android modules. It handles settings related to Jetpack Compose, such as enabling build features and specifying the Kotlin compiler extension version.

  • ParrotAnvilPlugin: This plugin adds Anvil-related dependencies to the module where it's applied.

  • ParrotHiltPlugin: This plugin adds Hilt-related dependencies to the module where it's applied. It simplifies the process of adding Hilt's annotation processor and runtime dependencies.

Dependency Management

Parrot uses a libs.versions.toml file to manage dependencies and their versions. This approach centralizes version control, ensuring consistent dependency versions across modules. The custom libs function in the buildSrc directory simplifies the retrieval of dependency versions defined in the version catalog.

License

This project is licensed under the MIT License.

parrot's People

Contributors

kevineder avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.