Show HN: Heart Rate Zones Plus – The first iOS app I developed

apps.apple.com

92 points by tobias5 a day ago

I built this iOS app because I wanted to get an overview of my time in zones per week without checking zones after every workout manually - Now I'm looking for feedback.

Description: Track time in heart rate zones. Track per day, week, month, 7 days and 30 days time period and how much time you spend in each zone. Set goals & visualize progress. Get details about heart rates zones of your workouts.

Features: Custom time periods, Workout to zone attribution to get a feeling which sport attributed most to each zone, Multiple zone calculation methods, Set personal time goals for any zone, Workout breakdown

Pricing: Free

Privacy: Nothing is tracked or send somewhere. Data is just on your device.

Any feedback and features request is appreciated.

Download: https://apps.apple.com/us/app/heart-rate-zones-plus/id674474...

Video of the app in action: https://www.youtube.com/shorts/-qtHxEdMEv0

beingfit 14 hours ago

Congrats on this launch! I love that there is no data tracking and collection outside of the device (it’s always a plus point). However, after downloading the app, I don’t understand the following in the Setup menu screens. Please look at these from a newbie perspective.

1. Time Period — not sure what this refers to. Why is the maximum only 30 days or one month? I think some text to explain that screen would help.

2. Resting Heart Rate — I don’t know what to choose and there is no information or link to sources that could help decide.

3. Metrics and Goals — what time period are those goals over? Is that related to the Time Period setting? Or is it weekly? Why are there goals and toggles for “Vigorous Exercise” and “Moderate Exercise” in addition to the zone wise toggles? How do these overlap with the zones? Again, reducing the goals and toggles and/or adding text and/or reorganizing this may help (for example, “Vigorous Exercise” could just be a heading for zone 5 and zone 4, “Moderate Exercise” could just be a heading for zone 3 and zone 2 — I don’t know if this even makes sense).

As someone else said, an onboarding flow with explanations and choices for settings could really help (and the user could be instructed that if needed, they can change these in settings later).

Looking at my “Vigorous Exercise” number on the main screen, I don’t know if I should aim to increase it or not. Some guidance on what goals to aim for, with the caveat that the user should consult a medical professional to decide on exercises appropriate for them, would also be useful.

Edit: I see that there’s some information in the Help & FAQ and About pages linked from the i (information) button, but it doesn’t cover everything from my feedback above. I still think these should be in the onboarding flow and easily accessible again within the app (without opening a web page).

  • tobias5 10 hours ago

    Hey thanks for the feedback. Very useful.

jayunit 21 hours ago

Congrats! I've been wanting exactly this app. I paid $5.99 for HealthFit trying to get similar information, but it doesn't (afaik) show the weekly/daily zone summaries.

I'd really love to see last week's information. Especially since you launched on a Monday, I'd love to have a new-user experience that shows me last week's info.

Other misc feedback:

1. Upon launching the app, I didn't see any data. Had to go into the gear menu -> approve health data sharing. I think it'd be better to push the user to this approval flow on their first session? (Edit: Aha, after watching the video: settings -> time period -> last 7 days)

2. Neither here nor there, but I wanted to download this so searched the app store on my phone for "heart rate zones plus" and this app was #16. I'm curious if anyone in the discussion knows -- how is this search rating determined? Is there anything the author can do to improve the ranking?

  • tobias5 15 hours ago

    Hi thanks for the feedback. I'm definitely thinking about adding some more historic data and also week over week comparison.

    about 2. from my understanding good ratings and usage would help the ranking in app stores. But I don't expect some good positioning there (already) with an app being 4 days old.

  • realprimoh 17 hours ago

    There are apps that do this. Check out Zolt or Gentler Streak.

  • IncreasePosts 18 hours ago

    This is a horrible abuse of computing power, but what I do is track my heart rate zones in Polar Beat (for my brand of heart rate monitor), and then I just screenshot the summary page for the workout. Then, once every week or two, I just dump my screenshots into Gemini and ask it to produce a report, where I get things like weekly averages, moving averages, highs & lows, etc.

    • tobias5 15 hours ago

      I hope it's now more easy. I will try to add some more historic data in an update soon. Highs and lows I think should be possible too.

