Files
Uno/shell.nix
T
TapTap 786b813f7b feat: UNO Kotlin Multiplatform app (Android, Desktop, Web)
- Full UNO game logic with AI opponents
- Compose Multiplatform UI with animations
- Shared module (commonMain) with game engine
- Desktop app (Compose Desktop)
- Android app (Compose Multiplatform)
- Web app (Kotlin/Wasm)
- Nix shell for reproducible dev environment
2026-08-02 18:21:57 +02:00

62 lines
1.5 KiB
Nix

{
pkgs ? import <nixpkgs> { config.allowUnfree = true; },
}:
let
androidSdk = pkgs.androidenv.composeAndroidPackages {
buildToolsVersions = [ "35.0.0" ];
platformVersions = [ "35" ];
abiVersions = [ "x86_64" ];
includeEmulator = false;
includeSystemImages = false;
includeNDK = false;
};
in
pkgs.mkShell {
buildInputs = with pkgs; [
jdk21
kotlin
gradle
androidSdk.androidsdk
android-tools
libGL
libX11
libXcursor
libXext
libXi
libXrender
fontconfig
libxkbcommon
];
shellHook = ''
ln -sfn ${pkgs.jdk21}/lib/openjdk .jdk
export ANDROID_HOME="${androidSdk.androidsdk}/libexec/android-sdk"
export ANDROID_SDK_ROOT="${androidSdk.androidsdk}/libexec/android-sdk"
export GRADLE_OPTS="-Dorg.gradle.java.installations.paths=${pkgs.jdk21}/lib/openjdk"
export PATH="$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools/bin:$JAVA_HOME/bin:$PATH"
export LD_LIBRARY_PATH=${
pkgs.lib.makeLibraryPath [
pkgs.libGL
pkgs.libX11
pkgs.libXcursor
pkgs.libXext
pkgs.libXi
pkgs.libXrender
pkgs.fontconfig
pkgs.libxkbcommon
]
}
echo "sdk.dir=$ANDROID_HOME" > local.properties
echo "=== UNO KMP Dev Shell ==="
echo "JDK: $(java -version 2>&1 | head -1)"
echo "Kotlin: $(kotlin -version 2>&1 | head -1)"
echo "Gradle: $(gradle --version 2>&1 | grep 'Gradle')"
echo "Android: $ANDROID_HOME"
echo "========================"
'';
}