238 lines
11 KiB
Markdown
238 lines
11 KiB
Markdown
# 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)
|
|
|
|

|
|
|
|
**[⬇ 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.
|
|
- **Tema Acampada por defecto**: blanco, negro y cian, títulos en Anton y botones que
|
|
se hunden al pulsar, con los colores de acampada26s.net. Los otros temas siguen en
|
|
*Ajustes → Tema*.
|
|
- **Arranca en modo activistas**: chats, Karvan, pads, foro, imágenes, vídeos, wiki y
|
|
blogs. Todo cabe en una pantalla; el resto se activa en *Ajustes → Workflows*.
|
|
- **Filtros en fichas**: en chats, feed, foros o pads los filtros ya no son botones
|
|
gigantes que tapan el contenido, sino fichas pequeñas en fila.
|
|
- **Tarjetas más limpias**: borrar, fijar, enlazar y abrir van en una fila de iconos.
|
|
- **Karvan**: tus mensajes salen a la derecha también al volver a entrar en la sala.
|
|
- **Fotos más seguras**: si una foto no se puede limpiar de metadatos (ubicación,
|
|
cámara…), no se sube y se avisa. Antes se subía tal cual.
|
|
- **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 |
|
|
|---|---|---|
|
|
| **Salas efímeras** | — | Karvan: mensajes que solo viven en memoria y se autodestruyen |
|
|
| **Videollamadas** | — | Audio y vídeo por WebRTC, sin servidores de terceros |
|
|
| **Interfaz de móvil** | El menú de escritorio en una pantalla pequeña | Tema Acampada, lanzador de módulos, filtros en fichas y barra de cuatro atajos |
|
|
| **Primer arranque** | Casi sesenta módulos encendidos | Modo activistas: lo justo para organizarse |
|
|
| **Varias identidades** | Una por instalación | Varias en el mismo móvil, con aviso si dos comparten clave |
|
|
| **Respuesta citada** | — | Responder a un mensaje concreto dentro de un chat |
|
|
| **Envoltorio Android** | APK sin permisos de cámara ni micrófono | Proyecto Gradle propio: 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 |
|
|
| **Servidor STUN** | Uno de Google, por defecto | Ninguno. TURN propio si lo configuras |
|
|
|
|
Los nombres de las categorías, los módulos y el resto de la aplicación son los de
|
|
epsylon, sin tocar.
|
|
|
|
---
|
|
|
|
## 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.
|
|
|
|

|
|
|
|
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.
|
|
|
|

|
|
|
|
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.
|
|
|
|

|
|
|
|
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.
|
|
|
|

|
|
|
|
> 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)**.
|
|
|
|
---
|
|
|
|
## Karvan: salas que se borran solas
|
|
|
|

|
|
|
|
Lo que se dice dentro **no toca el disco**, no entra en tu registro y no se replica a
|
|
nadie. Dos relojes corren a la vez —inactividad y tiempo absoluto— y la sala muere con
|
|
el que llegue antes.
|
|
|
|
<p align="center">
|
|
<img src="docs/capturas/07-karvan-salas.png" width="270">
|
|
<img src="docs/capturas/03-karvan.png" width="270">
|
|
</p>
|
|
|
|
---
|
|
|
|
## Videollamadas sin terceros
|
|
|
|

|
|
|
|
El servidor solo sirve para que os encontréis: **la voz y el vídeo van directos** entre
|
|
los participantes, cifrados de extremo a extremo. Sin STUN de Google.
|
|
|
|
<p align="center">
|
|
<img src="https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/raw/img/12-permiso-camara.png" width="270">
|
|
<img src="https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/raw/img/15-llamada-controles.png" width="270">
|
|
</p>
|
|
|
|
Esto **no es posible con la APK oficial**: no declara los permisos de cámara y su
|
|
navegador interno los deniega. Por eso esta rama trae su propio envoltorio Android.
|
|
|
|
---
|
|
|
|
## La interfaz
|
|
|
|

|
|
|
|
<p align="center">
|
|
<img src="docs/capturas/01-portada.png" width="240">
|
|
<img src="docs/capturas/04-foros.png" width="240">
|
|
<img src="docs/capturas/06-barra.png" width="240">
|
|
</p>
|
|
|
|
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
|
|
**activistas** deja lo justo para organizarse (chats, Karvan, pads, foro, imágenes,
|
|
vídeos, wiki y blogs). En el móvil un workflow cambia los módulos, no el aspecto.
|
|
|
|
---
|
|
|
|
## Empezar desde cero
|
|
|
|

|
|
|
|
| | |
|
|
|---|---|
|
|
| **[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
|
|
```
|
|
|
|

|
|
|
|
---
|
|
|
|
## 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 |
|
|
| [Karvan](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Karvan) | Salas efímeras, paso a paso |
|
|
| [Llamadas](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Llamadas) | Cómo se llama y cómo montar un TURN |
|
|
| [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.
|