Now shows the first exercise suggestion before
the session is started. To support this, the session title is shown in a
Changed the pre-start message to show how many songs
where loaded to the playlist.
Adds volume sliders to the in-app
settings screen with which the relative volume levels of the beep and alert
sounds can be adjusted. The recommended default settings are: beep volume 50%,
and alert volume 80%.
Updated the Apple Music search view.
Items in the Apple Music search results will be checked when they are
already in the playlist.
Tapping an item in the Apple Music search
results will play them, making it easier to decide which item should be
Added a "Load more…" button to retrieve the next page
of search results from Apple Music.
Adjust some internal timings to
keep the Reset button from flashing up at the start of a workout.
special debug messages that can be made visible in the app.
switch to the settings bundle, shown in the Settings app, with which the in-app
debug messages can be enabled.
Updates internal debug logging
Adds a list of exercise
suggestions. During playback, these will be shown instead of the session title.
On iPad or Apple TV, the exercise will be shown on the left-hand side.
Added an option to shuffle the exercise suggestions.
exercise suggestions to support paired exercises like "left/right lunges" can
be expanded to two steps: "left lunges" followed by "right lunges". To
support this, paired exercises need to contain names in the style of
word-slash-word. Example: "side plank, left/right".
are kept together, even when all exercises are shuffled.
suggestions are shown in green prior to the next set.
electric buzzer, chapel bell, church bell, Big Ben, vinyl scratch, and Edgar
Adds a new countdown beep alternative: a single beep,
5-seconds before the next step.
Doubled the size of the reset button
to increase its visibility.
Increased the space for the total session
Created a new CoreData database version to support
generic list items.
Now requires iOS 15.1 or later. Or tvOS 15.1 or
On Apple TV, resolved an iCloud synchronization issue.
Removed the output route picker view.
Reworked animations to work
again with iOS 15.
Fixes the backwards button when in the middle of a
Hides the list separator in the main list.
UITextField wrappers with SwiftUI TextFields. Likewise, replaces the keyboard
toolbar with a SwiftUI implementation.
Adds multiple retries for cases
where the AVAudioPlayer failed to load the next sound.
using a circular progress text; later discarded.
Revised aspects of
the playback mechanism.
Diverse stability enhancements.
When you mark a workout as a favourite, it will be
listed before your other workouts in the list. Select the heart-styled Like
button on the main screen of a workout to mark it as a favourite.
an option to run a workout without playing any music. To disable music
playback, deselect 'Play Music' in the playlist screen. You can still play
countdown beeps or sound effects as usual.
No-music workouts are given
a crossed-out music cover art.
Repositions the set-skip-buttons on
Apple TV to make them easier to reach even when the workout has not been
On Apple TV, you can mark a workout as a favourite by
selecting 'Like' in the context menu of a workout.
Added a delete
command to the context menu on Apple TV.
Adjusted the music playback
handling when receiving a phone call in the middle of an ongoing workout. Music
should now continue to play after the call is finished.
Adds a guard
condition to avoid loading new cover artworks when those that had been loaded
previously are still available.
track preview player to the playlist view. Tap a song or playlist to play it.
Tap again to stop.
Resetting the playback of the current workout is
now also possible when the playback is paused during the initial
Fixes an issue with selecting _personal_ Apple
Music playlists. However, due to playback issues, rather than adding clumsy
workarounds for undocumented features, these playlists have now been hidden.
Note that you can still use _curated_ Apple Music playlists as well as your
playlists from your (iTunes) media library. Also, you can still add any number
of individual songs.
Refines playlist (re)assembly, making sure that
the playlist is changed when a different workout is selected. Also, changes
made to the playlist prior to starting a session should also be
Instead of a song title, you may now see "no music
selected" when your playlist is empty or when your media library items cannot
Adds a circular progress indicator to give better feedback
while the playlist is assembled.
At the end of a session, when
shuffling is enabled, the playlist will be reloaded. This is not new, but I
added a "Shuffling Playlist…" message to make it more prominent.
Optimizes access checks on startup. Playlist can only be loaded once all
required access to your music is determined.
Eliminates some duplicate
API requests for Apple Music.
optional countdown beeps. Can be enabled for music start or stop sounds.
Revives background audio support.
Tries harder to stop music,
e.g. over Bluetooth.
Unloads a deleted session from the
Hopefully fixes a rarely seen view height issue.
Requires iOS 14.
name is now "MC-Timer".
Adds a "Select for Playback" button to the
session details screen.
Adds an alert when none of the chosen songs
are available on a device.
Fixes playback of effect sounds when
pressing the items in the list in quick succession. Also, random sounds now
preview a different sound for each press.
Re-enables the access check
for Apple Music.
Dims the background when the playback screen is open.
Integration with Apple Music. Adds the Apple
Music subscription view. Curated playlists can now be chosen. User-defined
playlists can be added. Individual songs can be added. All of these will be
combined during playback.
Added MC-Timer app for Apple TV.
Created a wide-screen-specific user interface. Added a background screen
Fixes some progress ring animation glitches. Stops animating
the text strings.
Shows a progress spinner in place of the play button
when the playlist is being downloaded and assembled.
the session's play count when having been active after the half-way point.
Adds a confirmation alert before deleting a session.
when trying to replace an ongoing session.
Uses a CoreData (iCloud)
data model to facilitate across-device synchronization.
for the windows and graphics. Discards animated marquee texts.
wrappers for UIKit views like the media item selection controller and
customized text fields.
Moves minimum deployment target to iOS 14.
Introduces a 3-second countdown when the
first step starts with a music phase (as it normally would).
album cover images and animations.
Streamlines code to display the
title of the currently playing song.
Adds messages to the main welcome
screen when access to the music library was denied.
Adds a message why
a session may not be playable.
Adds emoji warning triangles to
important messages strings.
Adds accessibility labels. Splits some
buttons to avoid confusion for use with Voice-Over.
countdown/up options to the settings. Links to the system settings from within
the settings screen.
Preparations for Apple Music. Adds mandatory
usage description. Adds handling of the MusicKit developer tokens; generation
and texting via a Ruby script. Introduces code to download playlists and songs
via the MusicKit API and an implementation of Future and Promises.
Introduces a music box to manage songs and playlist from both Apple Music
and the on-device (iTunes) media library.
Improves background queue
handling and table view updates.
Tracks modification date for
Corrects use count updating.
indexing, Siri app intents.
Creates a QR code for sharing sessions
Fine-tunes screenshot generation. Adds a mock music
player and a mock volume view for use in the simulator. Uses example songs and
Fixes swiftlint warnings.
New app icon with gradient background.
Generic album cover
Adds a welcome cell that is shown whenever there are no workouts
in the list. Pressing it will create a new workout session.
a musically inspired background image on the main screen.
Adds a new
top-level controller to house the main play view screen. Allows play view to
transition into a smaller view at the bottom of the screen.
playlist to combine consecutive work or rest phases.
New progress ring
view to animate the set and session progress. Updated to use a gradient.
Changed the gradient to use an ease-in-ease-out transitions function rather
than a linear gradient.
Adds now playing info support.
Migrates to iOS 13. Discards button icons in favour of new SF Symbols font
Adds dark mode colour assets. Adds support for a user setting
to override the system dark mode, allowing the app to be always light, or
Adds multiple bell sound resources. Designs support for
random sound selections. Adds support for an additional finish sound, played
when a workout has been played all the way through.
interface orientation. That just looked horrible, sorry.
long-press gesture recognizer to open an action sheet when a session is pressed
in the main view. A session can now be deleted from that action menu.
Throws out the top-level collection view controller in favour of a simple
and reliable table view controller. Adjusts the cells to make use of rounded
corners and transparent padding.
Adds a watchOS target for a simple
remote-control watch app. Tunes communication between MC-Timer and the watch
app. A separate watch icon is needed.
Adds a Settings.bundle.
Incorporates third-party license agreements into the bundle. Adds our own end
user license agreement (EULA).
the iPhone project.
Chose product name 'MC Timer'.
reasonably workable playback solution.
Sets up collection view layout
First set of app icons.
are used for social services & themes. Copyright 2023
tredje design - Eric Roller