Giter Club home page Giter Club logo

outrun's Introduction

OutRun

OutRun is an iOS app for recording and viewing your outdoor workouts. Despite the name it supports not just running, but also walking, hiking, cycling and skating.

This project is fully open-source and ad-free.

Features

OutRun has a rich feature set centered around customisation and privacy. The list of features includes:

  • Keep full control over your data
  • Record your outdoor workouts (Running, Walking, Hiking, Cycling and Skating)
  • View detailed statistics
  • Export your workouts as GPX or OutRun-Backup (.orbup)
  • Fully customise the recording process
  • Synchronise with Apple Health

Contribution

You want to make this app even better? No problem! There are lots of ways you can contribute even if you cannot code yourself:

  • Share this project. The simplest way of contributing is by sharing this project with your friends and family. Once more people see that it exists, it is more likely to get support and people interested and capable of adding to it.
  • Join the beta. Sometimes features need to be tested before being rolled out to all users, that is where beta testers come in. They receive early and sometimes unstable versions of the app and test them thoroughly, to make sure that others get a more polished product. You can join here.
  • Report Issues. If you see some parts of the app not working as expected, if you want to give any kind of feedback or if you just have a question you can submit an issue on the issue page of this project.
  • Write Code. And then there is the standard way of contributing to an open-source project. You can always write code that advances the app. To see how to contribute look at the Contribution Guidelines.
  • Translate. Last but definitely not least there is translation which is an integral part to make this project available to more people in more countries. For more information on contributing read the following section.

Translation

OutRun uses Weblate as a tool to make translation easier. Once languages are fully translated on said platform they will be added to the project and published to the AppStore.

So far the following languages are supported:

Language Translation Status
Catalan ca translation status
Croatian hr translation status
Czech cs translation status
Danish da translation status
Dutch nl translation status
English en translation status
Finnish fi translation status
French fr translation status
German de translation status
Italian it translation status
Polish pl translation status
Spanish es translation status
Swedish sv translation status

If you want to add languages or improve already translated ones you can do this here.

Donation

This project currently does not accept any kinds of donation, neither in-app nor through external methods. For now the only ways to contribute can be found under Contribution.

If you cannot contribute in any other way than financially or just feel really generous at the moment you could consider supporting the folks at Weblate. They are providing their services to OutRun for free, because they are great believers in open-source development, it still costs them money to host the project on their website though, so supporting them also directly benefits OutRun.

License

OutRun is published under the GNU GENERAL PUBLIC LICENSE Version 3 (GLPv3):

OutRun
Copyright (C) 2020 Tim Fraedrich <[email protected]>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

outrun's People

Contributors

lmparppei avatar lpla avatar oversticht avatar roberthsiqueira avatar timfraedrich avatar weblate avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

outrun's Issues

Crashes in background due to CPU usage

Describe the bug
Sometimes while recording a workout with the phone locked, OutRun crashes, losing the workout. The crash logs indicate this is due to CPU usage (cpu_resource_fatal).

To Reproduce
Unfortunately I don't have a way to reproduce this consistently.

Expected behavior
OutRun doesn't crash.

Screenshots
No screenshots, but crash logs are below.

Device Information (please complete the following information):

  • iPhone: X
  • OS: 13.6.1 and 13.7
  • Version 1.2.1

Crash Logs

{"app_cohort":"2|date=1597802400000&sf=143441&tid=ee6d14f45c0254981965d99bd41a4ba1c3aa0709a77c3ac635bd5db03b1f249d&ttype=e","app_name":"OutRun","app_version":"1.2.1","timestamp":"2020-08-31 06:29:31.00 -0700","slice_uuid":"16897B6D-1DC9-3E27-880F-64C7E8BE6F19","adam_id":1477511092,"build_version":"1","bundleID":"de.tadris.OutRun","share_with_app_devs":0,"is_first_party":0,"bug_type":"206","os_version":"iPhone OS 13.6.1 (17G80)","incident_id":"47DE3FF9-8EB2-4BD4-8CE3-0FC68A83C35A","name":"OutRun","is_beta":1}
Date/Time:        2020-08-31 06:28:40 -0700
End time:         2020-08-31 06:29:30 -0700
OS Version:       iPhone OS 13.6.1 (Build 17G80)
Architecture:     arm64
Report Version:   29
Incident Identifier: 47DE3FF9-8EB2-4BD4-8CE3-0FC68A83C35A

