AeThex-OS/LAUNCHER_QUICKSTART.md

308 lines
7.8 KiB
Markdown

# AeThex Desktop Launcher - Quick Start Guide
## 🎯 What Has Been Built
A complete desktop application launcher similar to Battle.net and Epic Games Launcher, featuring:
**Modern UI**
- Battle.net/Epic-style interface with grid/list views
- Tab-based navigation (Library, Store, Updates, Downloads)
- Progress tracking for installations
- Play time and last played stats
**Desktop Integration**
- System tray support (minimize to tray)
- Native window controls
- Auto-updater integration
- Cross-platform (Windows, macOS, Linux)
**App Management**
- Launch apps from library
- Install/uninstall apps
- Track download progress
- Check for updates
**Build System**
- Automated build scripts for all platforms
- GitHub Actions CI/CD workflow
- Platform-specific installers (MSI, DMG, DEB, AppImage)
## 🚀 Quick Start
### For Development
```bash
# Install dependencies
npm install
# Run in development mode (opens launcher UI)
npm run dev:launcher
```
This will start the Tauri dev server with hot-reload enabled.
### For Production Build
```bash
# Build for your current platform
npm run build:launcher
# Or use the build script
./build-launcher.sh # Linux/macOS
.\build-launcher.ps1 # Windows PowerShell
```
### Platform-Specific Builds
```bash
# Windows
npm run build:launcher:windows
# macOS (requires macOS to build)
npm run build:launcher:macos
# Linux
npm run build:launcher:linux
```
## 📁 What Was Created
### New Files
1. **UI Components**
- `client/src/components/DesktopLauncher.tsx` - Main launcher UI component
- `client/src/pages/launcher.tsx` - Launcher page
2. **Backend/Tauri**
- `src-tauri/src/lib.rs` - Enhanced with launcher commands
- `src-tauri/Cargo.toml` - Updated with new dependencies
- `src-tauri/tauri.conf.json` - Updated with launcher config
3. **Build System**
- `build-launcher.sh` - Unix/Linux build script
- `build-launcher.ps1` - Windows PowerShell build script
- `.github/workflows/build-launcher.yml` - CI/CD workflow
4. **Documentation**
- `LAUNCHER_README.md` - Complete launcher documentation
- `LAUNCHER_BUILD.md` - Detailed build instructions
- `LAUNCHER_QUICKSTART.md` - This file
### Modified Files
1. **Routing**
- `client/src/App.tsx` - Added `/launcher` route
2. **Package Scripts**
- `package.json` - Added launcher build scripts
## 🎨 Features Overview
### Library Tab
- See all installed applications
- Launch button for quick access
- Switch between grid and list views
- View play time and last played date
### Store Tab
- Browse available applications
- Install new apps with one click
- Featured apps section
### Updates Tab
- Check for app updates
- View update history
- One-click update all
### Downloads Tab
- Track active downloads
- See installation progress
- Manage download queue
## 🔧 How It Works
### Architecture
```
┌─────────────────────────────────────┐
│ React UI (DesktopLauncher.tsx) │
│ - Library, Store, Updates, etc. │
└──────────────┬──────────────────────┘
│ Tauri IPC
┌──────────────▼──────────────────────┐
│ Rust Backend (lib.rs) │
│ - launch_app() │
│ - install_app() │
│ - uninstall_app() │
│ - check_for_updates() │
└──────────────┬──────────────────────┘
Native OS APIs
```
### Tauri Commands
The Rust backend exposes these commands to the frontend:
- **`launch_app(app_id)`** - Opens an application in a new window
- **`install_app(app_id)`** - Downloads and installs an app
- **`uninstall_app(app_id)`** - Removes an installed app
- **`check_for_updates()`** - Checks for available updates
- **`get_installed_apps()`** - Returns list of installed apps
- **`open_app_folder(app_id)`** - Opens app folder in file explorer
### System Tray
The launcher minimizes to system tray with:
- Left click: Show/hide window
- Right click: Context menu (Show, Quit)
- Auto-start on login (configurable)
## 🎯 Next Steps
### 1. Test the Launcher
```bash
# Start in dev mode
npm run dev:launcher
```
Navigate to the launcher (`/launcher` route) and test:
- ✅ Switching between tabs
- ✅ Changing view modes (grid/list)
- ✅ Try installing/launching apps (mock functionality)
### 2. Customize Branding
Update these files with your branding:
- `src-tauri/icons/` - Replace with your app icons
- `src-tauri/tauri.conf.json` - Update app name, publisher
- `client/src/components/DesktopLauncher.tsx` - Customize colors
### 3. Add Real Apps
Modify the `apps` array in `DesktopLauncher.tsx` to add your actual applications:
```typescript
const [apps, setApps] = useState<LauncherApp[]>([
{
id: 'your-app',
name: 'Your App Name',
description: 'App description',
version: '1.0.0',
size: '100 MB',
installed: false,
installing: false,
image: '/your-app-image.jpg'
}
]);
```
### 4. Implement Real Download Logic
The current implementation simulates downloads. For real downloads:
1. Add a download service in Rust backend
2. Use `tauri-plugin-http` for network requests
3. Stream download progress to frontend
4. Extract/install downloaded files
### 5. Setup Auto-Updates
1. Generate signing keys:
```bash
npm run tauri signer generate
```
2. Configure update endpoint in `tauri.conf.json`
3. Setup update server (see Tauri docs)
### 6. Build for Distribution
```bash
# Build production version
npm run build:launcher
# Find installers in:
# - Windows: src-tauri/target/release/bundle/msi/
# - macOS: src-tauri/target/release/bundle/dmg/
# - Linux: src-tauri/target/release/bundle/appimage/
```
### 7. Setup CI/CD
The GitHub Actions workflow is ready at `.github/workflows/build-launcher.yml`.
Add these secrets to your GitHub repository:
- `TAURI_SIGNING_PRIVATE_KEY`
- `TAURI_SIGNING_PRIVATE_KEY_PASSWORD`
For macOS builds, also add:
- `APPLE_CERTIFICATE`
- `APPLE_CERTIFICATE_PASSWORD`
- `APPLE_ID`
- `APPLE_PASSWORD`
- `APPLE_TEAM_ID`
## 📚 Resources
- **Launcher UI**: [client/src/components/DesktopLauncher.tsx](client/src/components/DesktopLauncher.tsx)
- **Rust Backend**: [src-tauri/src/lib.rs](src-tauri/src/lib.rs)
- **Full Docs**: [LAUNCHER_README.md](LAUNCHER_README.md)
- **Build Guide**: [LAUNCHER_BUILD.md](LAUNCHER_BUILD.md)
- **Tauri Docs**: https://v2.tauri.app/
## 🐛 Troubleshooting
### "Command not found: tauri"
Install Tauri CLI:
```bash
npm install @tauri-apps/cli@latest --save-dev
```
### Build fails on Linux
Install dependencies:
```bash
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file libssl-dev libayatana-appindicator3-dev librsvg2-dev
```
### Can't see system tray icon
On Linux, ensure your desktop environment supports system tray icons.
### Dev mode shows blank screen
Check that:
1. Vite dev server is running
2. Port 5000 is available
3. No firewall blocking localhost
## 💡 Tips
1. **Custom Icons**: Replace icons in `src-tauri/icons/` with your branding
2. **Theme**: The UI uses your shadcn/ui theme configuration
3. **Plugins**: Add more Tauri plugins as needed (filesystem, shell, etc.)
4. **Analytics**: Track app usage with your analytics service
5. **Localization**: Add i18n for multiple languages
## 🎉 You're Ready!
Your desktop launcher is complete and ready for:
- ✅ Development testing
- ✅ Customization
- ✅ Adding real apps
- ✅ Building for distribution
- ✅ Setting up auto-updates
- ✅ CI/CD automation
**Happy launching! 🚀**
---
For issues or questions, see the full documentation in `LAUNCHER_README.md` and `LAUNCHER_BUILD.md`.