Sound of the World | صدای جهان | Dünyanın Sesi
A modern, multilingual internet radio application built with React Native. Stream your favorite radio stations with a beautiful, intuitive interface.
- Internet Radio Streaming - Stream from multiple radio stations worldwide
- Multilingual Support - Full support for Persian (Farsi), English, and Turkish
- Dark/Light Theme - Beautiful dark and light themes with system auto-detect
- Proxy Support - HTTP/HTTPS/SOCKS5 proxy configuration with IP and port
- Favorites - Save and manage your favorite stations
- Recently Played - Quick access to your listening history
- Sleep Timer - Auto-stop playback after a set duration
- Keep Screen On - Prevent screen from turning off during playback
- Volume Control - In-app volume slider
- Station Categories - Browse stations by Music, News, Talk, Cultural
- Screen Orientation Lock - Lock to Portrait or Landscape mode
- Offline Settings - All preferences persist locally
- RTL Support - Full right-to-left layout for Persian
| Home | Player | Settings | Favorites |
|---|---|---|---|
- React Native 0.79.x
- TypeScript 5.7.x
- React Navigation 7.x (Bottom Tabs)
- AsyncStorage for local persistence
- react-native-sound-player for audio playback
- react-native-volume-manager for volume control
- react-native-keep-awake for screen wake lock
- react-native-community/slider for sliders
- Node.js >= 20
- React Native CLI
- Android Studio (for Android builds)
- Xcode (for iOS builds)
git clone https://github.com/yourusername/RadiyoNet.git
cd RadiyoNetyarn installcd ios && pod install && cd ..# Android
yarn android
# iOS
yarn ioscd android
./gradlew assembleDebugOutput: android/app/build/outputs/apk/debug/app-debug.apk
cd android
./gradlew assembleReleaseOutput: android/app/build/outputs/apk/release/app-release.apk
cd android
./gradlew bundleReleaseOutput: android/app/build/outputs/bundle/release/app-release.aab
This project includes GitHub Actions workflows:
- Runs on push to
main/developand PRs - TypeScript check, linting, and debug APK build
- Triggered by pushing a version tag (
v*) - Builds release APK and AAB
- Creates GitHub Release with changelog and artifacts
# Update version in package.json
git add .
git commit -m "release: v2.1.0"
git tag v2.1.0
git push origin main --tagsThe release workflow will automatically:
- Build release APK and AAB
- Generate changelog from commits
- Create a GitHub Release with download assets
RadiyoNet/
├── .github/
│ └── workflows/
│ ├── ci.yml # CI pipeline
│ └── android-release.yml # Build & release pipeline
├── android/ # Android native code
├── ios/ # iOS native code
├── src/
│ ├── components/ # Reusable UI components
│ │ ├── Button.tsx
│ │ ├── PlayerControls.tsx
│ │ ├── SettingsItem.tsx
│ │ └── StationCard.tsx
│ ├── context/ # React Context providers
│ │ ├── PlayerContext.tsx
│ │ └── SettingsContext.tsx
│ ├── hooks/ # Custom React hooks
│ ├── i18n/ # Translations
│ │ ├── en.ts
│ │ ├── fa.ts
│ │ ├── tr.ts
│ │ └── index.ts
│ ├── screens/ # App screens
│ │ ├── FavoritesScreen.tsx
│ │ ├── HomeScreen.tsx
│ │ └── SettingsScreen.tsx
│ ├── services/ # Business logic
│ │ ├── PlayerService.ts
│ │ ├── StationService.ts
│ │ └── StorageService.ts
│ ├── theme/ # Theme system
│ │ ├── colors.ts
│ │ └── index.ts
│ ├── types/ # TypeScript types
│ │ └── index.ts
│ └── App.tsx # Root component
├── LICENSE
├── README.md
├── package.json
└── tsconfig.json
The app supports HTTP, HTTPS, and SOCKS5 proxies:
- Go to Settings > Proxy
- Enable proxy toggle
- Enter IP address and port
- Optionally enter username/password
- Test connection
Lock the app to a specific orientation:
- Go to Settings > Screen Orientation
- Choose between:
- Portrait - Locked to portrait mode
- Landscape - Locked to landscape mode
- Auto - Follows system rotation
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
RadiyoNet - Built with ❤️ for radio lovers everywhere.