sign / translate

Effortless Real-Time Sign Language Translation
https://sign.mt
Other
436 stars 77 forks source link

Wouldn't Firebase rather make your app non-free? #81

Closed AmitMY closed 7 months ago

AmitMY commented 1 year ago

Wouldn't Firebase rather make your app non-free (FOSS-wise, not price-wise)? Maybe Supabase or appwrite would be a better choice. That said, is the app available anywhere already? I cannot find an APK here, nor do I see a link to F-Droid or any similar place.

Originally posted by @IzzySoft in https://github.com/sign/translate/issues/51#issuecomment-1484210454

AmitMY commented 1 year ago

@IzzySoft - Ideally, everything in the app should work entirely offline.

Currently, we use firebase for:

  1. server-side model inference where we have to run python code
  2. model storage

Ideally, we would shift away from 1 to offer full offline support. Furthermore, all of the server-side code is indeed open-sourced, so if someone were to just run the cloud functions code on whatever server, that would work.

Regarding 2, the model storage, that is a bit trickier - I would be happy to extend this service - https://github.com/sign/translate/blob/master/src/app/core/services/assets/assets.service.ts To support more model/large-assets hosting services, or host them anywhere.

Besides those, the app is completely open-sourced. We do not rely on firebase-specific services like firestore or the realtime-database.


As for the APK - This app is not distributed to any app store since in my opinion, it is not at a good-enough state. You can build an APK though simply by running npx cap build android. I'll be happy to chat about the necessary improvements to the app to make it viable for distribution, if you would like to donate some of your time to making it so.

IzzySoft commented 1 year ago

We do not rely on firebase-specific services like firestore or the realtime-database.

As the libraries are inside your APK, they are part of your app. All permissions your app requests become available to that library's code. The library itself is proprietary and closed-source, built by a company known for its aggressive data collection. I do not say they DO something shady here, but I neither can prove otherwise due to the code not being available. So as someone with a focus on privacy, I do not feel well with having such things in. It's not that I would not trust YOU – but not even you can say (or prove) for sure. Plus, the library being proprietary, your app would no longer be "fully F/LOSS".

Furthermore, all of the server-side code is indeed open-sourced, so if someone were to just run the cloud functions code on whatever server, that would work.

Wonderful! So from that point, you'd not even get the NonFreeNet anti-feature at F-Droid.

As for the APK - This app is not distributed to any app store since in my opinion, it is not at a good-enough state.

Ah, I see. Depending on APK size, I was considering taking it into my repo or, if Firebase could be removed, getting it included with F-Droid. For some context: my repo often serves as "stepping stone" for apps not yet fully compliant with the F-Droid inclusion criteria (here due to Firebase), but due to its running on my personal space there are "size limits" with mine (currently 30 MB per app, with very few exceptions). Further, my repo also acts as "staging" for some apps (which have their "stable releases" with F-Droid but want their testers having easy access to test builds). So once you feel your app ready for one or the other, I gladly help out. Maybe until then you could put a note in your Readme that it's currently WIP?

I'll be happy to chat about the necessary improvements to the app to make it viable for distribution, if you would like to donate some of your time to making it so.

Afraid I already have too many tasks on my desk to do that "in depths" – but I gladly help out where I can. I must also admit not being familiar with sign language (a question I find me asking myself is as basic as "is sign language specific to the area or is it universal", i.e. would a "German signer" and an "US signer" understand each other :see_no_evil: So you see, while I'd like to make such tools available to those in need, I often understand only too little of even the basics)…

AmitMY commented 7 months ago

Since everything is open-sourced, and modifications such as removing firebase can be done with ease (the dependency is mostly analytics), closing this issue.

IzzySoft commented 7 months ago

That still means your APK will have it included, right? And not every person is capable of forking/cloning, making the proper adjustments, compile and sign their own build. Just saying. Would the app still work with Firebase removed? Would changing it be as simple as to comment out the dependency/dependencies in build.gradle? So: wouldn't it be better if the app were FOSS in its entirety, instead of requiring modifications to become FOSS?

Just thoughts, no pressure. But I wouldn't forgive myself not even having tried :wink: