Robin Android
Robin Android
Section titled “Robin Android”A modern Android client for browsing Running With Rifles (RWR) game servers, providing real-time server information and comprehensive search capabilities.
Features
Section titled “Features”Core Functionality
Section titled “Core Functionality”- Server Monitoring: Track active RWR servers with detailed information
- Real-time Updates: Automatic refresh every 5 seconds
- Smart Search: Multi-field search with 300ms debouncing
- Caching System: Two-tier caching (memory: 5min, persistent: 24hr)
Architecture
Section titled “Architecture”- Modern Android: Built with Jetpack Compose and Material 3
- Repository Pattern: Clean separation of concerns
- Coroutines: Asynchronous operations with proper thread management
- Flexible Configuration: Externalized API region support
Additional Features
Section titled “Additional Features”- Multi-region support with automatic failover
- Bilingual interface (English and Chinese)
- Dynamic language switching without app restart
Technical Stack
Section titled “Technical Stack”- Framework: Jetpack Compose + Material 3
- Language: Kotlin
- Navigation: Navigation Compose
- HTTP Client: Retrofit 2 with XML/JSON converters
- Async: Kotlin Coroutines
Configuration
Section titled “Configuration”API Regions
Section titled “API Regions”Format: id|url|label_en|label_zh
# Example (use Unicode escapes for Chinese)API_REGIONS=china|https://robin.kreedzt.cn/|China Mainland|\u4e2d\u56fd\u5927\u9646;global|https://robin.kreedzt.com/|Global|\u5168\u7403Configuration Methods
Section titled “Configuration Methods”- gradle.properties - Project-wide configuration
- local.properties - Local overrides (not tracked)
- Environment Variables -
export API_REGIONS="..." - Command Line -
./gradlew assembleDebug -PAPI_REGIONS="..."
[!WARNING] When using Chinese characters in properties files, use Unicode escape sequences to avoid encoding issues.
Prerequisites
Section titled “Prerequisites”- Android Studio Hedgehog | 2023.1.1 or later
- Android SDK (API 26+)
- JDK 17
Commands
Section titled “Commands”# Clone and buildgit clone https://github.com/rwr-infra/robin-android.gitcd robin-android
# Build debug APK./gradlew assembleDebug
# Build release APK./gradlew assembleReleaseBuild Configuration
Section titled “Build Configuration”- Minimum SDK: 26 (Android 8.0)
- Target SDK: 36 (Android 14)
- Compile SDK: 36 (Android 14)
Development
Section titled “Development”Project Structure
Section titled “Project Structure”app/src/main/java/com/kreedzt/robin/├── data/ # Data layer│ ├── SettingsManager.kt # App settings management│ ├── ServerRepository.kt # Data repository│ └── ApiRegionConfig.kt # API region configuration├── ui/ # UI layer│ ├── MainScreen.kt # Server browsing interface│ ├── SettingsScreen.kt # Settings configuration│ └── FirstLaunchSetup.kt # Initial setup wizard└── App.kt # Application entry pointAPI Integration
Section titled “API Integration”Robin Android integrates with the Robin Server backend:
- Server Data: XML parsing from
/api/server_list - Map Information: JSON parsing from
/api/maps - Error Handling: Graceful degradation with cached data
- Regional Support: China and global endpoints with automatic failover
GitHub Actions provides automated building and deployment:
- Push to
masterordevelopbranches triggers builds - Version tags (v1.0.0, etc.) create GitHub Releases
# Create releasegit commit -am "Release v1.0.0"git tag v1.0.0git push origin v1.0.0- Repository: github.com/rwr-infra/robin-android
- Download: Check releases page for APK download
Disclaimer
Section titled “Disclaimer”Robin Android is an unofficial, community-developed application that is not affiliated with, endorsed by, or authorized by the creators or publishers of Running With Rifles.
All server data originates from official Running With Rifles game servers. This application only reads publicly available server information for community purposes.
Running With Rifles is a trademark of its respective owners.
Related Tools
Section titled “Related Tools”- Robin Web - Web interface
- Robin Server - Backend service