What would you like to see in Arc App v3.16?

  • A Places tab similar to the Activity tab
  • Ability to import GPX
  • Custom activity types
  • Improvements to Dark Mode support
  • Shortcuts support
  • Integration with This & That app
  • Import flight data from external sources
  • Ability to import Gyroscope data
0 voters

Arc v3.14.0 is going live any hour now, so it’s time to decide what to focus on building for the next update!

Apologies if I missed something off the list I said I would put in this poll. I feel sure there’s something I’ve missed, but I can’t find where it was discussed on the forum.

Oh, I should say that “An easy way to extract a visit from within another item”, the top voted feature from the previous poll, is the main new feature in v3.14. And so far I’m really liking it! It came out better than I’d hoped.

1 Like

I also vote for export by type to gpx so I can plot my walking routes

2 Likes

I would like to add these to the list:

2 Likes

Thank you for this—I’m really digging it. It’s been super handy!

1 Like

Yeah that feature really surprised me. I figured it was going to be useful occasionally, but it’s ended up being something I use all the time now. Super handy!

I’ve got two feature requests:

First, I would like to have a “Low Power Mode” of sorts, which would (hopefully) significantly reduce the battery drain, because it’s by far the app that uses most of it on my phone.

How about something like “only checking the location every 60 seconds and saving a new data point only if the previous one was more than 100ft away”?

Second, I’d love an automatic export to a web URL so I can receive my own data on a server I manage and store it in any way I like. The manual daily GPX export or iCloud storing isn’t really allowing for it comfortably.

Looking forward to what @matt thinks about these two. Thanks for building this fun and useful app!

Hi @teesche!

Arc already has a Low Power Mode - your phone’s Low Power Mode :wink: If you switch your phone into Low Power Mode then Arc will automatically adjust, reducing sampling frequency, deferring some non-vital processing tasks, and all of the scheduled background tasks. It will also switch to using an extremely minimalist UI instead of the normal full UI.

Though if you’re basing your assumption of Arc using the most energy on what you see in the Settings → Battery view on your phone, you’re likely being mislead. That view doesn’t mean what people think it means. (I’ve gone into long detailed explanations of why, elsewhere on the forum, if you’re up for a long boring read).

Arc is already extremely optimised, using as little energy as possible when recording. The only time it uses a lot of energy is when the app is in the foreground - building the UI, updating the map, etc. The rest of the time the app is using next to nothing.

So basically, the more time you play with the app in the foreground, the more battery it will use. But that is true of all apps - screen time is orders of magnitude more energy expensive than background time.

So you don’t need to treat Arc any differently from other apps in terms of energy/battery use. The more time you spend exploring apps, with the screen on, the more battery will be used. The more time the screen is off, the longer the battery will last. Whether it’s Arc or another app, it makes little difference.

For that you’re better off with something like Google Timeline. I don’t consider that the same class of app. That’s extremely low detail recording, which means most of the things Arc does become impossible - you can’t do much with that low level of detail and accuracy. It’s really outside the scope of what Arc is built for and built to do.

It also doesn’t save you much battery life either. Again, it’s not the recording that uses up battery, it’s the screen time. If Arc is using a lot of battery it’ll be because you’re using it in the foreground for a large amount of time.

Arc’s database is typically measured in gigabytes. It’s massive. Which means that sending the data over the network is extremely energy and network expensive - so much so that it can’t really be done on an iPhone.

Arc’s iCloud Drive backups get around this by the nature of how iCloud Drive works. When an app saves data to iCloud Drive it isn’t immediately synced - iOS decides whether to sync it to the server immediately or to delay the sync until later based on whether the phone is plugged in to power, connected to wifi, and a bunch of other measures.

Because Arc only does its backups when plugged in to power, it’s likely that the iCloud Drive sync will happen within minutes after. But importantly: that decision gets made by iOS, and the cost of that decision borne by iOS instead of Arc. Where as if Arc were to send its data directly to a server, it would bear the full cost of that energy expensive transfer, and be punished by iOS for it. Given the current constraints on iPhones, it wouldn’t end well.

There is however some small hope of eventually supporting other cloud storage providers! The Files app on iPhone (and the underlying systems) do support treating other cloud providers the same way as iCloud Drive, in that data can be saved onto them locally on the phone then later synced to the server when iOS decides it is appropriate.

The catch is that so far none of the other cloud providers have implemented the necessary parts of the “File Provider” interfaces on iOS. But once one of them does, I’ll be looking to enable that functionality in Arc!

Wow Matt, thank you so much for this in-depth reply! I have learned so much from this, thank you for it. I absolutely trust in everything you’ve said, although it seems hard for me to believe. But I guess it’s like this with many things: unless you can grasp a topic’s full complexity, it seems to be a lot more simple than it actually is.

Anyhow, I’d like to share these two screenshots I’ve just made. Can you comment on that? If I understand you correctly, the 30% of my battery usage which was consumed by Arc Mini was nearly completely consumed during the 1 minute I had it on screen? Wow. That must have been a fast drain, which I didn’t notice at that time.