Data Source:      Microstackshots
Shared Cache:     0x7ee8000 A0272339-EEC2-3EA9-9009-7910B8BC1928

Command:          OutRun
Path:             /private/var/containers/Bundle/Application/52CAF9F6-730C-4E54-9973-DA52B0F3BE23/OutRun.app/OutRun
Identifier:       de.tadris.OutRun
Version:          1.2.1 (1)
Beta Identifier:  F09BCF22-0C58-4808-93E8-18DFCDC00CCF
PID:              7650

Event:            cpu usage
Action taken:     Process killed
CPU:              48 seconds cpu time over 50 seconds (96% cpu average), exceeding limit of 80% cpu over 60 seconds
CPU limit:        48s
Limit duration:   60s
CPU used:         48s
CPU duration:     50s
Duration:         49.97s
Duration Sampled: 47.57s
Steps:            12

Hardware model:   iPhone10,6
Active cpus:      6


Heaviest stack for the target process:
  12  ??? (libsystem_pthread.dylib + 47988) [0x188098b74]
  12  ??? (libdispatch.dylib + 272460) [0x18802e84c]
  12  ??? (libdispatch.dylib + 234828) [0x18802554c]
  12  ??? (libdispatch.dylib + 232252) [0x188024b3c]
  12  ??? (libdispatch.dylib + 374052) [0x188047524]
  12  ??? (libdispatch.dylib + 371112) [0x1880469a8]
  12  ??? (MapKit + 2118132) [0x195f421f4]
  12  ??? (OutRun + 57592) [0x1044d20f8]
  12  ??? (OutRun + 56592) [0x1044d1d10]
  12  ??? (CoreGraphics + 2057740) [0x18f24560c]
  12  ??? (CoreGraphics + 2018192) [0x18f23bb90]
  12  ??? (CoreGraphics + 2010616) [0x18f239df8]
  12  ??? (CoreGraphics + 2667096) [0x18f2da258]
  6   ??? (CoreGraphics + 2405380) [0x18f29a404]


