SilverDROID - Dark Side Admin with CI/CD pipeline
- Android PWA/WASM launcher with glassmorphism UI - Loads https://admin.dark.side directly on launch - Complete GitLab CI/CD pipeline configuration - Automated builds for Debug, Release, and AAB - Full WASM support with optimized WebView - Material Design 3 theme - Comprehensive documentation Features: - Auto-load target URL on app launch - Glassmorphism components (frosted glass effects) - Full PWA/WASM support - Room database for future extensions - Jetpack Compose UI - CI/CD with artifact storage Built for SilverLABS
This commit is contained in:
222
README.md
Normal file
222
README.md
Normal file
@@ -0,0 +1,222 @@
|
||||
# SilverDROID
|
||||
|
||||
**Android WASM/PWA Launcher with Glassmorphism UI**
|
||||
|
||||
A modern Android launcher application for Progressive Web Apps (PWAs) and WebAssembly (WASM) applications, featuring a beautiful glassmorphism design inspired by SilverPOWERSHELL.
|
||||
|
||||
## ✨ Features
|
||||
|
||||
### Core Functionality
|
||||
- 🚀 **PWA Launcher** - Install and manage Progressive Web Apps
|
||||
- 🌐 **WASM Support** - Full WebAssembly support via optimized WebView
|
||||
- 📱 **Native Container** - PWAs run in a native Android wrapper
|
||||
- 💾 **Offline Support** - Apps work offline with cached resources
|
||||
- 🔔 **Notifications** - PWA push notification forwarding
|
||||
|
||||
### Beautiful UI
|
||||
- ✨ **Glassmorphism Design** - Frosted glass effects throughout
|
||||
- 🎨 **Material Design 3** - Modern Android design language
|
||||
- 🌓 **Dynamic Theming** - Adapts to system theme (light/dark)
|
||||
- 🖼️ **App Grid** - Beautiful card-based launcher grid
|
||||
- 💫 **Smooth Animations** - Fluid transitions and effects
|
||||
|
||||
### Technical
|
||||
- ⚡ **Jetpack Compose** - Modern declarative UI
|
||||
- 🏗️ **Clean Architecture** - MVVM + Repository pattern
|
||||
- 💿 **Room Database** - Efficient local app storage
|
||||
- 🔧 **WebView Optimization** - Enhanced for WASM/PWA performance
|
||||
|
||||
## 🎯 Technology Stack
|
||||
|
||||
- **Language:** Kotlin
|
||||
- **UI Framework:** Jetpack Compose + Material Design 3
|
||||
- **WebView:** Android System WebView (Chromium)
|
||||
- **Database:** Room Persistence Library
|
||||
- **Architecture:** MVVM with Clean Architecture
|
||||
- **Min SDK:** 26 (Android 8.0)
|
||||
- **Target SDK:** 35 (Android 15)
|
||||
|
||||
## 🏗️ Architecture
|
||||
|
||||
```
|
||||
SilverDROID/
|
||||
├── ui/
|
||||
│ ├── launcher/ # Main launcher screen
|
||||
│ │ ├── LauncherScreen.kt
|
||||
│ │ └── LauncherViewModel.kt
|
||||
│ ├── webview/ # PWA container
|
||||
│ │ ├── WebViewActivity.kt
|
||||
│ │ └── WasmWebView.kt
|
||||
│ ├── components/ # Reusable glass components
|
||||
│ │ └── GlassComponents.kt
|
||||
│ └── theme/ # Material Design 3 theme
|
||||
│ ├── Color.kt
|
||||
│ ├── Theme.kt
|
||||
│ └── Type.kt
|
||||
├── data/
|
||||
│ ├── model/ # Data models
|
||||
│ │ └── PwaApp.kt
|
||||
│ ├── repository/ # Data repositories
|
||||
│ │ └── PwaRepository.kt
|
||||
│ ├── PwaDatabase.kt # Room database
|
||||
│ └── PwaAppDao.kt # DAO interface
|
||||
└── MainActivity.kt # App entry point
|
||||
```
|
||||
|
||||
## 🚀 Getting Started
|
||||
|
||||
### Prerequisites
|
||||
- Android Studio Ladybug (2024.2.1) or later
|
||||
- JDK 17 or later
|
||||
- Android SDK 26+
|
||||
|
||||
### Building the Project
|
||||
|
||||
1. **Clone the repository**
|
||||
```bash
|
||||
git clone https://gitlab.silverlabs.uk/SilverLABS/silverdroid.git
|
||||
cd silverdroid
|
||||
```
|
||||
|
||||
2. **Open in Android Studio**
|
||||
- Open Android Studio
|
||||
- File → Open → Select the `SilverDROID` folder
|
||||
|
||||
3. **Sync Gradle**
|
||||
- Android Studio will automatically sync Gradle dependencies
|
||||
- Wait for the sync to complete
|
||||
|
||||
4. **Run the app**
|
||||
- Connect an Android device or start an emulator
|
||||
- Click the "Run" button (▶️) in Android Studio
|
||||
|
||||
### Quick Start Commands
|
||||
|
||||
```bash
|
||||
# Build debug APK
|
||||
./gradlew assembleDebug
|
||||
|
||||
# Build release APK
|
||||
./gradlew assembleRelease
|
||||
|
||||
# Install on connected device
|
||||
./gradlew installDebug
|
||||
|
||||
# Run tests
|
||||
./gradlew test
|
||||
```
|
||||
|
||||
## 📦 Building for Production
|
||||
|
||||
1. **Generate a signing key** (first time only)
|
||||
```bash
|
||||
keytool -genkey -v -keystore silverdroid.keystore \
|
||||
-alias silverdroid -keyalg RSA -keysize 2048 -validity 10000
|
||||
```
|
||||
|
||||
2. **Configure signing in `app/build.gradle.kts`**
|
||||
```kotlin
|
||||
android {
|
||||
signingConfigs {
|
||||
create("release") {
|
||||
storeFile = file("../silverdroid.keystore")
|
||||
storePassword = "your_password"
|
||||
keyAlias = "silverdroid"
|
||||
keyPassword = "your_password"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
3. **Build release APK**
|
||||
```bash
|
||||
./gradlew assembleRelease
|
||||
```
|
||||
|
||||
4. **Output location**
|
||||
```
|
||||
app/build/outputs/apk/release/app-release.apk
|
||||
```
|
||||
|
||||
## 🎨 Glassmorphism Components
|
||||
|
||||
SilverDROID includes custom glassmorphism components:
|
||||
|
||||
### GlassCard
|
||||
```kotlin
|
||||
GlassCard(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
cornerRadius = 16.dp
|
||||
) {
|
||||
Text("Frosted glass card")
|
||||
}
|
||||
```
|
||||
|
||||
### FrostedGlassPanel
|
||||
```kotlin
|
||||
FrostedGlassPanel(
|
||||
cornerRadius = 20.dp
|
||||
) {
|
||||
// Your content
|
||||
}
|
||||
```
|
||||
|
||||
### GlassBackground
|
||||
```kotlin
|
||||
GlassBackground() // Gradient background
|
||||
```
|
||||
|
||||
## 📱 Adding Apps
|
||||
|
||||
### Manually
|
||||
1. Tap the **+** button
|
||||
2. Enter the PWA URL (e.g., `https://twitter.com`)
|
||||
3. Optionally enter a custom name
|
||||
4. Tap **Add**
|
||||
|
||||
### Sample Apps
|
||||
The app includes sample PWAs you can add:
|
||||
- Twitter (mobile.twitter.com)
|
||||
- Spotify (open.spotify.com)
|
||||
- YouTube (m.youtube.com)
|
||||
- WebAssembly Demo (webassembly.org/demo)
|
||||
|
||||
## 🔧 WebView Configuration
|
||||
|
||||
SilverDROID's WebView is optimized for PWA/WASM:
|
||||
|
||||
- ✅ JavaScript enabled
|
||||
- ✅ DOM Storage enabled
|
||||
- ✅ Database storage enabled
|
||||
- ✅ App cache enabled
|
||||
- ✅ Mixed content allowed (dev)
|
||||
- ✅ File access enabled
|
||||
- ✅ Wide viewport support
|
||||
- ✅ WebAssembly support
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
Contributions are welcome! This is a SilverLABS project.
|
||||
|
||||
## 📄 License
|
||||
|
||||
Copyright © 2025 SilverLABS. All rights reserved.
|
||||
|
||||
## 🆘 Support
|
||||
|
||||
For issues or questions:
|
||||
- GitLab Issues: https://gitlab.silverlabs.uk/SilverLABS/silverdroid/issues
|
||||
- SilverLABS Infrastructure: See `~/.claude/Knowledge/`
|
||||
|
||||
## 🎉 Credits
|
||||
|
||||
Built with ❤️ by SilverLABS
|
||||
|
||||
Inspired by:
|
||||
- **SilverPOWERSHELL** - Electron + Svelte architecture
|
||||
- **Material Design 3** - Google's design system
|
||||
- **Glassmorphism** - Modern UI trend
|
||||
|
||||
---
|
||||
|
||||
**Note:** This launcher is designed for PWAs and WASM apps. Regular Android apps from Google Play Store are not supported.
|
||||
Reference in New Issue
Block a user