new syncthing client for android

I made a syncthing client for android. I created this for my personal use but someone else might like it so here ya go.

It should be able to do everything the web gui can. Add/Edit devices/folders including excludes, TLS support but no cert verify (might be able to make that work later). I should also mention the passwords aren’t stored on the device. They are only used to retrieve the api key.

There is a local instance that’s disabled by default (as to not interfere with the other syncthing app). Its pretty basic for now. It can be controlled through the ui same as any other instance. It’s cross compiled for android os with CGO giving proper dns and other networking stuff. In order to enable CGO I had to link with -fPIE which is required for lollipop but wont work on pre Jellybean devices, and I have no x86 device to test so ARM only.

Requires at least v0.11-beta6 (maybe beta4) due to the massive api changes between v11 and v10 and some breaking changes made post beta0 Requires Android 4.1 (Jellybean) or higher

Screens https://plus.google.com/photos/102710594547223731659/albums/6137694454587704401

Download (It’s still pretty alpha so no market or fdroid links) (hash is sha1) https://ssl.opensilk.org/deadrop/pickup/22d44210cf053212fd482ac1adff604e533749c0/app-debug.apk

Source On github OpenSilk/SyncthingAndroid

4 Likes

Cool!

Would you be able to share the build setup, perhaps as a Docker image or similar? This seems like something we could take advantage of in the standard build process.

Would you open to sharing the advantages/disadvantages of this compared to the current Android Syncthing app and for what reason you created this app? Just curious! :smile:

Thanks! Scott

1 Like

Added a dockerfile to setup the env

Practice mostly. This apps primary focus is as a syncthing client, managing remote instances. I originally intended to fork Felix’s app but its structure was incompatible with what i wanted to do so I started from scratch.

Can you explain a bit more how the code is incompatible? I think it could save a lot of effort if we shared our code, so I’d happily change stuff if needed.

Btw I love Orpheus :slight_smile:

I wanted to use square’s mortar library plus dagger2 in mvp fashion. And also experiment mixing mortar with fragments to leverage their animation apis in lollipop. Mortar’s main issue is it wants a single activity and doesnt like fragments, i had to make some workarounds to get them working. It was much easier to build the app from the ground up around mortar that try to migrate the existing app over to it.

Thanks, It was my first attempt with mortar, it doesnt use any fragments at all (except settings). But kinda got burned out on it. I still need to work on its streaming ability, and extend the plugin api for remote playback so i can push chromecast into a plugin.

The app works wonderful btw! Good work

This looks really nice, good work.