Powerstats for:   OutRun [7650]
Bundle ID:        de.tadris.OutRun
Adam ID:          1477511092
Is first party:   No
App version:      1.2.1
Build version:    1
Is Beta:          Yes
Share with Devs:  No
UUID:             16897B6D-1DC9-3E27-880F-64C7E8BE6F19
Path:             /private/var/containers/Bundle/Application/52CAF9F6-730C-4E54-9973-DA52B0F3BE23/OutRun.app/OutRun
Architecture:     arm64
Footprint:        131.39 MB
Pageins:          1 pages
Start time:       2020-08-31 06:28:42 -0700
End time:         2020-08-31 06:29:29 -0700
Num samples:      12 (100%)
CPU Time:         46.862s
Primary state:    11 samples Non-Frontmost App, Non-Suppressed, User mode, Effective Thread QoS Background, Requested Thread QoS User Initiated, Override Thread QoS Unspecified
User Activity:    12 samples Idle, 0 samples Active
Power Source:     12 samples on Battery, 0 samples on AC
  12  ??? (libsystem_pthread.dylib + 47988) [0x188098b74]
    12  ??? (libdispatch.dylib + 272460) [0x18802e84c]
      12  ??? (libdispatch.dylib + 234828) [0x18802554c]
        12  ??? (libdispatch.dylib + 232252) [0x188024b3c]
          12  ??? (libdispatch.dylib + 374052) [0x188047524]
            12  ??? (libdispatch.dylib + 371112) [0x1880469a8]
              12  ??? (MapKit + 2118132) [0x195f421f4]
                12  ??? (OutRun + 57592) [0x1044d20f8]
                  12  ??? (OutRun + 56592) [0x1044d1d10]
                    12  ??? (CoreGraphics + 2057740) [0x18f24560c]
                      12  ??? (CoreGraphics + 2018192) [0x18f23bb90]
                        12  ??? (CoreGraphics + 2010616) [0x18f239df8]
                          12  ??? (CoreGraphics + 2667096) [0x18f2da258]
                            6   ??? (CoreGraphics + 2405380) [0x18f29a404]
                            4   ??? (CoreGraphics + 2405524) [0x18f29a494]
                            1   ??? (CoreGraphics + 2405404) [0x18f29a41c]
                            1   ??? (CoreGraphics + 2405292) [0x18f29a3ac]
                              1   <Kernel mode>

  Binary Images:
           0x1044c4000 -                ???  de.tadris.OutRun 1.2.1 (1) <16897B6D-1DC9-3E27-880F-64C7E8BE6F19>  /private/var/containers/Bundle/Application/52CAF9F6-730C-4E54-9973-DA52B0F3BE23/OutRun.app/OutRun
           0x187fec000 -        0x188060fff  libdispatch.dylib          <361DA09A-E7CE-30EB-8DFC-9D9AF9DE4A0A>  /usr/lib/system/libdispatch.dylib
           0x18808d000 -        0x18809dfff  libsystem_pthread.dylib    <24DC6E6F-6798-3F65-908A-F9873447C9D1>  /usr/lib/system/libsystem_pthread.dylib
           0x18f04f000 -        0x18f5befff  CoreGraphics               <C586E13E-67F9-392A-B8FC-E15D8E1A0207>  /System/Library/Frameworks/CoreGraphics.framework/CoreGraphics
           0x195d3d000 -        0x195f7ffff  MapKit                     <C7CE0C73-2266-30A9-B8C5-39636017D423>  /System/Library/Frameworks/MapKit.framework/MapKit
{"app_cohort":"2|date=1597802400000&sf=143441&tid=ee6d14f45c0254981965d99bd41a4ba1c3aa0709a77c3ac635bd5db03b1f249d&ttype=e","app_name":"OutRun","app_version":"1.2.1","timestamp":"2020-09-03 13:01:01.00 -0700","slice_uuid":"16897B6D-1DC9-3E27-880F-64C7E8BE6F19","adam_id":1477511092,"build_version":"1","bundleID":"de.tadris.OutRun","share_with_app_devs":0,"is_first_party":0,"bug_type":"206","os_version":"iPhone OS 13.7 (17H35)","incident_id":"C9411331-9993-4761-A584-5A6349CA60EB","name":"OutRun","is_beta":1}
Date/Time:        2020-09-03 13:00:09 -0700
End time:         2020-09-03 13:01:01 -0700
OS Version:       iPhone OS 13.7 (Build 17H35)
Architecture:     arm64
Report Version:   29
Incident Identifier: C9411331-9993-4761-A584-5A6349CA60EB

Data Source:      Microstackshots
Shared Cache:     0x127cc000 34953B50-8FB0-38D9-9C51-8CD60555E187

Command:          OutRun
Path:             /private/var/containers/Bundle/Application/52CAF9F6-730C-4E54-9973-DA52B0F3BE23/OutRun.app/OutRun
Identifier:       de.tadris.OutRun
Version:          1.2.1 (1)
Beta Identifier:  F09BCF22-0C58-4808-93E8-18DFCDC00CCF
PID:              3490

Event:            cpu usage
Action taken:     Process killed
CPU:              48 seconds cpu time over 51 seconds (93% cpu average), exceeding limit of 80% cpu over 60 seconds
CPU limit:        48s
Limit duration:   60s
CPU used:         48s
CPU duration:     51s
Duration:         51.35s
Duration Sampled: 25.02s
Steps:            4

