A new Intervals Companion App. With widgets!

That sounds right, except you also have elevation on the totals page and there isn’t an explicit ignore for it. The main one says time, distance, load and should likely include elevation.


That makes sense. I was experimenting with some of my data and I see form changing when I have it turned on. I notice the label mentions load as well, so I’ll zero that out if it’s enabled too.

I’m going to add some visual indicators to the activity list and activity details if the ignore flag is enabled.

This was actually pretty easy to incorporate. If everything above sounds right I can get v1.1.2 in the release pipeline today. I wasn’t aware of this feature before, so it’s nice to learn something new about intervals too.

1 Like

Really nice app! Great graphs, really clear and easy ways to see where I’m up to on my phone.

One request I have is to be able to update activity names/descriptions. The most regular thing I do is change the name or add a description after an activity.

Many thanks!

This is incredible. Thank you so much. I have downloaded and given permissions but my totals and activities aren’t loading. I have no activities except some manual ones I put into Intervals.icu … does it not populate past activities? Thanks.
Oh BTW - all my vitals have synced just not my activities.

Looks great now, thanks! I see the yellow activity icon for ignored data too in the activity list. I’m otherwise struggling with what to do with that tab. It would be cool if I could use this to apply the ignores.

It sounds like you’re using Strava to sync data to Intervals. This comes up a lot, read a few posts up about it. Short version: Strava changed their policies and any data synced to intervals.icu cannot be shared via their data api. You won’t see that data in any of the Intervals apps that have been built. Use direct connections to intervals from Garmin, Wahoo, Zwift, etc instead, or use an app like RunGap or HealthFit (for Apple activities) to sync data. You can’t use Strava as your data hub anymore, they own everything you send there regardless if you recorded it with their software or something else. I have a big gap in my history now because of it too.

I recommend everyone let Strava know how they feel about this. I personally chose to stop my 10+ year subscription over it. Data ownership and openness is one of the many reasons I like Intervals.

3 Likes

One thing I thought about while creating this was where to draw the line for functionality. It was a pretty large amount of work to build what I currently have working, especially being brand new to Xcode and Apple’s development environment and tools.

My original goal was as slim of an iOS app as possible to facilitate the widgets and watchOS app, with enough info displayed to be somewhat useful. I originally was not going to have graphs in the app but realized I can write that code once and reuse it in widgets and the watchOS app. So the iOS app built up over time with the interactive fitness graph, the Activity list view, Vitals and then the Totals screens. Activities especially could have a lot added to them. I’m open to ideas of what would be useful to see there, I simply grabbed fields that I thought would make sense to show for quickly glanceable info. I probably need to rethink the layout of that screen completely.

Going down a path of being a full replacement for the website with editing screens starts to become a lot of work. It might be possible to provide some editing capability for frequently changed fields though. Someone has mentioned activity title and description being useful to edit as well.

1 Like

Oh great - and sorry, I should have read the thread a little more closely.

Tried to install on MacOS but I can’t login.
When I start the app, I get two windows. One is a new chrome window which asks me to login and me give permissions. When I login, I leave the permissions and default and click OK. I get a small popup to open the “intervals companion app” and click OPEN. Now the second window comes to the front which says “logging in…” and it stays at this forever.

When I close the first window (chrome), The second window immediately gives an error “Permission required, unable to login”.

Interesting. Logging in initially via macOS is untested functionality. If you login first from an iPad or iPhone that uses the same iCloud account, and iCloud keychain syncing is enabled, it should store your credentials securely in the keychain and start working in macOS.

I’m interested to know if changing your default browser temporarily to safari would help. I’m pretty sure the login needs to happen in an embedded browser window within the app for the login handshake to work.

Very nice companion app.
What I dont’t understand however (but I did not look into detail yet): my fitness numbers are completely different then those in intervals.icu itself…

If you go to the settings in the app what is the Form Display set as? I believe it defaults to ‘percent of fitness’, which may not match your setting on intervals.icu which I think defaults to the absolute number.

I thought about keeping the app setting in sync with the user setting, but I also like the easy ability to change it back and forth in the app.

It’s perfect like this, it confirmed my feeling of being tired → in the ‘risk’ zone :stuck_out_tongue:
While based on the absolute values; everything is ‘optimal’.
But as such it might be giving different interpretations.
In any case, load / TSS is limited anyway…

@spmcewen great work and thank you for creating this helpful app.

I have put the Fitness widget on my homescreen and configured to show 7d past and 7d in the future. Some feedback I want to give you:

  1. The line from
    today on (22nd of March) isn’t properly rendered as dashed line.

  2. Thee area for high risk background doesn’t start were the horizontal threshold line starts.

Changing my default browser temporarily to Safari allowed me to login.

1 Like

Good finds! The y-axis of the form graph looks off as the green is overlapping the legend labels of the graph above, which makes me think the upper bound is not being set properly. Are you up to date on the latest release?

As great as the SwiftUI Chart library is at creating universal graphs that work on any device, I’ve noticed some odd rendering things like this and I’m able to reproduce the other issues. The gradient colors for area fills is supported natively but I really had to twist its arm to make them be a sharp transition at the demarcation points instead of a gradual faded gradient. I manipulated my data so my 7 day view looks similar but my graph is bound correctly.

To make the graph work I look up the full range of data to be shown for the range selected + future days and render the line and fill. Then a dashed line for only the future days is rendered on top of the other line - this was the only way I could find to make the sharp gradients work properly, rather than rendering past and future as separate line marks.

To make the graph have smoother curves from point to point I use an interpolation option and it looks like it’s causing the dashed future line to not be rendered correctly as the line approaches the current day. See this screenshot where I disabled the interpolation option for the form graph.

The odd part is that it both your blue fitness line and my blue fitness line both look correct, and I think it has to do with how steep the curve is and how the interpolation is applied. Regardless, there isn’t much I can do about it, and hopefully apple fixes the chart engine in future updates. I believe they may have fixed some of the shaded fill issues that I noticed several months ago where the color spills outside the dark line that should contain it.

I could make the interpolation option a user selectable setting as well if people prefer sharp lines.

Thank you for the insights on rendering these
graphs. I updated to 1.1.5 and the issue remains.

I would be very interested in turning off the interpolation.

Also the option to go back 14d in the past would be appreciated.

Thank you for doing this.

I’m stuck on the intervals.icu login screen - can’t seem to enter Email or Password.

iPhone 15, iOS 18.2

Can you not enter values into the fields or are your credentials not valid? If you could send me a screenshot I can take a better look: intervalscompanion@icloud.com

I’m rethinking the preset range options. I considering moving the 7d, 30d, 60d, 3m, 6m, 1y options into a dropdown like the future range option. There isn’t enough room to add more options in that horizontal space, but as a dropdown 14d could be added easily. Then maybe add controls to select a custom from and to date range. :thinking:

I’ll have to think some more about all that.