# Beta test my new iOS app for Syncthing

**URL:** https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457
**Category:** Development
**Created:** [July 20, 2024, 10:27am UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457 "2024-07-20T10:27:29Z")
**Posts on this page:** 20
**Page:** 6

<div class="post-metadata">

### Author: ![NathanOtano](https://forum.syncthing.net/letter_avatar_proxy/v4/letter/n/8491ac/32.png) [@NathanOtano](https://forum.syncthing.net/u/NathanOtano)
#### Post date: [December 26, 2024, 4:48am UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/103 "2024-12-26T04:48:07Z")

</div>

Any chance that the selective sync feature could be implemented in the dekstop versions? The way you implemented the feature is really nice and I feel it would be great as an alternate GUI for dekstop to manage caching files

---

<div class="post-metadata">

### Author: ![pixelspark](https://forum.syncthing.net/user_avatar/forum.syncthing.net/pixelspark/32/15749_2.png) [@pixelspark](https://forum.syncthing.net/u/pixelspark)
#### Post date: [December 26, 2024, 8:40am UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/104 "2024-12-26T08:40:02Z")

</div>

There is a macOS desktop version of Synctrain with selective sync support. I have no plans to port this to other platforms - but someone experienced with windows/linux UI development could perhaps reuse some of my work.

---

<div class="post-metadata">

### Author: ![Martchus](https://forum.syncthing.net/letter_avatar_proxy/v4/letter/m/e99b99/32.png) [@Martchus](https://forum.syncthing.net/u/Martchus)
#### Post date: [December 28, 2024, 11:52pm UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/105 "2024-12-28T23:52:36Z")

</div>

I would actually like to include the on-demand downloading feature into Syncthing Tray so it can be used under Windows/Linux as well. Actually, it would be great to upstream the additional REST-API route you implemented for that into Syncthing so everybody can use it.

I have also added a browser for the global file tree with a so far clunky UI to change ignore patterns based on it. Maybe I’ll improve this in the future so Syncthing Tray will be able to cover more use cases Synctrain is currently better at.

---

<div class="post-metadata">

### Author: ![pixelspark](https://forum.syncthing.net/user_avatar/forum.syncthing.net/pixelspark/32/15749_2.png) [@pixelspark](https://forum.syncthing.net/u/pixelspark)
#### Post date: [December 29, 2024, 9:25am UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/106 "2024-12-29T09:25:26Z")

</div>

Synctrain embeds Syncthing as a Go package, so it uses the Internals interface (that is now actually upstream) instead of the REST API. It may contain some re-usable bits for your app though. All of it is MPL2 so you may reuse or even try to upstream it as needed.

The on demand download actually simply re-used an existing function in Syncthing core, it should be quite easy to expose it in the REST API. Synctrain in this case actually also implements a small REST API for itself so that on-demand downloads can be plugged in to video players on iOS. It translates ranged HTTP downloads to individual block requests, so streaming works very well. See here:

> <https://github.com/pixelspark/sushitrain/blob/main/SushitrainCore/src/server.go#L192>

---

<div class="post-metadata">

### Author: ![mraneri](https://forum.syncthing.net/letter_avatar_proxy/v4/letter/m/b19c9b/32.png) [@mraneri](https://forum.syncthing.net/u/mraneri)
#### Post date: [December 29, 2024, 10:47am UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/107 "2024-12-29T10:47:35Z")

</div>