Hardware model:   iPhone10,6
Active cpus:      6


Heaviest stack for the target process:
  4  ??? (libsystem_pthread.dylib + 47988) [0x19297cb74]
  4  ??? (libdispatch.dylib + 272460) [0x19291284c]
  4  ??? (libdispatch.dylib + 234828) [0x19290954c]
  4  ??? (libdispatch.dylib + 232252) [0x192908b3c]
  4  ??? (libdispatch.dylib + 374052) [0x19292b524]
  4  ??? (libdispatch.dylib + 371112) [0x19292a9a8]
  4  ??? (MapKit + 2117972) [0x1a082d154]
  4  ??? (OutRun + 57592) [0x1025760f8]
  4  ??? (OutRun + 56592) [0x102575d10]
  4  ??? (CoreGraphics + 2057740) [0x199b3060c]
  4  ??? (CoreGraphics + 2018192) [0x199b26b90]
  4  ??? (CoreGraphics + 2010616) [0x199b24df8]
  4  ??? (CoreGraphics + 2667096) [0x199bc5258]
  3  ??? (CoreGraphics + 2405524) [0x199b85494]


Powerstats for:   OutRun [3490]
Bundle ID:        de.tadris.OutRun
Adam ID:          1477511092
Is first party:   No
App version:      1.2.1
Build version:    1
Is Beta:          Yes
Share with Devs:  No
UUID:             16897B6D-1DC9-3E27-880F-64C7E8BE6F19
Path:             /private/var/containers/Bundle/Application/52CAF9F6-730C-4E54-9973-DA52B0F3BE23/OutRun.app/OutRun
Architecture:     arm64
Footprint:        125.77 MB
Start time:       2020-09-03 13:00:34 -0700
End time:         2020-09-03 13:00:59 -0700
Num samples:      4 (100%)
CPU Time:         24.607s
Primary state:    4 samples Non-Frontmost App, Non-Suppressed, User mode, Effective Thread QoS Background, Requested Thread QoS User Initiated, Override Thread QoS Unspecified
User Activity:    4 samples Idle, 0 samples Active
Power Source:     4 samples on Battery, 0 samples on AC
  4  ??? (libsystem_pthread.dylib + 47988) [0x19297cb74]
    4  ??? (libdispatch.dylib + 272460) [0x19291284c]
      4  ??? (libdispatch.dylib + 234828) [0x19290954c]
        4  ??? (libdispatch.dylib + 232252) [0x192908b3c]
          4  ??? (libdispatch.dylib + 374052) [0x19292b524]
            4  ??? (libdispatch.dylib + 371112) [0x19292a9a8]
              4  ??? (MapKit + 2117972) [0x1a082d154]
                4  ??? (OutRun + 57592) [0x1025760f8]
                  4  ??? (OutRun + 56592) [0x102575d10]
                    4  ??? (CoreGraphics + 2057740) [0x199b3060c]
                      4  ??? (CoreGraphics + 2018192) [0x199b26b90]
                        4  ??? (CoreGraphics + 2010616) [0x199b24df8]
                          4  ??? (CoreGraphics + 2667096) [0x199bc5258]
                            3  ??? (CoreGraphics + 2405524) [0x199b85494]
                            1  ??? (CoreGraphics + 2405380) [0x199b85404]

  Binary Images:
           0x102568000 -                ???  OutRun                  <16897B6D-1DC9-3E27-880F-64C7E8BE6F19>  /private/var/containers/Bundle/Application/52CAF9F6-730C-4E54-9973-DA52B0F3BE23/OutRun.app/OutRun
           0x1928d0000 -        0x192944fff  libdispatch.dylib       <D4F3CE0B-EB3B-3EC8-94E8-82BCD861983A>  /usr/lib/system/libdispatch.dylib
           0x192971000 -        0x192981fff  libsystem_pthread.dylib <9386976B-68D4-30AA-B7EC-80E088D3FFD1>  /usr/lib/system/libsystem_pthread.dylib
           0x19993a000 -        0x199ea9fff  CoreGraphics            <C7B5ACD8-5227-3122-AC18-312F6CC52057>  /System/Library/Frameworks/CoreGraphics.framework/CoreGraphics
           0x1a0628000 -        0x1a086afff  MapKit                  <69CAF404-31C4-3935-8804-CEEFF7BB7889>  /System/Library/Frameworks/MapKit.framework/MapKit

