creek

The AI Image Editor of 2030

shell.nix (1517B)


{
  pkgs ? import <nixpkgs> { allowUnfree = true; },
}:

let
  androidEnv = pkgs.callPackage "${toString pkgs.path}/pkgs/development/mobile/androidenv" {
    inherit pkgs;
    licenseAccepted = true;
  };

  buildTools = "35.0.0";
  inherit
    (androidEnv.composeAndroidPackages {
      cmdLineToolsVersion = "8.0";
      toolsVersion = "26.1.1";
      platformToolsVersion = "35.0.2";
      buildToolsVersions = [ buildTools ];
      includeEmulator = false;
      platformVersions = [
        "33"
        "34"
        "35"
        "36"
      ];
      includeSystemImages = false;
      includeSources = false;
      cmakeVersions = [ "3.22.1" ];
      includeNDK = true;
      ndkVersions = [
        "28.2.13676358"
        "27.0.12077973"
        "26.3.11579264"
      ];
      extraLicenses = [
        "android-sdk-license"
        "android-sdk-preview-license"
      ];
    })
    androidsdk
    ;

in
pkgs.mkShell rec {
  name = "Android";
  packages = with pkgs; [
    jdk
    kotlin
    gradle
    flutter

    androidsdk
    pkg-config
  ];

  shellHook = ''echo "## Android Development Shell ##"'';
  JAVA_HOME = pkgs.jdk;
  GRADLE_HOME = "${pkgs.gradle}/lib/gradle";
  GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${androidsdk}/libexec/android-sdk/build-tools/${buildTools}/aapt2";
  FLUTTER_ROOT = pkgs.flutter;
  DART_ROOT = "${FLUTTER_ROOT}/bin/cache/dart-sdk";
  ANDROID_SDK_ROOT = "${androidsdk}/libexec/android-sdk";
  ANDROID_NDK_ROOT = "${ANDROID_SDK_ROOT}/ndk-bundle";
}