Flutter setup on NixOS (with dev flakes)

Has anyone had success setting up flutter with flakes?

I have tried this: GitHub - Arthurdw/demo-flutter-issue

But am having some issues with gradle.

Hi, I see you’ve tried doing Android development with Flutter. Unfortunately, this is something which is kinda difficult atm with nixpkgs and Flutter. I’m not sure how to exactly resolve the gradle issues without any logs for it. However, if you’d like you can join the #flutter+nix:nixos.org Matrix chat.

The solution I have managed before is Android Studio inside a Flatpak and cloning Flutter’s repo. However, that isn’t an option for me anymore due to being on aarch64 systems nowadays.

To build android dev environment with home-manager, I apply a nix script:

{ pkgs, lib, ... }: {
  home.packages = with pkgs; [
    zulu17

    # required by android sdkmanager
    coreutils
    gawk

    (pkgs.stdenv.mkDerivation{
      name = "sdmanager-unofficial";
      src = pkgs.sdkmanager;
      installPhase = ''
        mkdir -p $out/bin
        cp ${pkgs.sdkmanager}/bin/sdkmanager $out/bin/sdkmanager-unofficial
      '';
    })

  ];

  home.sessionVariables = {
    JAVA_HOME = pkgs.zulu17.override { };
    ANDROID_SDK_ROOT = "$HOME/android-sdk/";
    ANDROID_AVD_HOME = "$HOME/.config/.android/avd";
  };
  home.sessionPath = [
    "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin"
    "$ANDROID_SDK_ROOT/platform-tools"
    "$ANDROID_SDK_ROOT/build-tools/35.0.0"
    "$ANDROID_SDK_ROOT/emulator"
  ];

  home.activation.sdkmanager = lib.hm.dag.entryAfter["writeBoundary"] ''
    export ANDROID_SDK_ROOT="$HOME/android-sdk/"
    mkdir -p "$ANDROID_SDK_ROOT"

    $HOME/.nix-profile/bin/sdkmanager-unofficial "cmdline-tools;latest"

    export PATH=${pkgs.gawk}/bin/:$PATH
    $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager "platform-tools" "build-tools;35.0.0" "platforms;android-35"
    $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager "emulator" "system-images;android-35;google_apis_playstore;arm64-v8a"

    $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --licenses

    $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/avdmanager create avd --name fhone1 --package "system-images;android-35;google_apis_playstore;arm64-v8a" --device "pixel_6"
  '';
}