Donations

I really enjoy using this app and am looking forward to see continuing development. Would it incentivise by giving donations?

Add start time of workout to History view

Is your feature request related to a problem? Please describe.
When looking through the workout history, I would find it very helpful to have the start time displayed without needing to tap into the workout.

Describe the solution you'd like
I think this could be accomplished by using an icon to indicate the workout type and replacing the current workout text with the start time.

Here's a rough mockup of how this could look:
4C91608F-675C-4164-AE87-BE42F539AF6B

Bluetooth sensors support

I realize that other features have higher priority, however support for bluetooth sensors such as heartrate, bike pedal cadence etc. is something I would definitely add to the long term roadmap!

Burned Energy is not calculated when workout type gets altered

When you change the workout type after saving the workout, the burned energy will not be recalculated in the DataManager.alterWorkout function.

To implement this there must first be a function to calculate the weight of the person doing the workout back from the original burned energy value and the workout type in the BurnedEnergyCalculator. And then from that the new value can be calculated through the BurnedEnergyCalculator. calculateBurnedCalories function.

How the weight can be calculated back in the first place should be evident from the equation used to calculate the value (commented above the function).

More detailed values for duration and distance

In the workout summary the workout duration and distances are only shown as rounded values.
E.g. if my workout took me 1:39h it is shown as 2hours.
Same goes for distances being shown as full kilometer values.

I don't see a reason why durations should not show the precise value and distances are not represented by at least one or maybe two decimal places.

Changing this should not be an issue as there is enough space and it would help comparing workouts to each other.

Cadence

App should use motion sensor to display cadence while running, and maybe store median cadence for run

Add audio cues

Many users have been asking for audio cues during a workout. This should be implemented in the form of sounds and voice announcements.

No altitude data recorded

Describe the bug
OutRun is not recording altitude data - when viewing a workout, that section is blank.

To Reproduce
Steps to reproduce the behavior:

  1. Record and save a workout
  2. View it in history
  3. Ascending and Descending both say "0m" and the graph is blank.

Expected behavior
Altitude data should be recorded and viewable.

Screenshots
AC7FE7A3-2D53-46B1-B8BC-58D5B8ABDC35

Device Information (please complete the following information):

  • iPhone: X
  • OS: 13.6
  • Version 1.2

Additional context
This seems to have worked for the very first workout I recorded with OutRun but hasn't worked since. Location permission is set to "While Using".

Weight number changes after being set by user

Firstly, thanks for open sourcing this app! It's quite nice :)

Describe the bug
When users enter a value for weight it will change after the value is set. Eg: When I enter 135lbs it changes to 134.99lbs. This also happens when I tried entering a value in kilograms though I had to add more decimals for it to change. If I had to guess what the issue is, I would say that the app calculates things in kilos and rounds them nicely which causes values entered in pounds to be rounded strangely. For what it's worth, I think the imperial system is very dumb but we generally use it for weight in Canada for.... some reason. 🙃

To Reproduce
Steps to reproduce the behavior:

  1. Go to app Settings
  2. Change the weight value
  3. See error

Expected behavior
I expect the value I set to be the value that is displayed / used.

Device Information (please complete the following information):

  • iPhone: iPhone Xr
  • OS: iOS 15.5
  • Version: 1.3

Option to show “min/km” data for each km in activity summary

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

I am used to view the race pace graph after a running session in other apps, showing which time took each kilometer instead speed in “km/h”.

Describe the solution you'd like
A clear and concise description of what you want to happen.

A switch in configuration should work, replacing speed graph with race pace graph, as this info is not useful for everyone.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Showing the kilometers using a vertical line in another color with the race pace time stamp in the current speed graph should work too, but maybe that’s many information in a single graph. That’s why I suggested a toggle. But that switch could work for this instead, too.

Additional context
Add any other context or screenshots about the feature request here.

Topmost map in History doesn't change when dark mode toggled

Describe the bug
When dark mode is toggled, the very first map in History doesn't switch like the others. If going from light to dark, it will stay light, and vice versa.

To Reproduce
Steps to reproduce the behavior:

  1. Go to History
  2. Toggle Dark Mode
  3. The first map will stay in the previous mode

Expected behavior
The first map should change like the others.

Screenshots
78CC9164-F1B9-43D1-9CCE-EBA36B83CD22

Device Information (please complete the following information):

  • iPhone: iPhone X
  • OS: 13.6.1
  • Version: 1.2 (6) beta

Document Project

In the long run this whole project should be well documented, during this process there will be references on every addition of documentation of the initial project code in this issue.

Please make sure to reference it if you contribute code documentation.

Add totals feature. Miles cycled this week/month/year, miles ran this week/month/year. All time totals, etc.

Is your feature request related to a problem? Please describe.
I would like to be able to track my totals over time. I use OutRun to track all of my cycling, and it would be nice to know what the total miles tracked is, total miles this week, total for the year, etc.

Describe the solution you'd like
Potentially a button that would open up a new screen, maybe another tab on the bottom. Display totals by category (walking, hiking, cycling, running, etc, maybe a combined one) and then within each category, totals for the week/month/year/all time. Maybe a period-to-period comparison as well? That's 12 more miles than last month! (+10%) but defo not required. Maybe some kind of history so you could review totals from past periods?

Describe alternatives you've considered
I've tried using the Apple health integrations, but I can't seem to find an easy way to get totals out of it either. The best I can do is per day and then adding them all up, or taking the month average and multiplying by the number of days cycled in that month. Not ideal.

Did also consider exporting and using Python to figure it out, but that sounded like a lot of effort that would probably be better a dev doing once and integrating into the solution rather than me messing around every time I want to total up my miles.

Full Apple HealthKit Support / Full Data Write to Apple Health

Would be very nice, if the app will provide full Apple HealthKit intgeration or let's say the app should write full data to Apple Health App.
For example the GPS Data will not be written to Apple Health. If i go inthe the Health App and look for the trainings (activities) the gps route is not shown.

App does not work without Motion & Fitness access

So far when completing the setup you are stuck at the permission screen if you did not enable 'Fitness Tracking' on your device or if you do not want to share that data with OutRun. This should not be the case.

Since the data received from Apple's CoreMotion framework is inessential to the recording of
a workout, the permission should not be mandatory. There should be a switch in the setup and in settings to disable said access which will result in no motion data being recorded.

Altitudes sudden drop and raise after starting and pauses

Describe the bug
Every session I start begins with a large altitude jump. Same with pauses. Not sure if this is a bug in Outrun or my iPhone.

Screenshots
5A3562C3-61F4-49D6-825E-FAD6ACBEF5CE
CA8453A3-DF43-451E-ADAA-8D4511451676
3DDDF932-F343-45A5-8926-0437C89131B3

Device Information (please complete the following information):

  • iPhone: iPhone8
  • OS: iOS14.1(beta) and iOS14
  • Version: 1.2.1

Improve History display of multiple workouts on the same day

Is your feature request related to a problem? Please describe.
Currently the History view displays the same information header (Today, Yesterday, etc.) above every workout, even when there are multiple workouts on the same day. In my opinion, this adds visual noise without much benefit.

