Replies: 1 comment 1 reply
-
There's a few things we can do to avoid breaking the mobile app, some of them probably even simpler than this. However, we choose not to because that's extra effort that we would rather spend elsewhere while Immich is still moving fast. Once it becomes stable, we'll take steps to keep the API stable as well. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I want to preface that I personally don't have any hands-on experience on the below - just throwing out some idea that should technically be possible. It might be out of scope at the time being, but for a stable immich in future, I wanted to throw this one out.
The Problem
Some users have automatic updates enabled on their mobile device and get updated to the latest immich app. As such, server version and mobile app version do not match and the user has to wait until the server is updated to the latest version. This becomes a problem especially if the server maintainer deliberately stays at a specific version.
Possible Solutions
Integrate multiple client versions into the mobile app
This idea is straight forward, just bundle all the logic of past versions into the app. Let the app behave according to the current server version. This will endlessly increase the app size, though, if support for all past versions is provided.
Host mobile app logic on server
I understand the app is written in flutter, and maybe there is a simple solution already out there - maybe shorebird? But since react native is already designed such that the javascript part basically controls how native elements should behave, it should be possible to let the mobile app load the javascript part from immich-server. So after logging in within the app, it could fetch the logic provided by the server and kind of "install the mobile app logic matching the server's version".
References:
https://docs.expo.dev/distribution/custom-updates-server/ (includes a demo repo with a self-hosted OTA server)
Since I could not find any existing discussion on this, I wanted to start one here. What do you think?
Beta Was this translation helpful? Give feedback.
All reactions