Diferencias con la versión de móvil
⚠ Rama experimental, no oficial. El Oasis oficial es https://github.com/epsylon/oasis · Volver a la portada
Hay dos repositorios hermanos:
| OASIS_LINUX (este) | Oasis de escritorio + Karvan + respuesta citada |
| OASIS_MOBILE | Lo mismo, más una interfaz propia para Android y su envoltorio |
Las funciones son las mismas. Lo que cambia es cómo se llega a ellas.
La navegación
| Escritorio | Móvil | |
|---|---|---|
| Menú | Dos columnas laterales, agrupadas por temas | Panal de hexágonos en el inicio |
| Acceso rápido | No hay | Barra inferior con cuatro módulos a elegir |
| Filtros | No hay | Personal / Social, reducen el panal a la mitad |
| Nombres de las categorías | Los de epsylon: Community, Library, Multiverse | Los mismos |
Los nombres son los de epsylon en los dos sitios. Durante un tiempo el móvil usaba otros —Network, Media, Fediverse— y se corrigió: en algo tan visible no tiene sentido separarse de upstream, y además obliga a rehacerlo en cada versión nueva.
El único nombre propio de la rama es el del filtro de la topbar del móvil, Social, porque Community ya es el nombre de una categoría y no puede etiquetar dos cosas distintas en la misma pantalla.
Las llamadas
En el escritorio los permisos los pide el navegador, que es como funciona la web desde siempre: pulsas Call y Firefox o Chromium preguntan por la cámara.
En Android hace falta que la aplicación declare los permisos al compilar y que su
envoltorio implemente WebChromeClient.onPermissionRequest. La APK oficial no hace
ninguna de las dos cosas, y por eso la rama de móvil trae su propio proyecto Gradle.
Está contado en
su wiki.
En resumen: en escritorio las llamadas no necesitaban desbloquear nada.
El código
El módulo Karvan es el mismo fichero por fichero en los dos repositorios: modelo, vista, rutas, cliente WebRTC y estilos. Se decidió duplicar y adaptar en vez de extraer un paquete común, porque un paquete compartido obligaría a versionar y publicar por separado algo que todavía cambia cada semana.
Lo que sí difiere:
src/views/fork/hive_nav.js—el panal, la topbar y la barra inferior— existe en los dos, pero sus funciones empiezan conif (process.env.OASIS_MOBILE !== '1') return "";, así que en escritorio no dibujan nada. Está en ambos para quemain_views.jssea idéntico y las actualizaciones de upstream se apliquen una sola vez.- El fichero de traducciones de la rama,
i18n_fork.js, tiene en móvil las claves de la interfaz propia; en escritorio solo las del módulo Karvan. android/solo existe en el repositorio de móvil.
Qué se comparte de verdad
Una sala de Karvan creada en el móvil se puede abrir en el ordenador si los dos nodos se replican: la invitación viaja como mensaje privado de SSB y el nodo que la recibe adopta la sala. Ese es el puente entre los dos, y es también la parte que deja de ser efímera —el mensaje privado queda en el registro para siempre—.