Describe the solution you'd like
I could see two ways to address this.

  1. A single header for each day with all that day's workouts below:

Today
[Workout 1]
[Workout 2]

  1. Continue to have a header for each workout, but add the time.

Today 7:30 AM
[Workout 1]
Today 3:00 PM
[Workout 2]

I'm personally partial to option 1 (although I would like to see start time displayed somewhere in the History view, I'm not sure the header is the right place for it).

I'd be happy to mock this up if the text-based examples aren't clear. Thanks!

Workout list items should have context menus

To interact with a workout in the workout list you first need to click on it and look for the actions you want to perform (most of them are at the bottom). It would be much more convenient to have an iOS context menu to give options like share, edit or delete.

GPX import support

Is your feature request related to a problem? Please describe.
I've tracked some workouts in another app that doesn't sync map data to Health, so when I import them into OutRun, I just get durations. However, it can export to GPX with maps, but OutRun currently can't import them this way.

Describe the solution you'd like
Add support for importing GPX files.

Describe alternatives you've considered
I'm not aware of any alternatives (short of figuring out how to edit the .orbup file and then restoring from that). I've already contacted the developer of the other app and they have no plans to add map sync to Health.

Non-notch iphone add-button padding

Describe the bug
The add-button on an iPhone 8 has no room between the edge of the display and the button. It would look nicer if it has a little more space underneath.

Edit: This happens in more situations. For example in the section with altitude/speed per metres, the metre-numbers are cut off.

Compliments and thanks for creating a small, nice-looking, privacy-friendly app 👍🏿

screenshots
2B7A2CB6-5DE3-4528-A59F-F6242DF8CCE5

236ECE81-F5C9-42AE-B5EC-E4629461B562

Device Information (please complete the following information):

  • iPhone: [e.g. iPhone8]
  • OS: [e.g. iOS14.0]
  • Version [e.g. 1.2.1]

Additional context
Add any other context about the problem here.

Fix iOS 14 design bugs

When adding a workout manually or editing a workout, the date picker for the start date does not work properly, since it was changed in iOS 14

App lags on saving a Workout

When saving a workout it sometimes takes a couple of seconds for the UI to react, because of that a user tends to click on the stop button multiple times ultimately starting a second workout. This sometimes also leads to crashes.

GPS is offset in China

Apparently due to "security concerns" China uses a different GPS system (GCJ-02) than the rest of the world.

Apple Health sync issues

Some users are reporting the automatic import of workouts and saving to Apple Health not working under iOS 14.

Beta expires next week

Describe the bug
Beta version linked in Readme expires next week, so it could create regressions or inconsistencies in the stored data for users using betas that revert to sn old stable release after the expiring date.

To Reproduce
Steps to reproduce the behavior:

  1. Go to the beta link
  2. Open in TestFlight
  3. Check app details

Expected behavior
Another beta or stable release should fix that.

Build Validation into DataManager

After gaining a bigger user base some unprecedented bugs connected to inconsistencies inside the database started showing up, this can be prevented if everything is validated and possibly modified before saved inside the database

Apple Health import keeps on loading indefinitely

When trying to „Import from Apple Health“ sometimes the app keeps on loading indefinitely. The only way to escape this situation is to quit the app, which is not acceptable from a user experience standpoint.

Unable to Compile

XCODE 12.0.1

Have done
sudo gems update cocoapods
pod update (on the downloaded files directory)

Update all pods
Updating local specs repositories
Adding spec repo `trunk` with CDN `https://cdn.cocoapods.org/`
Analyzing dependencies
Downloading dependencies
Installing Cache (6.0.0)
Installing Charts (3.6.0)
Installing CoreGPX (0.8.1)
Installing CoreStore (6.3.2)
Installing SnapKit (5.0.1)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `OutRun.xcworkspace` for this project from now on.
Pod installation complete! There are 5 dependencies from the Podfile and 5 total pods installed.