interleave 14 hours ago

Hi Tobias!

Feedback: First off, I really like your app's style. I love bold colors. The screenshots and text are clear and understandable - maybe except on how the data gets in there. Even if that's by hand, I still think this is a great first version and a solid product.

While I'm not in your workout target group - nor on iOS - it still resonates with me because I use Oura (the ring) specifically for their detailed heart-rate tracking and stress tracking. My most-used feature in their app is my stress-tracking throughout the day.

Feature request: Only to explain how data gets inserted.

  • mcny 14 hours ago

    > Feature request: Only to explain how data gets inserted.

    Pretty sure the easiest way is to use an apple watch

tedmcory77 7 hours ago

I'd like to second the request to be able to manually set your max heart rate. I do a lot of zone two training, but my max heart rate is much higher than the allowable calculations.

serial_dev a day ago

Congrats on the launch! I really would have thought it’s already part of the iOS built in apps!

You mentioned it’s your first app. Did you vibe code your way through it or did you heavily use AI?

I played around with Swift SwiftUI and I felt that AI helped me a lot in contrast to my day to day job, humongous code base, I can’t get AI to get those mythical 100x productivity gains, more like 0.37x, but for new projects it’s been great, so I was wondering…

  • cyberpunk a day ago

    Okay, admittedly I'm somewhat of a greybeard by this point... However... I thought that vibe coding was .... exactly heavily using AI...

    I know this not the place; but what exactly is your definition of 'vibe coding' since you've used it with such confidence in your comment perhaps you can enlighten this programmer..

    • serial_dev 2 hours ago

      Others already linked the original vibe coding tweet https://x.com/karpathy/status/1886192184808149383

      To me, vibe coding means you don't get bogged down by the code, you just say your requirements and complain about end result until it works.

      Heavily using AI, in comparison could mean 1. ask for small code snippets, 2. ask it to explain concepts, 3. ask which APIs to use and how, 4. ask it to rephrase your strings, ..., but you still "care" about the code and understand what's going on.

    • JimDabell 15 hours ago

      Vibe coding is heavily using AI, but heavily using AI is not necessarily vibe coding.

      Vibe coding is when you disregard the code altogether and build something throwaway for fun that you don’t care about maintaining:

      > There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. […] It's not too bad for throwaway weekend projects, but still quite amusing. I'm building a project or webapp, but it's not really coding - I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.

      https://x.com/karpathy/status/1886192184808149383

      • tobias5 14 hours ago

        I now checked that X post. Very interesting. I would say the app is already too big to just do that. I think a good approach is to give the AI small packages but control the overall structure

    • gdudeman 17 hours ago

      My definition is that heavily using AI for autocomplete or to write well defined methods is using AI, but vibe coding is instructing AI agents to complete a task and squinting at the multi-file results (e.g. "Now plan out how we will store this data... <mild feedback to the plan> Now execute that plan.").

      Claude Code is very vibe code.

  • tobias5 14 hours ago

    I have some background with other coding languages which helps and also watched some YouTube videos about SwiftUI best practice.

    But I heavily used AI to get code snippets, explain code and also correct some stuff. To me as someone using SwiftUI for the first time, it felt like a 10x productivity gain. But SwiftUI also feels nice to code

  • CharlesW a day ago

    > I really would have thought it’s already part of the iOS built in apps!

    Between the Apple Watch and Fitness app, you can see your heart rate zone during a workout, and then review workout heart rates/zones over time afterward. https://support.apple.com/guide/watch/view-heart-rate-zones-...

    • tobias5 15 hours ago

      Yes the is some stuff already in Apple Health, but I for me personally had the need to see not just the zones for single workouts. So with Heart Rate Zones Plus I can see the zones I was in each day, week, last 7 days, month and last 30 day. Also the option to just check time in moderate and vigorous exercise per e.g. week was missing for me. I try to hit the recommendations of 150 moderate minutes and 75 vigorous exercise minutes here - and be able to check that in a fast easy way.

      Also I have a coworker who is never actively tracking the workouts in the gym. As I'm using all heart rate measurements, I would still give you an idea of you zones. Also if you run up the stairs Heart Rate Zones Plus might catch that as high zone.

      In addition the calculation methods of Apple for the Zones are just "one method" I added a few more options I found in scientific literature of how to estimate, because depening on you fitness and body in general it may be different for you.

    • tchock23 a day ago

      Sort of. You can only see your real-time heart rate on your phone when you're doing a cycling workout for some weird reason. Otherwise you have to awkwardly look at your watch if you're walking/running.

      • mathgeek a day ago

        I was surprised that the watch is the awkward thing to look at for you, as I have always found a phone to be awkward to look at while working out in any way. Learned a new perspective today.

      • ra7 a day ago

        This doesn't entirely help, but for most (if not all) workouts, you can set alerts for specific heart rate zones. Of course, this is very cumbersome to do per workout on the watch.

  • yapyap a day ago

    0.37x is slower

    From the vibe of your comment I assume you mean 1.37x

    • serial_dev 2 hours ago

      What I meant is that it takes about three times longer to do something with AI tools than without.

      In a real large scale project, it takes longer to get the tool give me the code that solves the problem and will pass the code review. Even if I don't let cursor write code for me, ChatGPT and the rest regularly hallucinates APIs that don't exist.

      So during my daily job, I usually just do it myself. I still use them as "better Google", but I always need to double check everything.

    • switchbak a day ago

      > 0.37x is slower

      I don't think that's an accident.

