Skip to content

Add VS Code Dev Container for reproducible development environment #807

@KidScripty

Description

@KidScripty

Checklist

  • I made sure that there are no existing issues - open or closed - to which I could contribute my information.
  • I made sure that there are no existing discussions - open or closed - to which I could contribute my information.
  • I have read the FAQs inside the app (Menu -> About -> FAQs) and my problem isn't listed.
  • I have taken the time to fill in all the required details. I understand that the request will be dismissed otherwise.
  • This issue contains only one feature request.
  • I have read and understood the contribution guidelines.

Feature description

Summary

Provide a lightweight VS Code devcontainer to simplify onboarding and ensure reproducible builds. The devcontainer will supply a matching JDK and Android SDK components so contributors can build the project without installing them locally.

Scope

  • Add a .devcontainer/ folder containing:
    • Dockerfile to install OpenJDK 17 and Android command-line tools.
    • devcontainer.json to expose JAVA_HOME and ANDROID_SDK_ROOT, recommend extensions, and run a post-create script.
    • post-create.sh to accept SDK licenses and install platform-tools, platforms;android-36, and a pinned build-tools version.
  • Add a short README note describing how to open the repository in the devcontainer and run a build (./gradlew clean assembleDebug).

Benefits

  • Lowers setup friction for contributors.
  • Ensures a consistent toolchain (JDK and Android SDK versions).
  • Reduces environment-related build failures.

Acceptance criteria

  • The repository contains a .devcontainer/ folder with the Dockerfile and devcontainer.json.
  • Opening the repo in VS Code Remote-Containers builds the container and enables running the Gradle wrapper to produce a debug APK.
  • Documentation briefly explains how to use the devcontainer.

Notes

  • First build requires network access to download SDK components.
  • Emulators are out-of-scope due to nested virtualization; recommend physical devices or CI-based emulators.
  • JDK 17 is recommended because the project targets Java 17 and Kotlin jvmTarget 17.

Contribution caveat

I’m opening this issue with the intent to implement the devcontainer myself, but per the project guidelines contributions must start from a triaged issue—please triage/approve this issue so I can submit a PR.

Why do you want this feature?

Why I want this

  • I want to implement the devcontainer myself to learn the repository structure and provide a reproducible environment for contributors.
  • It will make it easier for new contributors (including me) to build and test changes without manual JDK/Android SDK setup.
  • Once this issue is triaged and approved I will submit a PR that adds the .devcontainer files and a short README

Additional information

Metadata

Metadata

Assignees

No one assigned

    Labels

    wontfixThis will not be worked on or it is working as intended

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions