# OASIS_MOBILE — rama de desarrollo experimental > ## ⚠ ESTO NO ES OASIS OFICIAL > > Esta es una **rama de desarrollo experimental** mantenida por el hacklab, **no > afiliada** al proyecto original. > > ### El repositorio oficial de Oasis es el de epsylon: https://github.com/epsylon/oasis > > Si quieres **usar Oasis de verdad, instala el oficial**. Lo que hay aquí puede > romperse, cambiar de forma incompatible o desaparecer sin aviso. No está auditado y > no tiene garantía de ninguna clase. > > **Los fallos de esta rama se reportan aquí, nunca a epsylon.** Si vas a desarrollar, lee antes la [guía de desarrollo](GUIA_DE_DESARROLLO.md). Ahí está qué se puede tocar y qué no. En corto: el backend, el middleware, los modelos y las traducciones son de epsylon y no se tocan; lo nuestro va en hojas, vistas y rutas propias. Versión base: Oasis 1.3.3 · Rama: `PRUEBAS` · [Documentación completa](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki) · [Versión de escritorio](https://gitea.laenre.net/hacklab/OASIS_LINUX) ![Oasis Mobile: lanzador, filtros y barra de atajos](docs/capturas/00-portada.png) [⬇ Descargar la APK](https://gitea.laenre.net/hacklab/OASIS_MOBILE/releases) · Android 7 o superior, 64 bits · se instala junto al Oasis oficial sin pisarlo ### Novedades de esta versión - Al día con Oasis 1.3.3: karma en el perfil, salas con directo, fotos selladas en chats privados y tribus, visibilidad de menciones y las traducciones nuevas. - Arranca en modo acampada: chats, teléfono, salas, pads, foro, wiki, tribus, parlamento, votaciones y eventos. El resto se enciende en *Módulos* o en *Ajustes → Workflows*. - Las llamadas son las de Oasis. Fuera Karvan, el módulo propio de salas: ahora se usan el Teléfono y las Salas del dev. Ojo: en esta APK todavía no suenan, porque a nuestra app Android le falta el puente de audio nativo que sí trae la oficial (ver abajo). - Votaciones como en asamblea: al crear una se elige Sí/No, semáforo (verde, amarillo, rojo) o termómetro (del 1 al 5). Los resultados salen en barras. - Borrar pide confirmación. Antes la X de una tribu la borraba de un toque. - Iconos que se entienden en el lanzador y en la barra, en vez de letras del alfabeto vai. La barra marca dónde estás y se esconde al escribir. - Tribus en filas: doce comisiones caben en tres pantallas, no en diez. Dentro de una tribu, las secciones van en una tira de fichas. - Módulos con interruptores, agrupados como en el lanzador. Si entras en una sección apagada, te lo dice y la enciendes de un toque. - Pantallas más aprovechadas: un margen de 14 px en vez de los 74 que se sumaban, una sola letra para botones, buscador en una línea y el buzón en pocas líneas por mensaje. - Fotos más seguras: si una foto no se puede limpiar de metadatos (ubicación, cámara…), no se sube y se avisa. - DNS: primero el resolutor del sistema, que respeta la VPN y el DNS privado de Android; los públicos quedan de respaldo. --- ## Lo que añade | | Oasis oficial | Esta rama | |---|---|---| | Llamadas y salas | Teléfono y Salas, con micrófono y cámara | Los mismos; el puente de audio de Android todavía falta | | Interfaz de móvil | El menú de escritorio en una pantalla pequeña | Tema Acampada, lanzador con iconos, fichas, barra de cuatro atajos | | Primer arranque | Casi sesenta módulos encendidos | Modo acampada: lo justo para organizarse | | Votaciones | Seis opciones fijas en una tabla | Sí/No, semáforo o termómetro, con barras | | Varias identidades | Una por instalación | Varias en el mismo móvil, con aviso si dos comparten clave | | Envoltorio Android | El del dev, sin código publicado | Proyecto Gradle propio y abierto: permisos, subida de ficheros, servicio que sobrevive | | Metadatos de las fotos | Se quitan solo si está `sharp`; en Android nunca | Se quitan siempre: GPS, marca, modelo, número de serie | Los nombres de las categorías, los módulos y el resto de la aplicación son los de epsylon, sin tocar. Con el tema OasisMobile se ve el del propio dev. --- ## Qué es Oasis, en cuatro dibujos Una red social sin servidor: publicas en tu propio equipo y los demás se traen una copia. No hay cuenta, no hay contraseña y nadie puede borrarte. ![Qué es Oasis](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/raw/img/esq/01-red.png) Los mensajes viajan de vecino en vecino, así que llegan a gente con la que nunca te has conectado. Por eso funciona incluso sin internet, entre dos móviles en la misma wifi. ![Cómo llega un mensaje](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/raw/img/esq/02-gossip.png) Un pub es solo un nodo que no se apaga nunca. No es un servidor con tus datos: no guarda tu identidad, no decide qué ves y no puede borrarte. ![Qué es un pub](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/raw/img/esq/04-pub.png) Todo lo que publicas se encadena y va firmado con tu clave. Nadie puede colar un mensaje en tu nombre ni cambiar lo que dijiste. ![Tu registro](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/raw/img/esq/14-registro.png) > La explicación completa —los saltos, las tribus, el LARP, los módulos— está en > [Entender Oasis en diez minutos](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Entender). --- ## Llamadas y salas ![Llamadas: las del dev, con el móvil enchufado](docs/capturas/esquema-llamadas.png) El Teléfono (llamadas de uno a uno, con buzón de voz) y las Salas (hasta cincuenta personas, con vídeo, grabación y emisión) son de Oasis. En Android el sonido y la cámara no los maneja Node: el servidor se conecta a un puente nativo de la app (`.audio_bridge`), que graba, reproduce, saca fotogramas de la cámara y emite ficheros. La APK oficial del dev trae ese puente. La de esta rama todavía no: nuestra app Android es otra (tiene el código publicado) y el puente hay que escribirlo. Hasta entonces, en esta APK el Teléfono dice que las llamadas no están disponibles. En la barra de arriba, junto al avatar, está el botón de *No molestar* del Teléfono. --- ## La interfaz ![La interfaz por dentro](docs/capturas/esquema-interfaz.png)

Lanzador, tribus, una votación de semáforo, módulos, ajustes, la barra de atajos, las salas del dev y el mismo lanzador con el tema OasisMobile del dev. Casi sesenta módulos no caben en la pantalla de un teléfono: la portada los ordena por secciones en una rejilla de iconos, como el cajón de apps del móvil. Abajo queda una barra de cuatro atajos que eliges tú. Dentro de cada módulo los filtros van en fichas pequeñas, para que el contenido se vea sin tener que bajar. Solo aparecen los módulos activos. En *Ajustes → Workflows* se eligen de golpe: el de acampada deja lo justo para organizarse. En el móvil un workflow cambia los módulos, no el aspecto: el aspecto se elige en *Ajustes → Tema* (Acampada u OasisMobile). --- ## Cómo está hecha la rama ![Cómo va la rama encima de Oasis](docs/capturas/esquema-rama.png) Oasis lo desarrolla epsylon y saca versión casi cada día. Para no tener que rehacer la rama en cada una, lo nuestro va en ficheros propios: hojas de estilo, unas pocas vistas, un router que va delante del suyo y el envoltorio de Android. El backend, el middleware, los modelos y las traducciones son suyos y no se tocan. Las normas están en la [guía de desarrollo](GUIA_DE_DESARROLLO.md) y las cifras en [docs/FRONTERA_UPSTREAM.md](docs/FRONTERA_UPSTREAM.md). --- ## Empezar desde cero ![De cero a estar dentro](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/raw/img/esq/05-empezar.png) | | | |---|---| | [oasis-project.pub](https://oasis-project.pub) | Directorio de pubs, con invitaciones y estado de cada uno | | [0asis.net](https://0asis.net) | El proyecto explicado desde el principio | | [wiki.solarnethub.com](https://wiki.solarnethub.com/socialnet/overview) | La documentación oficial, módulo por módulo | --- ## Instalar La APK no está en ninguna tienda: se descarga de las *releases* de este repositorio y se instala a mano, con orígenes desconocidos activado. Se instala junto al Oasis oficial sin pisarlo —el identificador es `net.laenre.oasis`—, así que puedes tener los dos y comparar. Necesita unos 350 MB libres. El primer arranque tarda entre 15 y 60 segundos porque descomprime el servidor. > Verifica la huella de la firma antes de instalar una APK bajada de un servidor > propio: `apksigner verify --print-certs` ### Compilar Con Android Studio, lo más fácil: ```sh ./android/scripts/android-studio.sh # trae el Oasis oficial y su APK, y empaqueta el backend ``` Después, en Android Studio: *File → Open →* la carpeta `android/`, esperar al Gradle Sync, y *Build → Build App Bundle(s) / APK(s) → Build APK(s)*. Si cambias algo en `src/` o en `main.js`, vuelve a lanzar el script antes de compilar. Desde la terminal, paso a paso: ```sh cd android # la primera vez hace falta la APK oficial de la MISMA versión (ahora la 1.3.3): # de ella salen las librerías nativas y el node_modules podado del móvil OASIS_APK_BASE=/ruta/oasis-v1.3.3.apk ./scripts/release.sh # compila, verifica y calcula la huella ``` ![Qué hay dentro de la APK](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/raw/img/esq/16-arquitectura-movil.png) --- ## Documentación Para desarrollar, en el propio repositorio: | | | |---|---| | [GUIA_DE_DESARROLLO.md](GUIA_DE_DESARROLLO.md) | Qué se toca, qué no y cómo hacer cada cosa | | [docs/FRONTERA_UPSTREAM.md](docs/FRONTERA_UPSTREAM.md) | Cuánto cambia el dev en cada versión, medido | | [docs/USABILIDAD_PAD.txt](docs/USABILIDAD_PAD.txt) | Pruebas de usabilidad en el móvil | Todo lo de arriba, en detalle, está en la [wiki](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki): | | | |---|---| | [Entender Oasis](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Entender) | La red, el gossip, los saltos, los pubs, las tribus y el LARP | | [Empezar desde cero](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Empezar) | Invitación, seguir gente, abrir tu blog o tu tienda | | [Llamadas](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Llamadas) | Teléfono y Salas en el móvil | | [La interfaz](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Interfaz) | Botón por botón | | [Identidades](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Identidades) | Varias cuentas en el mismo móvil | | [Compilar la APK](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Compilar) | Y cómo se publica una versión | | [Estructura del código](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Estructura) | Dónde vive cada fichero y por qué ahí | | [Si algo va mal](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Problemas) | Los fallos que han pasado de verdad | | [Qué NO tiene](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Limitaciones) | Lo que falta respecto al oficial, sin adornos | --- ## El proyecto original Esta rama existe gracias a y por encima de el trabajo de epsylon. El código, la arquitectura, los módulos y la red son suyos. - Código: https://github.com/epsylon/oasis - Proyecto: https://solarnethub.com - Wiki: https://wiki.solarnethub.com/socialnet/overview ## Licencia AGPL-3.0, la misma que el proyecto original.