Flutter: Difference between revisions
imported>ANicon111 removed vscodium, since it's not actually necessary |
imported>ANicon111 m added android dependencies for building |
||
Line 14: | Line 14: | ||
at-spi2-core.dev clang cmake dbus.dev flutter gtk3 libdatrie libepoxy.dev util-linux.dev libselinux libsepol libthai libxkbcommon ninja pcre pcre2.dev pkg-config xorg.libXdmcp xorg.libXtst | at-spi2-core.dev clang cmake dbus.dev flutter gtk3 libdatrie libepoxy.dev util-linux.dev libselinux libsepol libthai libxkbcommon ninja pcre pcre2.dev pkg-config xorg.libXdmcp xorg.libXtst | ||
#android build | #android build | ||
(android-nixpkgs.sdk (sdkPkgs: with sdkPkgs; [cmdline-tools-latest build-tools-32-0-0 platform-tools platforms-android-31 system-images-android-31-default-x86-64 emulator])) jdk8 unzip | (android-nixpkgs.sdk (sdkPkgs: with sdkPkgs; [cmdline-tools-latest build-tools-32-0-0 tools patcher-v4 platform-tools platforms-android-31 system-images-android-31-default-x86-64 emulator])) jdk8 unzip | ||
#web build | #web build | ||
chromium | chromium |
Revision as of 07:39, 3 February 2023
Developement enviroment
To be able to build flutter apps, you need to add the platform-specific dependencies to your environment. This may be done by running nix-shell
using a shell.nix configuration:
{ pkgs ? import <nixpkgs> {} }:
let android-nixpkgs = (pkgs.callPackage (import (builtins.fetchGit {url = "https://github.com/tadfisher/android-nixpkgs.git";})) {channel = "stable";});
in pkgs.mkShell {
buildInputs = with pkgs; [
#basics
flutter git
#linux build
at-spi2-core.dev clang cmake dbus.dev flutter gtk3 libdatrie libepoxy.dev util-linux.dev libselinux libsepol libthai libxkbcommon ninja pcre pcre2.dev pkg-config xorg.libXdmcp xorg.libXtst
#android build
(android-nixpkgs.sdk (sdkPkgs: with sdkPkgs; [cmdline-tools-latest build-tools-32-0-0 tools patcher-v4 platform-tools platforms-android-31 system-images-android-31-default-x86-64 emulator])) jdk8 unzip
#web build
chromium
];
#declaring FLUTTER_ROOT
FLUTTER_ROOT = pkgs.flutter;
#libepoxy workaround
LD_LIBRARY_PATH = "${pkgs.libepoxy}/lib";
#web chrome and dart-sdk workaround
CHROME_EXECUTABLE = "chromium";
shellHook = ''
if ! [ -d $HOME/.cache/flutter/ ]
then
mkdir $HOME/.cache/flutter/
fi
ln -f -s ${pkgs.flutter}/bin/cache/dart-sdk $HOME/.cache/flutter/
'';
}
This file uses the tool android-nixpkgs made by tadfisher to get all the android dependencies (be sure to change the package versions/branch to your needs; they can be found here: https://github.com/tadfisher/android-nixpkgs/tree/main/channels )
Also be sure to run avdmanager create avd -n "Android" -k "system-images;android-31;default;x86_64"
to create an android emulator