Giter Site home page Giter Site logo

grettz / duckieai-app-test Goto Github PK

View Code? Open in Web Editor NEW

This project forked from adammc331/androidapptemplate

0.0 0.0 0.0 193 KB

This is a template repository with developer tooling already included so you can get up and running with confidence.

Shell 4.83% Ruby 8.41% Kotlin 86.76%

duckieai-app-test's Introduction

Android App Template

This is a GitHub template repository intended to kickstart development on an Android application. This project comes set with a handful of tools that Adam finds important and relevant to every project. If you think something is missing, or feel strongly that a setup should be changed, please submit an Issue.

Why This Template?

The purpose of this template is to avoid any opinions on writing code. The developers should have the freedom to choose their own architecture, third party dependencies, package structure, and more.

This template is opinionated about developer tooling. Dependency management is configured, git hooks are defined, code formatting and static analysis are all there, and it even has pull request templates. The purpose of this repo is to help you get started building your next project with confidence in your code, and not telling you how to write it.

Walkthrough

If you'd like a video walk through of this template and all it has to offer, you can find that on YouTube.

https://youtu.be/E0iMUWJn76E

Using This Template

To use this template in your own project, click the "Use this template" button at the top right of the repository. Once you do, a repository will be created for your account that you can clone and use on your device.

To setup this repository to your needs, open the setup.gradle file and tweak the renameConfig block to your needs. After that, you can run the renameTemplate gradle task to have the app module's package name and relevant strings replaced.

Cleanup

After this PR, running the renameTemplate task should do all the necessary cleanup like deleting the setup file and test workflow so you can go ahead and commit the renamed files and be on your way. If you encounter any problems with the setup workflow, please report a new issue.

What's Included

A number of third party dependencies are included in this template. They are also documented inside the documentation folder. The files inside this documentation folder are written in such a way that you can keep them in your real project, to let team members read up on why dependencies are included and how they work.

The dependencies in the template include:

  • Ktlint for formatting.
  • Detekt for code smells.
  • Git Hooks for automatically perform static analysis checks.
  • Gradle Versions Plugin for checking all dependencies for new versions.
  • GitHub Actions for running continuous integration and ensuring code quality with every PR.
  • LeakCanary for detecting memory leaks.
  • Hilt dependencies, which can be removed via setup.gradle if necessary.
  • Room dependencies, which can be removed via setup.gradle if necessary.

Danger

This template uses Danger which will perform some checks against our pull requests. You can find the list of checks in the Dangerfile. In addition, we have a GitHub Actions workflow for Danger checks. In order for that to work, you'll need a Danger API key setup in your GitHub secrets. Info on this can be found here.

Templates

There are also templates within this template. This repo comes shipped with a Pull Request Template that will help you and your team write organized and detailed pull request descriptions.

Dependency Setup

You may notice that dependencies are set up in a very specific way. Each of the tools has its own Gradle file in the buildscripts folder. This is by design so that if you chose to have a multi module project, these dependencies can easily be shared between them. This is already configured inside our root build.gradle.kts file, by applying to each sub project:

subprojects {
    apply from: "../buildscripts/detekt.gradle"
    apply from: "../buildscripts/versionsplugin.gradle"
}

In addition, all of the app module dependencies are defined using a gradle version catalog, found in this toml file.

duckieai-app-test's People

Contributors

adammc331 avatar duckie-ai-helper[bot] avatar grettz 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.