trying to run it locally on simulator churned out quite a few build issue.

Screenshot 2020-10-17 at 3 38 45 PM

Would appreciate some guidance on what's happening.

/// the disk storage as basis of the caching system
    private let diskStorage: DiskStorage<UIImage>?

clicking no the error declaration points to this

/// Save objects to file on disk
final public class DiskStorage<Key: Hashable, Value> {
  enum Error: Swift.Error {
    case fileEnumeratorFailed
  }

is there a missing "value"?

Thanks

Potentially incorrect prompt label when deleting workout

Describe the bug
When deleting a workout, Outrun prompts asking whether or not to remove the workout from Apple Health. One of the dialog buttons says "NIL", which I assume should be "Cancel" or something like that.

To Reproduce
Steps to reproduce the behavior:

  1. Create and save a workout.
  2. Scroll to the bottom and tap "Delete"
  3. Tap the first "Delete" button in the "Delete Workout?" prompt
  4. The next prompt will list two choices: "NIL" and "Delete"

Expected behavior
Button label is not "NIL"

Screenshots
photo1619415974

Device Information (please complete the following information):

  • iPhone: iPhone XR
  • OS: iOS 14.4.2
  • Version 1.3

Additional context None

Can’t import from the iOS health app

When I try to import data from the iOS health app it displays a message “There seems to be nothing here“

But there is plenty of data in my iOS health app related to exercise and walking and jogging.

Contribution view not working

Describe the bug

The new contributors page/view is not working, as it shows breen al variables instead.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Settings'
  2. Scroll down to 'Contribution'
  3. Get in there

Expected behavior

Contributors should be listed with ‘contribution.json’ content

Screenshots
If applicable, add screenshots to help explain your problem.

image

100km average

Describe the bug
I reached an average of 100kh and see that it only recorded the first part of the run. I am not sure what happened but it looks like it entered rest/pause

Screenshots
8010ECBB-FB0D-4E2D-9246-D1B9F5095744

Device Information (please complete the following information):

  • iPhone: 8
  • OS: iOS 14.2
  • Version 1.2.2 release

Additional context
It has been a while since my last run, situation is that it is a bit colder now, not sure if this could have anything to do with it.

Shortcuts Support

Describe the solution you'd like
It would be great to have functionality of the OutRun app available from the Apple Shortcuts app so that I could automatically start a walk for example.

Crashes constantly

The app has become unusable on both iOS 14.8.1&15.2.1. Crashes on both versions within 5-20 mins. Definitely no way to record my 2 hour daily work outs. Both my iPhone X and 13 Pro Max have the issue.

App crashes because of inconsistencies

Some users on Release 1.2 are experiencing crashes related to data inconsistencies especially connected to WorkoutEvents (Pauses, Continuations).

The issue is mostly associated with ClosedRanges with a higher start value than the end value being created, which leads to a fatal error.

Spanish and Catalan translation

Is your feature request related to a problem? Please describe.
I would like to contribute translating this app into Spanish and Catalan but I can't enable any language in Weblate.

Describe the solution you'd like
I want to ask @timfraedrich to enable those languages in Weblate.

Describe alternatives you've considered
None. I love using this app. I want to contribute so that more friends who don't speak English can use it.

Additional context
I used to translate open source projects with similar websites (crowdin.net). Also, I speak the three languages I mentioned.

Add alternativ view for workout timeline

There should be an alternative view for list elements in the workout timeline, which displays more information (maybe at the loss of the map, so the views do not get too big). The user should be able to choose a preferred view in settings and possibly customise it.

Starting Workout on “waiting” throws error

When the start button on the recording screen is pressed and the WorkoutBuilder is not ready yet the UI will show an error.

Steps To Reproduce

  1. Open recording screen
  2. Make sure it still says "waiting"
  3. Press the start button

Expected behavior

The start button should show three dots indicating to wait and it should not be selectable

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.