Driky 10 hours ago

Congrats!

Note: I was not able to find the app in the app store on my iphone even by searching for the exact name. I had to open a browser search for the app and click open with app store. Note sure why (tried from canada if that makes any difference).

throwanem a day ago

I like this visualization! I'm not doing a kind of training these days where it would be useful for me, but I wish I'd known about something like it when I was.

Do you support Apple watch? I never actually targeted that or owned one (I like a much more stylish smartwatch!) and thus don't immediately know how to spot that integration on an App Store detail page, hence the need to ask. But I get the sense a lot of folks who do train seriously like to do that with an Apple watch as primary or only device, and I could see enough utility in getting something like this kind of view in effective real time, to make the integration possibly worth considering. (If not already present! Or who knows, maybe Apple watches natively do that and now I know what the "heart rate push" feature on mine is imitating... ;)

  • bryan0 a day ago

    The Apple watch Workout app has a heart zone view while you're working out, but I don't think it has a workaround summary of how much time you spent in each zone.

    • vitaflo a day ago

      That gets pushed to the Fitness app on iOS. It breaks down the entire workout.

      • ellisv a day ago

        But unfortunately Fitness and Health don’t summarize HR zone data across workouts

    • tobias5 12 hours ago

      The app is not just getting heart rate measurements from workouts but in general. But as mentioned the interesting thing is that it's doing a sum per day, week, month, last 7 days and last 30 days

  • IncreasePosts 18 hours ago

    Heart rate zone training is always useful for general health. Unless you have an ultra terminal illness you would probably benefit from some zone 2 training...basically just a brisk walk(where you can still have a conversation, but you feel like you're putting in more work than sitting on a couch, probably around 125 bpm) for 45 mins 2 or 3x a week will greatly improve the heart health for most people.

    • throwanem 17 hours ago

      I no longer do HIIT of any type, but do frequently leave my couch and indeed my home. I wear a smartwatch that reads pretty close to my real heart rate and is, if not ideally accurate, then at least sufficiently precise. More than that these days would be wasted on me. But I appreciate your motivation in commenting, and confide many here might benefit by your good effort.

kccqzy a day ago

I would prefer an adaptive approach where the user also enters perceived difficulty and the app learns the correlation between heart rate and perceived difficulty to figure out the zones. I consistently have high heart rate during exercise: a normal walk might get my heart rate to 130, and a moderate run (10:30/mile) might get my heart rate to 180. A very fast run gets my heart rate to 215 (this is beyond the max measurement of the Apple Watch which is 210bpm; I had to use a Garmin HRM to get this measurement). I don't really trust the zones information iOS calculates by default, and it seems like I also can't trust the zones in this app. Switching to the Karvonen method makes the numbers look believable, but I'm not sure where the intensity comes from.

  • tobias5 14 hours ago

    Happy that you found the Karvonen method first of all. The intensity is just the percentage of the zones. So zone 2 the lower end would be 0.6 and the upper intensity of the zone would be 0.7.

    I'm using (0.5, 0.6), => Zone 1 (0.6, 0.7), => Zone 2 (0.7, 0.8), => Zone 3 (0.8, 0.9), => Zone 4 (0.9, 1.5) => Zone 5

    If you are able to reach 215 the problem might be that most of the calculations do 220 - age or something similar for max heart rate.

  • ellisv 9 hours ago

    If your Garmin HRM can write data to the Apple Health app then it would use that HR data. Without measuring your lactate threshold, you don't really know what your zones are. Apple has a concept of "effort" which is a single rating for the entire workout and it'd be interesting to incorporate that.

    • kccqzy 8 hours ago

      Yes I like that concept of effort. My question basically boils down to whether the user-provided effort value should be used to calibrate the zones.

  • IncreasePosts 18 hours ago

    Have you talked to a doctor about this? It's certainly not normal. Do you have hyperthyroidism, anemia, or anything like that which can cause elevated heart rates during exercise?

ashryan 10 hours ago

Excited to try this! I just started zone training a couple of weeks ago as a way to target VO2 Max increases. I’ve indeed found it hard to track time in zone across a week.

Thanks for building this!

jondishotsky 12 hours ago

This is super cool! I downloaded it, a features I would love to see: A message on Friday morning - "You're lacking on these zones of training, take the next 3 days to focus on them."

  • tobias5 11 hours ago

    Cool idea. Thanks

gdudeman 17 hours ago

Clean and simple. There are a million apps that over think this, have weird onboarding, and aren't nearly this useful.

Thank you!

  • tobias5 15 hours ago

    Happy that you like it. Hope you become a frequent user. Thanks

aziaziazi 12 hours ago

Looks great! Require iOS 18, however I’m on iOS 15 and not willing to throw my working iPhone yet.

Any chance you "down-port it" ? Or open source and accept contributions / clones ?

  • tobias5 11 hours ago

    Thanks. I will take a look into that, but I think with iOS 16 there were a lot of changes.

wesgarrison a day ago

This is great, congrats on shipping it!

I like the interface but for the life of me I think I should be able to go back a period (“last week”). I think a week starts on Monday?

  • tobias5 13 hours ago

    The week starts on monday yes. Thanks for also giving the hint that you want last week. for now maybe the "last 7 days" option would be useful for you

ellisv a day ago

Congratulations!

I also wrote an iOS app to do this exact same thing, although it’s unfinished and unpublished. I had a lot of trouble getting the app to perform well (what’s your secret?!)

Couple of things I implemented that you may want to consider:

1) onboarding flow to help users setup the app on first launch

