Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Enhancement] Mobile apps for Android and iOS. #1013

Open
apoorv569 opened this issue May 22, 2021 · 16 comments
Open

[Enhancement] Mobile apps for Android and iOS. #1013

apoorv569 opened this issue May 22, 2021 · 16 comments
Labels
enhancement New feature or request

Comments

@apoorv569
Copy link

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.

@ildyria
Copy link
Member

ildyria commented May 22, 2021

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

@nagmat84
Copy link
Collaborator

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.

@ildyria ildyria added the enhancement New feature or request label May 23, 2021
@jbaez
Copy link

jbaez commented Oct 16, 2021

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.

@nagmat84
Copy link
Collaborator

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.

@jbaez
Copy link

jbaez commented Oct 16, 2021

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

@apoorv569
Copy link
Author

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?

@nagmat84
Copy link
Collaborator

nagmat84 commented Feb 3, 2022

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.

@apoorv569
Copy link
Author

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

@apoorv569
Copy link
Author

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.

@MartinHennrich
Copy link

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

@apoorv569
Copy link
Author

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.

@anjanesh
Copy link

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

@Aruscha
Copy link

Aruscha commented Aug 21, 2023

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.

@qwerty287
Copy link
Contributor

@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.

@haivala
Copy link

haivala commented Aug 21, 2023

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.

@d7415
Copy link
Contributor

d7415 commented Aug 21, 2023

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

10 participants