Skip to content

Add support for customizable project template #1604

Description

@aungsimin07

Issue Checklist

  • I confirm that this feature request has not been previously suggested.
  • I agree to follow the project's code of conduct.
  • I have checked and verified that I am using the latest version of Code on the Go from GitHub or App Dev for All.

Additional terms

  • I understand that feature requests are subject to evaluation and may not be implemented immediately.
  • I agree to provide additional details if needed for a clearer understanding of the requested feature.

Feature description

Currently, the "New project" screen provides a fixed set of predefined templates (such as Empty Activity, Basic Activity, etc.).
​I am requesting a feature that allows users to create, import, and manage fully customizable project templates. The default templates often include outdated Gradle distribution versions, legacy Android Gradle Plugin (AGP) versions, or older AndroidX libraries that do not align with the developer's current preferences.
​Adding support for custom templates would allow developers to define their own starter kits, complete with adjustable library dependencies, pre-configured resources, and bundled common Java utilities.

Use Case

When starting a new project, developers usually have a preferred project structure, specific library versions they rely on, and a set of boilerplate utility classes they reuse frequently.
Instead of generating a project from the default templates and spending unnecessary time manually updating Gradle build files, modifying AGP versions, and copying over standard utilities, a developer could simply select their own custom template. For example, a user could create a "Personal Starter Kit" template that already includes the latest AndroidX libraries, their preferred Gradle configuration, and a predefined folder structure, allowing them to start coding their core logic immediately.

Benefits

  • Increased Productivity: Eliminates the repetitive and time-consuming process of manually updating Gradle/AGP versions and restructuring basic project setups every time a new project is created.
  • Developer Flexibility: Empowers users to tailor their starter projects to their specific workflows, such as including custom Java utilities or tailored UI resources right out of the box.
  • Future-Proofing: Users are no longer restricted to the specific library versions shipped with the app's default templates. They can independently maintain their own templates with the latest dependencies.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions