iOS Release Notes
1.0.25 Notes (Current iTunes Live Version)
- Forgot password functionality for login and when registering and using an email address that is already registered.
- Remember login functionality. Yes we hate typing passwords too.
- Bug fixes.
- Loads of Bug fixes! Over 20 minor issues resolved! We listen to your feedback!
- Loading indicator for web views from settings page.
- Added Try It Now Feature where you can try it for 15 minutes without registering.
- Updated Track List to display longer track names
- Updated Station view so loading spinner does not flash on screen
- The loading screen now show what is being downloaded.
- If the application is buffering the user can now cancel the buffering operation.
- When the tracklist is displayed and a mix is ending the next mix will now play.
- If no network connection is available at login the user will see the login screen instead of a white screen.
- If the user has changed the password on the website and their credentials are stored on the device they will see the login screen instead of a white screen.
- The user is reminded to review the application periodically.
- The user will see a message when a connection is not available.
- The last track of a mix will now play.
- Station icons are displayed for the correct stations.
- The name field on the registration form has been split up into two fields, first and last.
- Implemented analytics into the application
- Song information updates without the user needing to tap on the screen
- iPod controls work regardless of what screen the user is on when the app is in the background
- Stations now play the correct mixes
- User can now scroll to the Register Button without dismissing the keyboard
- The keyboard can be dismissed by tapping on empty space on the registration screen
- Added in app registration
- Updated UI for sign up page
- Fixes launch issue which caused rejection from App Store
- Fixed application being killed by the Watchdog for not launching fast enough
1.0.11 Summary (First App Store Release)
- Updated UI for sign up page
- Mixes cycle for Genres and Stations
- Bug fix for stream resuming upon coming back from a locked screen
- Updated the DJ List to use the same layouts as Genre and Station
- Using the default album art image when none is specified
- Updated link for “Fit Radio for Gyms” on settings page
- Implemented logging with Submit log button on settings page
- Updated wording for when no connection is available
- Updated UI Elements
- Stations and Genres now have associated descriptions
- Updated Settings Page
- Playback bug fixes
- Skipping to next track or selecting a track from track list will dim the controls for a short period
- Ads are played at the appropriate queue points in a mix
- New login page
- Tracklist UI has been updated to highlight currently playing track
- Now playing view now includes track information in the information panel
- DJ List is sortable by either genre or name
- DJ List no longer looks like Address Book
- Playback controls dim while ads are playing
- Ad blackout period is now enforced properly
- Discotech radio no longer crashes the app
- On the now playing screen the favorite button has been replaced with track list button, favorite button is in top right corner
- DJ Screen can now be sorted by name or genre
- Discotech station now plays
- DJ Images are now being cached after initially downloaded
- When switching between networks (say WiFi is no longer available), the app will open the new connection as soon as it is aware of the connection loss. This new connection should pick up exactly where the last stream will cut off (at the end of filled buffers)
- Fixed bug where the album image was not updating with the new mix image
- The ‘File Error’ message should not show up when the music keeps playing anyway
- New splash screen is in place (using the same image as Android)
- Playing a mix will hit the new server API for tracking playback frequency
- The genre list screen is updated to no longer be separated by title prefix
- Fix for a defect causing the app to crash while attempting to lock the player controls on the ‘now playing’ screen while the screen was not visible or the device display was turned off.
- The AD images will now display while the AD audio is playing.
- The buffer size for audio playback has been increased from 32kb to 18mb. The audio should theoretically be able to keep playing after losing network coverage for about 30 minutes if all buffers are filled.
- Selecting favorites should now add or remove the favorite on a background thread rather than locking up the UI while making the network connection. The favorite icon should also be updating correctly if the status changes or fails to submit to the server.
The original buffer size was max 32kb, which by rough calculation was only about 3 seconds not including any internal buffer Apple uses, and required all buffers to be filled before playback could begin. The new buffer size is 18mb and only requires some initial number of buffers to be filled before playback. The number of initial buffers is currently set to 2 buffers if streaming over WiFi, and 5 buffers if streaming over the carrier network. Apple does not provide public APIs to determine the signal strength, so we can only limit the dynamic count to use the type of network. All of these numbers are now easily configurable, so it is just a matter of finding the best numbers. The values we can adjust are:
- Buffer count… currently 384
- Size of individual buffer… currently 48k
- Number of buffers required to start playback… currently WiFi:2 (96k), Carrier:5 (240k)
When the app is in the background that the device display is asleep the app may throw an exception while executing the “heartbeat” timer or “update progress” timer. The “heartbeat” timer redownloads all of the genre/station/etc lists to keep the app up-to-date. The cause of this is not immediately apparent, and has been logged. You may seen this about 5-6 minutes after the display goes to sleep.
- Changing the network from WiFi to 3G should now restart the music playback. This works by reopening the connection once the previous connection receives an error.
- The buffering message will be removed and the app should no longer lock up when you enter back into the application.
- The application was making doing a lot of work on the main thread and making network calls that were locking up the application. We have moved most of these (the ones that stood out) to background threads so the app can be more responsive.
There is an issue with the ‘Now Playing’ screen controls. When an ad plays or buffering starts, the applications tries to lock the play/pause/skip controls on the ‘Now Playing’ screen. If the ‘Now Playing’ screen is not the visible screen when this happens, the app will crash.
- When loading stations, the buffering stage doesn’t timeout properly and gives the appearance of buffering forever.
- Skipping serval times very quickly causes the application to get into an endless buffering state that doesn’t timeout.
- We cleaned up the directory structure to make the source more traversable, however we have not gone through the rest of the refactoring yet (profiling for memory leaks)
The app should now resume playback if the current network changes and the app is in the background, however it does not currently resume where it left off, it just starts over. There is also an issue where the app tries to rebuild the connection again once you reopen the app and then gets stuck in buffering mode. These are still being worked on.