Lymphatus / caesium-image-compressor

Caesium is an image compression software that helps you store, send and share digital pictures, supporting JPG, PNG, WebP and TIFF formats. You can quickly reduce the file size (and resolution, if you want) by preserving the overall quality of the image.
https://saerasoft.com/caesium
GNU General Public License v3.0
3.73k stars 217 forks source link

Android #306

Open trymeouteh opened 1 month ago

trymeouteh commented 1 month ago

Is your feature request related to a problem? Please describe. An app for Android

Describe the solution you'd like An app for Android that you can install from Google Play and F-Droid

Describe alternatives you've considered None

Additional context Perhaps you could compile the app into a Web Assembly code and then use a framework such as Tauri?

Lymphatus commented 1 month ago

The actual compression is done in libcaesium, which is Rust code that I've been able to compile for Android with a bit of sweat, but seemed to work fine in very simple tests. Making an app that does the same as the desktop version is just a matter of UI, because I'm able to use a native library to perform the compression, so can be written in whatever language/framework is available (Kotlin/Swift, Flutter, React Native, etc...).

Right now I don't really have the time to prototype and build a mobile app, but I don't exclude it could come somewhere in the future. No guarantees tho. Of course if someone is willing to help, I'll gladly accept and cooperate.

trymeouteh commented 1 month ago

Would suggest then using Flutter for the front end which can be used for desktop, mobile and the web. I am glad to hear a mobile app is possible in the future.

Lymphatus commented 1 month ago

I would not make an "unified" app for all platforms. Not because I don't like those technologies like Tauri or Flutter (I like them a lot!), but because I think the UI and the scope for the desktop and mobile is very different.

As an example, take caesium.app, which is the web app for Caesium. It can potentially do the exact same* as the desktop app, but I think it simply should not. Its scope is to have a fast and very simple way to compress without any hassle. For any mobile app, my goal would be to make something more streamlined than the desktop app, because fiddling with advanced options on a small screen could be annoying. So, I'd probably keep two codebases for the desktop and mobile.

* with very small limitations

trymeouteh commented 1 month ago

Thats fair, I always suggest to devs to use Tauri or Flutter for both to reduce the code for both mobile and desktop. However Caesium front end does not seem to be too complex so having two codebases would not be too much to manage long term.