WLPN 105.5 FM Lumpen Radio Chicago
Never listen to a radio commercial again. The free Lumpen Radio app is here!
- Streams WLPN-LP 105.5 FM Lumpen Radio Chicago
- Background audio playback and lock screen integration
- Gorgeous video loop with AirPlay support
- Intelligent handling of common audio interruptions
- Detailed connection status and play state messaging
- Translations for English, Spanish, Chinese, Korean and German
- Remote control via Bluetooth and compatible headset
- Supports iPad and iPhone with iOS 8+
- Tapping radio button starts and stops the audio
- Long-pressing the radio button restarts the audio
- If the app crashes for any reason please close and reopen it
Looking to build your own React Native project with ES6/7? Check out my React Native Starter Kit. Otherwise proceed enthusiastically.
- Clone this project.
npm install pod install
npm startto start the Webpack watcher, Webpack Dev Server and the React Packager in a single shot.
Note: The Webpack watcher builds the
index.[platform].jsfile expected by React Native.
WLPN.xcworkspacein XCode and run the project.
Bundling for distribution
npm run bundleto generate the offline JS bundle.
- For iOS, update
AppDelegate.mto load from pre-bundled file on disk.
- Test the application, create an archive and submit to the store.
Learn more about Submitting to App Store.
To learn more about React Native and how this app is built check out the slides originating from my talk on 30 Jun 2015. There's also a free Webcast on app construction given for O'Reilly Media on 27 Aug 2015.
├── android # Source code for Android ├── iOS # Source code for iOS │ ├── Classes # Objective-C, Swift classes │ │ ├── AppDelegate # Application initialization and React Native config │ │ ├── AudioManager # Lib to access platform APIs and bridge to JS │ │ └── RootViewController # RCTRootViewController override to manage Remote Control events │ ├── Images.xcassets # Launch screens and native image assets │ ├── Resources # Other native resources │ ├── Constants.h # Native globals │ ├── Info.plist # Project configuration │ ├── main.jsbundle # React Native placeholder file │ └── main.m # Application entry point ├── src # Source code │ ├── assets # Static resources │ │ └── videos # Video assets │ ├── components # React Native Components │ ├── lib # JS libraries │ ├── stores # JS persistence with Flux │ ├── actions.es6 # Flux actions │ ├── main.es6 # JS application entry point │ └── styles.es6 # React Native Style Rules ├── .eslintrc # JS linter configuration ├── .flowconfig # Facebook flow config file ├── .gitignore # VCS blacklist ├── Podfile # CocoaPods dependency specs ├── Podfile.lock # Native dependency lock file ├── WLPN-Bridging-Header.h # Objective-C, Swift bridge support file ├── ignored-modules.js # RegExp containing modules ignored by watcher ├── npm-shrinkwrap.js # JS dependency lock file ├── package.json # NPM dependency specs ├── webpack-watch.js # Filesystem watcher for JS └── webpack-config.js # WebPack configuration
- Add background playback support
- Show progress for initial connection
- Indicate progress for long-running ops
- Allow audio disruption for calls, etc.
- Automatically reconnect if disconnected
- Icon long-press restarts stream
- Support Control Center / Remote Control events (thanks to Wayne Wright for the suggestion)
- Integrate push notifications
- Long-pauses restart stream
- Add now playing metadata (if available)
- Provide on-air/off-air indication
- Background video delays device wake then turns black.
- Audio stream does not automatically restart after some device interruptions (e.g. incoming call sent to voice mail)
- Audio buffer out after 20 seconds of interrupted call time followed by 20 seconds of play
- Play button does not function when disconnected from the Internet
- App appears to buffer indefinitely if playing and Internet connection restarted
- Launch screen skews on iPad
Developed for Public Media Institute by Josh Habdas.
Turntable loop video by Scott Schiller, BSD.
Inspired by open source work by Steffen Tröster.
- Ed Marszewski
- Logan Bay
- Eric Olson
- Wayne Wright
- Elizabeth Rossman
- Joseph Alfallah
- Harrison Jones
- Nick Hausman