LycheeOrg / Lychee

A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.

Home Page:https://lycheeorg.github.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Enhancement] Mobile apps for Android and iOS.

apoorv569 opened this issue · comments

A mobile app for both Android and iOS would be nice to have, with the ability to auto import pictures to lychee, when user clicks a photo. For example someone is on a vacation, they can just create a new collection/album on lychee and start clicking photos and they get auto added/uploaded to that collection/album.

Unless I am wrong, I do believe that @nagmat84 is precisely working on something similar. 😃

Totally correct. I am working on an Android client exactly fot the reason which is mentioned in the first post: auto import/backup of photos from the the smartphone to the Lychee backend.

Unfortunately, it is not as straight forward as I hoped it to be in the first place. The REST API which is currently used for communication between the backend and the web frontend is not well suited because it is tailored to the needs of the web frontend. To make a long story short: You have to be patient and I hope to have something usable in fall of this year.

I was also thinking on making a mobile app, maybe with React Native, but yeah the API auth based on cookie session is not ideal and could be a problem. I was thinking maybe it would be a good idea to create some /api/v2/ endpoints that use JWT authentication (reusing the same controllers) so they can be easily used from the mobile apps.

Thanks for your input. I am actually already actively working on a mobile app for Android and I also got some basic functionality to work (like downloading a photo), but not as part of an integrated app which can be used by human users.

The main problem is not the cookie-based authentication. That is actually quite easily and I already got this implemented. If you do it properly it also interacts nicely with all sort of Android libraries.

The main problem are the inconsistencies of the responses. Sometimes the response is a proper JSON object, sometimes it is just a string, etc. And as soon as an error occurs on the server side things get even more inconsistent. Most errors are also reported with a 200 OK status which makes parsing the response on the client side difficult.

Anyway that is the reason why I am actively and heavily re-factoring the backend right now. There are already two big PRs in the review pipeline and am already working on a third (hopefully smaller one) which cleans up the exception and error handling. After that I will return to working on the Android app.

Originally, I planned to have the Android app ready for a first public release this fall. Due to my cleaning up of the back-end the new ETA is next spring.

That sounds great. I'll keep an eye on those PR to give them a test once they are ready.

Totally correct. I am working on an Android client exactly fot the reason which is mentioned in the first post: auto import/backup of photos from the the smartphone to the Lychee backend.

Unfortunately, it is not as straight forward as I hoped it to be in the first place. The REST API which is currently used for communication between the backend and the web frontend is not well suited because it is tailored to the needs of the web frontend. To make a long story short: You have to be patient and I hope to have something usable in fall of this year.

Hi! It's been quite a while since you been working on mobile apps. Is there any progress?

Under the hood, yes, but nothing which can be shown right now.

The first half of a big re-factoring of the back-end is finished and has been merged only recently. The review phase took longer than I expected which is totally fine, because we also must ensure that we don't break anything which is already there, i.e. the web front-end. Now, I am currently working on the second half of that re-factoring which is going to introduce proper error reporting to the front-end based on HTTP error codes. This is a crucial step, because Java JSON libraries rely on that and are — in contrast to PHP and JavaScript — type-safe. In particular, the Java libraries assume that the response object matches the pre-defined API scheme if the response is a 2xx success response. However, this also requires to re-factor the current web front-end accordingly, because we must not break that.

Long story short: I am still actively on it and I am making progress into that direction. But takes much longer than I hoped or I initially wanted it to take. Given the current speed of development, I expect it to be end of the year.

Just checking in.. What is going on? How close are we?

Under the hood, yes, but nothing which can be shown right now.

The first half of a big re-factoring of the back-end is finished and has been merged only recently. The review phase took longer than I expected which is totally fine, because we also must ensure that we don't break anything which is already there, i.e. the web front-end. Now, I am currently working on the second half of that re-factoring which is going to introduce proper error reporting to the front-end based on HTTP error codes. This is a crucial step, because Java JSON libraries rely on that and are — in contrast to PHP and JavaScript — type-safe. In particular, the Java libraries assume that the response object matches the pre-defined API scheme if the response is a 2xx success response. However, this also requires to re-factor the current web front-end accordingly, because we must not break that.

Long story short: I am still actively on it and I am making progress into that direction. But takes much longer than I hoped or I initially wanted it to take. Given the current speed of development, I expect it to be end of the year.

Hey, can we have a update/status for the progress, its been a long time since last you replied here. Some news would be great.

commented

I am sure that @nagmat84 will post an update next year, @apoorv569.
It is just a hobby and other stuff has higher priorities.

I am sure that @nagmat84 will post an update next year, @apoorv569. It is just a hobby and other stuff has higher priorities.

I know that this is a hobby, I was just asking for an update.

We should sponsor this project on GitHub. One worth really sponsoring when so many people find this so useful.

Hello,

What about mobile app mid 2023?
I love the software but unfortunately it is a bit annoying to do everything over the web.... Especially if you have family members who are incompetent in this regard.

@Aruscha We don't have a schedule for this. This is an open-source project done in our free time, and we're currently working on other issues (especially the new frontend with livewire).

Feel free to write your own app, your instance has an api documentation, but we didn't investigate here and I don't think this will happen in the next months.

I haven't tested this but one can use SyncThing to make phone upload pics to anywhere and to Lychee import directory and then just import them from the UI or how ever.

I haven't tested this but one can use SyncThing to make phone upload pics to anywhere and to Lychee import directory and then just import them from the UI or how ever.

FWIW I used to do this with syncthing and a cron job on the server side to import from that folder. I think the cron side is covered in the Lychee FAQ.

But that may be a more technical solution than @Aruscha was looking for.