2) filter certain workouts to include/exclude by type, duration, etc

3) home screen widget

Id love to chat if you’re open to it.

  • tobias5 12 hours ago

    Hey thanks for the feedback. The secret? I'm not sure? You had issues with the speed or getting the data and updating the view?

    What I did is adding a loading indicator and fetching data onChange, so if I change e.g. bow heart rates are calculated it starts to fetch instantly after the change not only on the view with the bars.

    And I'm currently just fetching 30 days. I think this will be interesting if I try to extend it.

    Onboarding flow, Home screen widget is on my list. Thanks.

    The filtering would also be interesting. Haven't though about hat because I usually myself do always the same workouts

    • ellisv 9 hours ago

      My speed issue was in getting the data (although I think it is fixed now).

      The other big performance problem I've had is the simulator hanging when I try to use Swift Charts.

      My primary interest was in monitoring my total zone 2 time for cardio workouts where I spend at least 30 consecutive minutes in zone 2. However I've reduced the scope for now while I get the minimum viable app up and running.

tea-coffee 21 hours ago

Not sure if it is mentioned in the app description, but how is heart rate calculated? Using the Apple Watch?

  • JimDabell 15 hours ago

    It uses Apple HealthKit, so anything that writes heart rate data to Apple Health. In most cases this will be Apple Watch, but other devices with heart rate sensors should work too.

maperz a day ago

Congratulations on your first App! I like the clean design and the simple configuration.

