An iOS application for streaming 101.1 Blue Wave Radio from Roatan, Honduras, with integrated music events and restaurant discovery features.
The Blue Wave Radio Roatan app provides:
- Live Radio Streaming: Stream 101.1 Blue Wave Radio with background playback, lock screen controls, and sleep timer
- Music Scene: Browse and discover live music events happening around Roatan
- Dine Out: Find restaurants by area and cuisine across the island
- Xcode 26.1 or later
- iOS 17.0+ / iPadOS 17.0+
- Swift 6.0
- SwiftUI
BlueWaveRadio/
├── App/
│ ├── BlueWaveRadioApp.swift # Main app entry point
│ └── ContentView.swift # Tab navigation
├── Models/
│ ├── MusicEvent.swift # Music event data model
│ ├── Restaurant.swift # Restaurant data model
│ └── RadioShow.swift # Radio show schedule model
├── Services/
│ ├── AudioStreamManager.swift # Audio streaming service
│ ├── MusicSceneManager.swift # Music events data service
│ ├── DineOutManager.swift # Restaurant data service
│ └── NotificationManager.swift # Local notifications service
├── Views/
│ ├── Streaming/
│ │ ├── StreamingView.swift # Radio player UI
│ │ ├── ProgrammingScheduleView.swift
│ │ └── SleepTimerView.swift
│ ├── MusicScene/
│ │ ├── MusicSceneView.swift # Events list
│ │ └── EventDetailView.swift # Event details
│ └── DineOut/
│ ├── DineOutView.swift # Restaurant list
│ └── RestaurantDetailView.swift # Restaurant details
├── Utilities/
│ └── Color+Theme.swift # Theme colors
├── Resources/
│ └── Localizable.strings # Localization strings
└── Info.plist # App configuration
-
Launch Xcode 26.1 or later
-
Choose "Create a new Xcode project"
-
Select "App" under iOS
-
Configure:
- Product Name: BlueWaveRadio
- Team: Your development team
- Organization Identifier: com.bluewaveradio (or your identifier)
- Bundle Identifier: com.bluewaveradio.BlueWaveRadio
- Interface: SwiftUI
- Language: Swift
- Storage: None (we'll use UserDefaults)
-
Save the project in a temporary location
- Delete the default
ContentView.swiftandBlueWaveRadioApp.swiftfrom the Xcode project - Drag all folders from this
BlueWaveRadio/directory into your Xcode project:- Select "Copy items if needed"
- Select "Create groups"
- Add to target: BlueWaveRadio
-
Select the project in the navigator
-
Select the "BlueWaveRadio" target
-
Go to "Signing & Capabilities":
- Select your development team
- Enable "Background Modes" capability
- Check "Audio, AirPlay, and Picture in Picture"
- Enable "Push Notifications" capability (for local notifications)
-
Go to "General":
- Set "Minimum Deployments" to iOS 17.0
- Verify "Supported Destinations" includes iPhone and iPad
-
Go to "Info":
- Verify custom Info.plist settings are loaded from
Info.plist
- Verify custom Info.plist settings are loaded from
The Info.plist already includes required permission descriptions:
- Calendar access for adding events
- Notifications for show and event reminders
- Network access for streaming
- Select a simulator (iPhone 15 Pro recommended) or physical device
- Press
Cmd+Bto build - Press
Cmd+Rto run
- Live stream from Shoutcast server
- Background audio playback
- Lock screen controls with metadata
- Volume control
- Skip forward/backward buttons
- Sleep timer (15, 30, 45, 60 minutes)
- Programming schedule viewer
- AirPlay support
- Browse upcoming music events
- Search events by name, venue, or description
- View event details (date, time, venue, description)
- Add events to Calendar
- Set event reminders
- Share events
- Mark events as favorites
- Pull to refresh
- Offline caching
- Browse restaurants by island area (6 areas)
- Search by cuisine or name
- View restaurant details
- Call restaurants directly
- View Facebook pages
- Share restaurant info
- Mark restaurants as favorites
- Featured partner highlighting
- Pull to refresh
- Offline caching
- Pattern: MVVM (Model-View-ViewModel)
- UI Framework: SwiftUI with @Observable (Swift 6)
- Audio: AVFoundation (AVPlayer, AVAudioSession)
- Networking: URLSession for HTTP requests
- Persistence: UserDefaults for caching and favorites
- Notifications: UserNotifications framework (local only)
- Calendar: EventKit for calendar integration
- Radio Stream:
https://streaming.shoutcast.com/101-1-blue-wave-radio-roatan - Music Events:
https://www.bluewaveradio.live/roatanmusicscene(web scraping) - Restaurants:
https://www.dineoutroatan.com/(web scraping)
- Primary Blue:
#003366 - Accent Turquoise:
#00BFFF - Neutral Sand:
#F5F5DC
- VoiceOver labels on all interactive elements
- Dynamic Type support
- SF Symbols for consistent iconography
- High contrast mode support
- Semantic colors for dark mode
- English (default)
- Spanish support ready (requires translation of
Localizable.strings)
- Select "Test" from the Product menu or press
Cmd+U - Tests should cover:
- Audio streaming initialization
- Data parsing from web sources
- Favorites management
- Search functionality
- Test key user flows:
- Play/pause radio stream
- Browse and search events
- Add event to calendar
- Browse restaurants by area
- Call restaurant from detail view
-
Web Scraping: Music events and restaurant data use basic HTML parsing. If website structure changes, parsing may fail. Fallback placeholder data is provided.
-
Stream Metadata: Shoutcast Icy metadata depends on the stream server configuration. If unavailable, displays static station info.
-
Offline Mode: Cached data is available offline, but refresh requires internet connection.
Recommended improvements for future versions:
- JSON APIs: Replace web scraping with proper JSON endpoints for reliability
- Core Data: Implement full Core Data stack for better offline support
- Social Features: User reviews, ratings, and check-ins
- Map Integration: MapKit integration for restaurant locations
- Favorites Sync: iCloud sync for favorites across devices
- CarPlay: CarPlay integration for in-car listening
- Analytics: App Store Connect analytics integration
- Deep Linking: Universal links for sharing specific content
- Widget: Lock screen and home screen widgets for quick access
- Apple Music: Integration to save playing tracks to playlists
Copyright © 2025 Blue Wave Radio Roatan. All rights reserved.
For issues or questions about the app:
- Website: https://www.bluewaveradio.live
- Email: [email protected]
- Phone: +504-xxxx-xxxx
Developed for 101.1 Blue Wave Radio, Roatan, Honduras