It’s good to know that Arc will respect the system’s Low Power Mode and change a lot about its own behavior, I’ll check that out. Thanks for the explanation!

I guess basically I was wondering if there’s even a possibility to make my dream happen – not necessarily within Arc but with developing for iOS in general. Storing a my personal location database of many gigabytes in size isn’t what I’m after (or what’s useful in general, imho), but rather saving those few different locations I’m visiting during each day, just without having to open any app and manually saving my location at that point, because I always forget. My vision is to have a database consisting of just those 5-10 single LatLng pairs per day.

I’ve started learning SwiftUI for that reason but stumped my feet on the background task challenges to the point that I’m wondering if what I have in mind would in theory even be possible. Without the app being crushed by iOS for weird behavior all the time. Looks like Arc is having those problems a bunch, from what I’ve read here in the forum. (It’s the reason there is a need for Arc Mini at all, right?)

I’m sorry if this is a bit off-topic. But what do you think? Could my vision be implemented? Should I look more into it and start developing that rudimentary app for myself, or is it possibly a dead end because of the iOS limitations?

Thanks again for teaching me all those interesting things in your reply!
Tim

We really should start a separate discussion for this. But to quickly answer this one:

The answer is: Arc Mini didn’t consume 30% of your battery. That’s the first and most troublesome misrepresentation that the Settings → Battery view makes. What it really means is that Mini used 30% of the amount of battery consumed during that time period. So if for example only 10% of a full battery charge was used in the day, and you used two similar apps for equal amounts of time, each of them would show as having used 50%, when really each of them only used 5% of a battery charge.

I go into excruciating detail in this discussion, which will hopefully clear up most of your concerns.

The short version is: Unless you’re actually having problems with your phone running out of charge, don’t bother looking at the Settings → Battery view. And if you do look at it, don’t believe everything it says. Even when you do understand it, it’ll still mislead you for other reasons (like energy used while on battery versus plugged in to power, which it doesn’t differentiate between).

Do you mean just the places you visited? If that’s all you need, then yeah something like Google Timeline or one of the other apps that records lesser detail would do the job. But I guess really you want that data outside of an app, in some format you can use for external analysis.

In which case I’d say you could turn on Arc’s automatic daily JSON exports, then run a script on those files in iCloud Drive to extract the bits you want.

Yeah definitely possible. If you do want to build something yourself, I’d recommend looking at Arc Mini on Github, which is all open sourced there, including the underlying recording engine LocoKit. The LocoKit Demo App also demonstrates how to build a super minimal timeline recorder.

Yeah partly! The more you do in the background (or foreground, for that matter), the more angry iOS will get, and the more likely it will be to terminate the app. Arc Mini and Arc App act as backups for each other, taking over recording if the other one was killed off.

But if all your app is doing is the basics of recording and some minimal data storage and manipulation, then the chances of making iOS angry are much much lower. Arc App is designed to push the hardware to the limits, achieving as much as possible, which makes it a much bigger target for iOS’s ire. But just a plain LocoKit recorder with minimal extra can potentially record uninterrupted for weeks or months, without ever being a target of iOS’s wrath.

1 Like

You’re an absolute rockstar, Matt! Thank you so much for that detailed response and all the new useful information you have just fed my brain. Much appreciated! :heart:

I’ll look into the automatic JSON export feature and see if I can write that script to run through the iCloud Drive files, as you suggested. Great idea. If that turns out to not work well for me, I’ll look into the LocoKit engine. Again, thanks so much for mentioning that. Big help.

I feel the need to thank you in some way – but becoming a subscriber for Arc might not be the path I can take here. Is there any other way to buy you a virtual coffee/beer of sorts? Any “Donate” buttons anywhere?

One caveat I’d add: Avoid the monthly auto exports - stick with the daily auto exports. Doing monthly files is much more energy expensive, and it makes iOS angry. I’m probably going to replace the monthly auto exports with weekly ones, to make that scheduled background task less risky.

One useful thing about LocoKit is it really is incredibly optimised, and unlikely to make iOS angry. As the underlying recording engine for Arc App and Arc Mini, it’s capable of recording the ~highest detail currently possible with iPhones, but without really any significant energy cost or risk of app termination. I’m constantly surprised that Arc competitors aren’t either using it or stealing ideas from it, instead creating their own inferior recording engines :man_shrugging:t2:

No worries! If Arc turns out to be useful to you, then a subscription is all that’s needed. And if you instead end up using LocoKit or Arc Mini’s source for your own project, that’s all open source and free to use.

1 Like

Late to the party, but: arbitrary range view in addition to daily/weekly/monthly etc. Often these do not work because trips/events cross the boundaries of these windows and it’s impossible to see movement for a particular event in one view.

@diversario This one is a semi popular feature request I think. Let’s see what I can find on Changemap… Ok here’s a couple:

Not as many votes as I thought they’d have. But they definitely get my vote!

1 Like