I would love to have a widget that shows my progress in the zones. Ideally this could be configured to e.g. only show progress in Zone 2 if thats my current training goal.

Keep up the good work and thanks for sharing!

voisin 21 hours ago

It would be great if it was quicker to switch between time periods, like swiping to compare week by week or month by month.

Also, to filter by workout type. I care about zone for running but not for strength.

  • tobias5 12 hours ago

    The filter mentioned at least twice here. I like the idea. Currently it's taking all the heart rate measurements, because my initial idea was to track also for people who do not activly switch on workouts when they are doing sport. But for people who do propert tracking they want just to include "cardio sports" probably

ra7 a day ago

Looks clean!

Does the Health app not allow you to automatically grab resting heart rate and max heart rate? I'm not sure why I would manually set those values in settings when they are already tracked in Health.

tchock23 a day ago

Nicely done! UI is clean and I really like that you give different options on how to calculate the zones since most apps just take the simplified % of max HR for zone calculations.

nikitoci a day ago

The ability to set max heart rate manually would be appreciated, neither of five available formulas provide accurate estimates at least for me.

nonameiguess a day ago

I can't tell from reading the listing if this is a feature or not, but if not, you should add the ability to set custom targets that match your real heart rate zones rather than relying on the naive population estimators that Apple gives you, along with more important metrics like LT1 and LT2 thresholds and VO2 max. Ideally, this would be a feature of the exercise tracker itself, but getting it in a data rollup app is better than nothing.

pbreit a day ago

Can an iPhone app figure out your blood pressure (with sufficient reliability)?

  • brandonb a day ago

    Not now, but future Apple Watches are rumored to track blood pressure through analysis of pulse transit time: https://www.empirical.health/blog/apple-watch-blood-pressure...

    • jodrellblank 20 hours ago

      Oh that's clever! Garmin's watches[1] estimate stress levels by variability of pulse rate, and they estimate breathing rate by looking for sinus arrhythmia (the benign change in heart rate speeding up when breathing in and slowing down when breathing out) which is cool. I wonder if any pick up ectopic beats with the normal continuous pulse sensor and not the 1-lead EKG thing?

      [1] possibly other brands too, I didn't look

    • dns_snek 15 hours ago

      I'm skeptical, even classic wrist blood pressure monitors with a cuff are notoriously inaccurate compared to upper arm monitors, could a watch really come close with even less data?

  • kube-system a day ago

    ... if you connect a blood pressure monitor, yes.

    This app isn't figuring out your heart rate with just the phone's hardware. It is displaying heart rate data from Apple Fitness, which comes from heart rate sensor data (e.g. the one on an Apple Watch)

sneak 11 hours ago

Thank you for not surveilling your users! It’s noticed and appreciated.

fud101 15 hours ago

Zones are useless tbh unless you know your max HR. My watch tells me i'm in zone 2 but that was based on a value I put in for max which i care not to test anytime soon.

  • tobias5 12 hours ago

    I do an estimation of max HR, with different methods. This is really just an estimation. For resting HR, which can also be used to get the Zones if you select Karvonen method, I use an export from Apples HealthKit. I currently do the average of the last 7 days. Not sure if Apple does an estimate for this value, too?

    • fud101 11 hours ago

      Oh how cute, estimates. 220-age is so accurate lol. Just a joke to even talk about this nonsense, it's completely unhelpful in all manner. I just set myself an arbitrary goal for the run (say 160bpm over an hour, which is something i'm working towards so i may be say averaging 165 currently) and try to attain that progresively each week. No idea what zone that is, don't care. If it's currently 'zone 4' so what? It will eventually become 'zone 2'. If i spend all my time doing 'zone 2' at worst i'll be wasting time, at best, i'll be spinning my wheels.

jpc0 a day ago

More an organisational thing but, what is the long term sustainability plan for this project. Apple Developer Program isn’t free and apple isn’t exactly well known for keeping stable APIs.