> [@Martchus](#):
>
> I have also added a browser for the global file tree with a so far clunky UI to change ignore patterns based on it. Maybe I’ll improve this in the future so Syncthing Tray will be able to cover more use cases Synctrain is currently better at.

If this is part of the browser UI it’s a substantial component of the implementation of selective syncing which could be rolled into the main syncthing and apply to all platforms…

---

<div class="post-metadata">

### Author: ![Martchus](https://forum.syncthing.net/letter_avatar_proxy/v4/letter/m/e99b99/32.png) [@Martchus](https://forum.syncthing.net/u/Martchus)
#### Post date: [December 29, 2024, 8:39pm UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/108 "2024-12-29T20:39:58Z")

</div>

> Synctrain in this case actually also implements a small REST API for itself so that on-demand downloads can be plugged in to video players on iOS.

I saw it before, that was the REST-API I meant that would be nice to have in Syncthing itself.

> If this is part of the browser UI it’s a substantial component of the implementation of selective syncing which could be rolled into the main syncthing and apply to all platforms…

So far I only implemented it on UI wrapper level using the REST-APIs to browse the global tree and read/write ignore patterns. I had to implement parsing and manipulating ignore patterns and lookup of local files on UI wrapper level as Syncthing has no REST-API for this. So I suppose Syncthing needed APIs for that first before such a feature could be implemented in the browser UI.

(Not sure whether a really user friendly “selective sync” approach should be ignore patterns based. As a power user I like it, though.)

---

<div class="post-metadata">

### Author: ![acolomb](https://forum.syncthing.net/user_avatar/forum.syncthing.net/acolomb/32/11343_2.png) [@acolomb](https://forum.syncthing.net/u/acolomb)
#### Post date: [December 30, 2024, 1:04am UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/109 "2024-12-30T01:04:24Z")

</div>

One thing to keep in mind here, regarding the selective sync feature: This wrapper by definition runs on the same device where the data is stored, thus it has independent access to the file system. The Web GUI however is built to be accessed remotely, so direct access to the actual files (by the browser) cannot be assumed. That’s an important consideration for the upstream GUI integration, but also for Syncthing Tray, which also supports connecting to Syncthing instances on other hosts.

---

<div class="post-metadata">

### Author: ![Martchus](https://forum.syncthing.net/letter_avatar_proxy/v4/letter/m/e99b99/32.png) [@Martchus](https://forum.syncthing.net/u/Martchus)
#### Post date: [December 30, 2024, 11:16am UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/110 "2024-12-30T11:16:56Z")

</div>

That’s very true. Hence the lookup of local files I had to implement in Synching Tray is only used when connected to a local Syncthing instance. There are already a couple of other features where I have to make that distinction.

---

<div class="post-metadata">

### Author: ![thespeed](https://forum.syncthing.net/letter_avatar_proxy/v4/letter/t/7cd45c/32.png) [@thespeed](https://forum.syncthing.net/u/thespeed)
#### Post date: [December 30, 2024, 12:08pm UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/111 "2024-12-30T12:08:10Z")

</div>

Thanks for this great app and the work you put into it. I am now testing it to get my pictures and video’s copied from my phone to my server at home. It would be nice if there is a function to delete the pictures directly after they are synced with my server folder. But i have seen your comment about this (i have a phone which is low on storage). For now i have made a cron job to move the files from the Synchting folder to a another folder every hour.

If someone want to do this on Linux then you need to exclude the .stfolder I had some issues with that. example:

rclone move /mnt/SSD1/Syncthing/iPhone-Me/Pictures /mnt/SSD1/PicturesPhone/iPhone-Me --log-file=/mnt/nvme-pool/rclone/logs/PicturesMe.log -v --delete-empty-src-dirs --exclude ‘.stfolder/\*\*’

It would be nice to have a function to only sync when on a Wifi connection. But i understand new functions takes time to implement. Unfortunately i can’t program by myself.

I linked the new folder to Immich (Self-hosted photo and video management solution) so i can see my pictures in a library there.

---

<div class="post-metadata">

### Author: ![mraneri](https://forum.syncthing.net/letter_avatar_proxy/v4/letter/m/b19c9b/32.png) [@mraneri](https://forum.syncthing.net/u/mraneri)
#### Post date: [December 30, 2024, 2:05pm UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/112 "2024-12-30T14:05:46Z")

</div>

> [@Martchus](#):
>
> That’s very true. Hence the lookup of local files I had to implement in Synching Tray is only used when connected to a local Syncthing instance.

I think depending on how the logic is done I wonder how important this actually is. I think if the logic is exclude the deselected items instead of include the selected items then syncthing scans new folders as normal and then they become part of the global state. And you have a browser for the global state. So perhaps that’s all you need.

---

<div class="post-metadata">

### Author: ![NathanOtano](https://forum.syncthing.net/letter_avatar_proxy/v4/letter/n/8491ac/32.png) [@NathanOtano](https://forum.syncthing.net/u/NathanOtano)
#### Post date: [December 30, 2024, 3:44pm UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/113 "2024-12-30T15:44:45Z")

</div>

Would be a blessing if it was implemented in Synthing Tray If you need anyone to help testing the integration give me a shout

Thanks for all your reponses

---

<div class="post-metadata">

### Author: ![kapfab](https://forum.syncthing.net/letter_avatar_proxy/v4/letter/k/278dde/32.png) [@kapfab](https://forum.syncthing.net/u/kapfab)
#### Post date: [January 9, 2025, 9:12am UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/114 "2025-01-09T09:12:46Z")

</div>

Hi, what’s the status regarding encryption paperwork and availability in France?

As far as I’ve seen, Syncthing/Synctrain only uses ed25519, which is part of the algorithms Apple ship with their devices (see [Apple CryptoKit | Apple Developer Documentation](https://developer.apple.com/documentation/cryptokit)) and for which they have already made all the required declarations to be able to sell their devices in France.

So as long as Syncthing/Synctrain is not using any other funky encryption (which I hope it’s not), my understanding is that the app has no reason not to be eligible for an exemption.

---

<div class="post-metadata">

### Author: ![decryption](https://forum.syncthing.net/letter_avatar_proxy/v4/letter/d/258eb7/32.png) [@decryption](https://forum.syncthing.net/u/decryption)
#### Post date: [January 9, 2025, 11:10am UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/115 "2025-01-09T11:10:28Z")

</div>

I was keen on trying out Syncthing for iOS but unfortunately the app is not available on the Australian App Store ☹

Is there a reason for this? Bit disappointing.

---

<div class="post-metadata">

### Author: ![Limezy](https://forum.syncthing.net/user_avatar/forum.syncthing.net/limezy/32/18055_2.png) [@Limezy](https://forum.syncthing.net/u/Limezy)
#### Post date: [January 10, 2025, 1:16am UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/116 "2025-01-10T01:16:07Z")

</div>

You should use the TestFlight link !

> **[Join the Synctrain beta](https://testflight.apple.com/join/2f54I4CM)**
>
> Available on iOS

---

<div class="post-metadata">

### Author: ![calmh](https://forum.syncthing.net/user_avatar/forum.syncthing.net/calmh/32/15311_2.png) [@calmh](https://forum.syncthing.net/u/calmh)
#### Post date: [January 10, 2025, 1:08pm UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/117 "2025-01-10T13:08:23Z")

</div>

> [@kapfab](#):
>
> Hi, what’s the status regarding encryption paperwork and availability in France?

I’m not @pixelspark and I don’t speak for him, but if it were me I would not go to the effort to try to figure out the French paperwork required, especially as a non-French-speaker and with little actual control of the used underlying crypto algorithms. (Which are several, but all “industry standard” according to _some_ definition.)

---

<div class="post-metadata">

### Author: ![pixelspark](https://forum.syncthing.net/user_avatar/forum.syncthing.net/pixelspark/32/15749_2.png) [@pixelspark](https://forum.syncthing.net/u/pixelspark)
#### Post date: [January 10, 2025, 1:42pm UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/118 "2025-01-10T13:42:43Z")

</div>

You are not me but I fully agree 🙂

---

<div class="post-metadata">

### Author: ![kapfab](https://forum.syncthing.net/letter_avatar_proxy/v4/letter/k/278dde/32.png) [@kapfab](https://forum.syncthing.net/u/kapfab)
#### Post date: [January 10, 2025, 1:50pm UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/119 "2025-01-10T13:50:50Z")

</div>

My point is actually that there’s no paperwork needed here if only ed25519 is used.

If the issue is that nobody knows which encryptions are used by Syncthing/Synctrain then that’s where the concerns should be.

---

<div class="post-metadata">

### Author: ![calmh](https://forum.syncthing.net/user_avatar/forum.syncthing.net/calmh/32/15311_2.png) [@calmh](https://forum.syncthing.net/u/calmh)
#### Post date: [January 10, 2025, 1:51pm UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/120 "2025-01-10T13:51:58Z")

</div>

Oh, we know. We use the full set of Go TLS ciphersuites, additionally `scrypt`, `AES-SIV` and `XChaCha20-Poly1305` for untrusted device encryption, all of which are third-party as far as the Apple ecosystem is concerned.

---

<div class="post-metadata">

### Author: ![pixelspark](https://forum.syncthing.net/user_avatar/forum.syncthing.net/pixelspark/32/15749_2.png) [@pixelspark](https://forum.syncthing.net/u/pixelspark)
#### Post date: [January 10, 2025, 2:25pm UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/121 "2025-01-10T14:25:40Z")

</div>

If anyone in France would be willing to ‘import’ the app to France, fill out the paperwork, and publish it, I would be fine with that (it would be nice to coordinate so that it’s clear what the app is and who is behind it, and that I don’t get support requests for that version et cetera). This is fully open source after all. You can also do this yourself, just get an Apple Developer account and build the app (I know there are some limitations on the validity of self-made apps).

From my perspective right now there is just nothing to gain and potentially a lot to lose (I don’t know exactly what and don’t want to spend time or money figuring out the legal stuff) with publishing in France.

---

<div class="post-metadata">

### Author: ![Limezy](https://forum.syncthing.net/user_avatar/forum.syncthing.net/limezy/32/18055_2.png) [@Limezy](https://forum.syncthing.net/u/Limezy)
#### Post date: [January 10, 2025, 3:24pm UTC](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457/122 "2025-01-10T15:24:24Z")

</div>

As a French native, I could maybe try to help in this regard. I plan to have a developper account for other projects anyway. But wouldn’t it be easier / cleaner if the app remained under your account, and I would only help for the paperwork ? @pixelspark ?

[Previous page](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457.md?page=5)

[Next page](https://forum.syncthing.net/t/beta-test-my-new-ios-app-for-syncthing/22457.md?page=7)
