1
0
Fork 0
mirror of https://github.com/s-frick/effigenix.git synced 2026-03-28 08:29:36 +01:00

feat(scanner): Mobile Scanner App mit echten Produktionsaufträgen

Scanner-App  Tauri v2 Android App mit
Login, Barcode-Scanner, Consume/Move/Book-Flows und Aufgabenliste.

TasksPage lädt echte RELEASED/IN_PROGRESS Produktionsaufträge via API,
Consume-Flow nutzt den konkreten Auftrag für korrekte Rezept-Skalierung
statt blind den ersten IN_PROGRESS-Auftrag zu nehmen.

Backend: FindStockByBatchId Use Case + REST-Endpoint für Stock-Lookup
per Chargennummer.
This commit is contained in:
Sebastian Frick 2026-03-20 13:58:54 +01:00
parent 72979c9537
commit bf09e3b747
93 changed files with 8977 additions and 60 deletions

View file

@ -14,7 +14,13 @@
flake-utils.lib.eachDefaultSystem (system:
let
overlays = [ (import rust-overlay) ];
pkgs = import nixpkgs { inherit system overlays; };
pkgs = import nixpkgs {
inherit system overlays;
config = {
allowUnfree = true;
android_sdk.accept_license = true;
};
};
rustToolchain = pkgs.rust-bin.stable.latest.default.override {
extensions = [ "rust-src" "rust-analyzer" ];
@ -25,6 +31,23 @@
"x86_64-linux-android"
];
};
# ─── Android SDK ──────────────────────────
androidComposition = pkgs.androidenv.composeAndroidPackages {
cmdLineToolsVersion = "8.0";
platformToolsVersion = "35.0.1";
buildToolsVersions = [ "34.0.0" "35.0.0" ];
platformVersions = [ "34" "36" ];
abiVersions = [ "x86_64" ];
includeNDK = true;
ndkVersions = [ "27.0.12077973" ];
includeSystemImages = true;
systemImageTypes = [ "google_apis_playstore" ];
includeEmulator = true;
useGoogleAPIs = true;
};
androidSdk = androidComposition.androidsdk;
androidHome = "${androidSdk}/libexec/android-sdk";
in
{
devShells.default = pkgs.mkShell {
@ -52,6 +75,13 @@
harfbuzz
atk
# ─── Backend ─────────────────────────
jdk21
# ─── Android ───────────────────────────
androidSdk
jdk17
# ─── Tools ─────────────────────────────
just
jq
@ -68,13 +98,36 @@
openssl
]);
ANDROID_HOME = androidHome;
ANDROID_SDK_ROOT = androidHome;
ANDROID_NDK_ROOT = "${androidHome}/ndk/27.0.12077973";
JAVA_HOME = "${pkgs.jdk21}";
# NixOS: Gradle's aapt2 von Maven ist dynamisch gelinkt und läuft nicht.
# Wir zeigen auf das aapt2 aus den Nix-bereitgestellten build-tools.
GRADLE_OPTS = "-Dandroid.aapt2FromMavenOverride=${androidHome}/build-tools/35.0.0/aapt2";
shellHook = ''
echo "Node $(node --version)"
echo "pnpm $(pnpm --version)"
echo "rustc $(rustc --version)"
echo "cargo $(cargo --version)"
echo "Java $(java --version 2>&1 | head -1)"
echo ""
echo "ANDROID_HOME=$ANDROID_HOME"
echo ""
echo "just --list für alle Befehle"
# Tauri mobile dev: Ports 1420 (Vite) + 1421 (HMR) in der NixOS-Firewall öffnen
if [[ "''${EFFIGENIX_OPEN_FW:-}" == "1" ]]; then
echo ""
echo "Opening firewall ports 1420/1421 for Tauri mobile dev..."
sudo iptables -C nixos-fw -p tcp --dport 1420 -j ACCEPT 2>/dev/null \
|| sudo iptables -I nixos-fw 3 -p tcp --dport 1420 -j ACCEPT
sudo iptables -C nixos-fw -p tcp --dport 1421 -j ACCEPT 2>/dev/null \
|| sudo iptables -I nixos-fw 3 -p tcp --dport 1421 -j ACCEPT
echo "Done."
fi
'';
};
});