If the answer is “until I don’t want to do it anymore” that is perfectly fine but then can there be a commitment to open sourcing (if it isn’t already) when you make that decision?

  • throwanem a day ago

    I seriously doubt Apple will casually abandon HealthKit. They are not Google, and I'm sure the contracts underpinning MFi and similar marks for major partners have savagely punitive terms that would enable those partners to recover in any such case.

    • jpc0 a day ago

      Not what I was referring to, hope this clarifies but apple seems willing to change the API which would require dev time to implement, ie this isn’t a project you can stick on the app store and ignore, it will require continuous effort and cash to keep there and compatible.

      As an individual developer is the owner of the app and code I just want to know if the app will still exist in a year and be functional, otherwise I am not interested regardless of me liking the app idea.

      If OP would like to charge money or accept donations or whatever they would like to do that is fine, but right now those questions are unanswered.

      • throwanem a day ago

        Okay, all granted, but now that we agree you keep all your data which is safe, we only need discuss how no other than totally trivial project I think can really be "[stuck] on the app store and [ignored]," not for more than a couple years. Anything with meaningful platform integration would impose the same requirement, not to mention the $100 pa vig and time investment required just to show up at the party. In 2025, for something whose basic concept is obvious and the differentiator is polish, I don't see this as a tremendously reasonable showstopper the way you're treating it, even for a first time dev.

        "Assume good faith" and that. Fair to ask, but show the courtesy due an equal at least until it is evident that is unwarranted. This engineer has done work demonstrating they are at least my equal and I am not prepared to treat them otherwise only because I have not seen them do so before. The 32/64 bit and Intel/Arm transitions should be enough warning for anyone and lie well within living memory.

        Someone may cavil over "polish," I suppose. I have a 5-quart 'Artisan' Kitchen-Aid stand mixer in lavender, because that nicely sets off my kitchen decor and because I impose light enough duty on that machine to make aesthetics a reasonable figure of merit. This app is not that kind of machine. Who cares what color the cover plates are, when the target audience will never run the machine with them installed anyway?

        (And unless there exists a design patent, why worry about a case where, at worst, you already know what market you need your product to fit?)

        • jpc0 12 hours ago

          I am committing as a user of the app, something I plan to integrate into my life.

          It’s not unfair to want to know whether the author plans to make it viable long term or if it is a project that is scratching their personal itch.

          If it’s a project that’s only meant to scratch a personal itch and they only plan to support it for as long as they deem it useful and have no intention of open sourcing it in the future that is fine, I personally, and I’m sure other , don’t want to bother with it, that doesn’t mean nobody does but it answers a question and prevents disappointment down the line.

          If the author has intentions of supporting it long term then asking about funding or long term development effort assists the author to think about something they might bot have thought about, or at the very least has the author clarify.

          I’m fine with paying for polish, many users are.

          Here the product is already made and in distribution, asking these questions isn’t preventing the project for getting going, they are the next logical step in the life of a project, arguably some of them should have been asked before “going live” like if you would like to monitise the project.

          • throwanem 11 hours ago

            Sure, again, all granted. To reiterate the thesis of my prior comment, 'Fair to ask, but show the courtesy due an equal at least until it is evident that is unwarranted.'

            • jpc0 11 hours ago

              Where is the lack of showing courtesy?

              I asked a question in response to them asking me to download and use their app. Have we reached a point in this world where simply asking a question is offensive? They had every right to choose not to respond just like I can choose not to use their app if they don’t. How you respond is your choice, if you chose to take offence to a question about the long term sustainability of a project that’s on you, for me I don’t want to use software that has no intention of existing long term. If we have different values that’s fine, I don’t care.

              • throwanem 9 hours ago

                A cultural difference, perhaps. I read your tone and line of questioning as brusque if not just shy of insulting, but if you are familiar with the 'ask vs. guess' distinction, I hail from an exceptionally "guess"-oriented culture which I, ironically belatedly, gather may be uncommon in this discussion. Pray excuse me.

                • tobias5 5 hours ago

                  Thanks for this. As the developer of the app, I must confess that to get to the current state was mainly motivated by having fun coding and a general willingness to release it. There was no plan, in that sense, where I want to be in a year or so. For now, I want to focus on building a great product, and the confirmation of a great product for me would be to see usage. To me, to maintain the app for now seems to be not a lot of effort.

                • jpc0 5 hours ago

                  No need to be excused, you did nothing wrong, we misunderstood each other is all.