|
1 | | -This is a Kotlin Multiplatform project targeting Desktop. |
| 1 | +# RadioBrowser Windows |
2 | 2 |
|
3 | | -* `/composeApp` is for code that will be shared across your Compose Multiplatform applications. |
4 | | - It contains several subfolders: |
5 | | - - `commonMain` is for code that’s common for all targets. |
6 | | - - Other folders are for Kotlin code that will be compiled for only the platform indicated in the folder name. |
7 | | - For example, if you want to use Apple’s CoreCrypto for the iOS part of your Kotlin app, |
8 | | - `iosMain` would be the right folder for such calls. |
| 3 | +A modern desktop application for browsing and streaming radio stations, built with Kotlin Multiplatform and Compose Desktop. |
9 | 4 |
|
| 5 | + |
10 | 6 |
|
11 | | -Learn more about [Kotlin Multiplatform](https://www.jetbrains.com/help/kotlin-multiplatform-dev/get-started.html)… |
| 7 | +## Features |
| 8 | + |
| 9 | +- 🌍 **Global Radio Stations**: Access thousands of radio stations from around the world |
| 10 | +- 🔍 **Smart Search**: Find your favorite stations with advanced search filters |
| 11 | +- ❤️ **Favorites**: Save and organize your favorite radio stations |
| 12 | +- 🎨 **Modern UI**: Beautiful and intuitive interface built with Compose Desktop |
| 13 | +- 🌓 **Dark/Light Theme**: Switch between dark and light themes for comfortable viewing |
| 14 | +- 🎵 **High-Quality Audio**: Stream radio stations with optimal audio quality |
| 15 | +- ⚡ **Fast & Reliable**: Built with Kotlin Multiplatform for optimal performance |
| 16 | + |
| 17 | +## Tech Stack |
| 18 | + |
| 19 | +- **Kotlin Multiplatform**: For cross-platform development |
| 20 | +- **Compose Desktop**: For modern, declarative UI |
| 21 | +- **Koin**: For dependency injection |
| 22 | +- **Ktor**: For network requests |
| 23 | +- **SQLite**: For local data storage |
| 24 | +- **KLite/VLC**: For media playback |
| 25 | + |
| 26 | +## Prerequisites |
| 27 | + |
| 28 | +- Windows 10 or later |
| 29 | +- Java Runtime Environment (JRE) 11 or later |
| 30 | +- VLC Media Player or KLite Codec Pack installed |
| 31 | + |
| 32 | +## Installation |
| 33 | + |
| 34 | +1. Download the latest release from the [Releases](https://github.com/arya458/RadioBrowser_Windows/releases) page |
| 35 | +2. Run the installer |
| 36 | +3. Follow the installation wizard |
| 37 | +4. Launch RadioBrowser Windows |
| 38 | + |
| 39 | +## Development Setup |
| 40 | + |
| 41 | +1. Clone the repository: |
| 42 | +```bash |
| 43 | +git clone https://github.com/arya458/RadioBrowser_Windows.git |
| 44 | +cd RadioBrowser_Windows |
| 45 | +``` |
| 46 | + |
| 47 | +2. Open the project in your preferred IDE (IntelliJ IDEA recommended) |
| 48 | + |
| 49 | +3. Build the project: |
| 50 | +```bash |
| 51 | +./gradlew build |
| 52 | +``` |
| 53 | + |
| 54 | +4. Run the application: |
| 55 | +```bash |
| 56 | +./gradlew :composeApp:run |
| 57 | +``` |
| 58 | + |
| 59 | +## Project Structure |
| 60 | + |
| 61 | +``` |
| 62 | +RadioBrowser_Windows/ |
| 63 | +├── composeApp/ |
| 64 | +│ ├── src/ |
| 65 | +│ │ ├── commonMain/ # Shared code |
| 66 | +│ │ ├── desktopMain/ # Desktop-specific code |
| 67 | +│ │ └── resources/ # Application resources |
| 68 | +│ └── build.gradle.kts # Build configuration |
| 69 | +├── docs/ # Documentation |
| 70 | +└── README.md # This file |
| 71 | +``` |
| 72 | + |
| 73 | +## Contributing |
| 74 | + |
| 75 | +Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change. |
| 76 | + |
| 77 | +1. Fork the repository |
| 78 | +2. Create your feature branch (`git checkout -b feature/AmazingFeature`) |
| 79 | +3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) |
| 80 | +4. Push to the branch (`git push origin feature/AmazingFeature`) |
| 81 | +5. Open a Pull Request |
| 82 | + |
| 83 | +## License |
| 84 | + |
| 85 | +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. |
| 86 | + |
| 87 | +## Acknowledgments |
| 88 | + |
| 89 | +- [Radio Browser API](https://www.radio-browser.info/) for providing the radio station data |
| 90 | +- [Compose Desktop](https://www.jetbrains.com/lp/compose-desktop/) for the UI framework |
| 91 | +- [Kotlin](https://kotlinlang.org/) for the programming language |
| 92 | +- [VLC](https://www.videolan.org/) and [KLite](https://codecguide.com/download_kl.htm) for media playback |
| 93 | + |
| 94 | +## Author |
| 95 | + |
| 96 | +**Aria Danesh** |
| 97 | +- GitHub: [arya458](https://github.com/arya458) |
| 98 | +- LinkedIn: [Aria Danesh](https://www.linkedin.com/in/aria-danesh-574ab8162/) |
| 99 | + |
| 100 | +## Support |
| 101 | + |
| 102 | +If you encounter any issues or have suggestions, please open an issue in the GitHub repository. |
0 commit comments