Files
TimeTracker/scripts/README-BUILD.md
T
Dries Peeters 1419712a60 feat: Add mobile (Flutter) and desktop (Electron) applications
- Add Flutter mobile app with authentication, timer, projects, and time entries
- Add Electron desktop app with system tray integration and offline support
- Implement offline storage with sync queue for both platforms
- Add comprehensive build scripts for cross-platform builds
- Include documentation and README files for both apps
- Add test suites for mobile and desktop applications
2026-01-11 08:37:28 +01:00

4.7 KiB

Build Scripts for TimeTracker Mobile and Desktop Apps

This directory contains build scripts for building the TimeTracker mobile (Flutter) and desktop (Electron) applications locally.

Quick Start

All Platforms (Linux/macOS)

# Make scripts executable (first time only)
chmod +x scripts/*.sh

# Build everything
./scripts/build-all.sh

# Build mobile only
./scripts/build-all.sh --mobile-only

# Build desktop only
./scripts/build-all.sh --desktop-only

# Build specific platform
./scripts/build-all.sh android    # Mobile Android
./scripts/build-all.sh ios        # Mobile iOS (macOS only)
./scripts/build-all.sh linux      # Desktop Linux
./scripts/build-all.sh macos      # Desktop macOS

Windows

REM Build everything
scripts\build-all.bat

REM Build mobile only
scripts\build-all.bat --mobile-only

REM Build desktop only
scripts\build-all.bat --desktop-only

REM Build Android only
scripts\build-all.bat --android-only

REM Build Windows only
scripts\build-all.bat --windows-only

Individual Build Scripts

Mobile App (Flutter)

Linux/macOS:

# Build Android
./scripts/build-mobile.sh android

# Build iOS (macOS only)
./scripts/build-mobile.sh ios

# Build all
./scripts/build-mobile.sh all

Windows:

REM Build Android
scripts\build-mobile.bat android

REM Build all
scripts\build-mobile.bat all

Desktop App (Electron)

Linux/macOS:

# Build for current platform
./scripts/build-desktop.sh current

# Build Windows (cross-platform, requires Wine on Linux)
./scripts/build-desktop.sh win

# Build macOS (macOS only)
./scripts/build-desktop.sh mac

# Build Linux (Linux only)
./scripts/build-desktop.sh linux

# Build all platforms
./scripts/build-desktop.sh all

Windows:

REM Build Windows installer
scripts\build-desktop.bat win

REM Build all platforms
scripts\build-desktop.bat all

Prerequisites

Mobile App (Flutter)

  • Flutter SDK 3.0.0 or higher
  • Android SDK (for Android builds)
  • Xcode (for iOS builds, macOS only)
  • Command line tools: flutter, dart

Desktop App (Electron)

  • Node.js 18+ and npm
  • Platform-specific build tools:
    • Windows: Visual Studio Build Tools or Visual Studio
    • macOS: Xcode Command Line Tools
    • Linux: Standard build tools (make, gcc, etc.)

Build Outputs

Mobile App

  • Android APK: mobile/build/app/outputs/flutter-apk/app-release.apk
  • Android AAB: mobile/build/app/outputs/bundle/release/app-release.aab
  • iOS: mobile/build/ios/iphoneos/Runner.app (requires Xcode for distribution)

Desktop App

  • Windows: desktop/dist/*.exe (NSIS installer)
  • macOS: desktop/dist/*.dmg
  • Linux: desktop/dist/*.AppImage and desktop/dist/*.deb

Troubleshooting

Flutter Issues

  • "Flutter not found": Add Flutter to your PATH or install Flutter SDK
  • "Android SDK not found": Install Android Studio and configure Android SDK
  • Build fails: Run flutter doctor to check configuration

Electron Issues

  • "Node.js not found": Install Node.js 18+ from nodejs.org
  • Build fails on Windows: Install Visual Studio Build Tools
  • Icons missing: Create placeholder icons in desktop/assets/ or update build config

Platform-Specific Issues

Linux:

  • May need to install: libnss3-dev, libgconf-2-4, libxss1

macOS:

  • iOS builds require Xcode and signing certificates
  • May need to accept Xcode license: sudo xcodebuild -license accept

Windows:

  • May need Visual Studio Build Tools for native modules
  • Some builds may require administrator privileges

Advanced Options

Build Flags

The main build script supports various flags:

Linux/macOS:

# Build only mobile
./scripts/build-all.sh --mobile-only

# Build only desktop
./scripts/build-all.sh --desktop-only

# Build only Android
./scripts/build-all.sh --android-only

# Build only iOS (macOS)
./scripts/build-all.sh --ios-only

# Build only Linux desktop
./scripts/build-all.sh --linux-only

# Build only macOS desktop
./scripts/build-all.sh --macos-only

Windows:

REM Similar flags available
scripts\build-all.bat --mobile-only
scripts\build-all.bat --desktop-only
scripts\build-all.bat --android-only
scripts\build-all.bat --windows-only

CI/CD Integration

These scripts are designed to work in CI/CD environments:

# Example GitHub Actions
- name: Build Mobile
  run: ./scripts/build-mobile.sh android

- name: Build Desktop
  run: ./scripts/build-desktop.sh current

Notes

  • Build scripts will create necessary directories automatically
  • First build may take longer due to dependency downloads
  • Release builds require code signing for distribution (not handled by scripts)
  • Some builds may require manual configuration (e.g., iOS code signing)