Aplicació client en català per a Mastodon
- Swift 100%
Tuts
Client de Mastodon per a iOS i Apple Watch, escrit en Swift i SwiftUI. La interfície és en català.
Captures de pantalla
(pròximament)
Requisits
- Xcode 26 o superior
- iOS 26.2 o superior
- Compte a qualsevol instància de Mastodon
Instal·lació
- Clona el repositori:
git clone https://codeberg.org/spla/Tuts.git - Obre
Tuts.xcodeprojamb Xcode - Selecciona el teu dispositiu o simulador
- Compila i executa (⌘R)
No cal cap dependència externa ni gestor de paquets.
Funcionalitats
Línia de temps
- Inici, local i federada
- Tuts amb text, imatges, vídeos, GIFs i enquestes
- Previsualització de links (preview card)
- Tuts llargs truncats amb botó "Llegir més"
- Quotes de tuts (Mastodon 4.5+)
- Històric d'edicions
- Impuls, favorit, marcador, resposta
- Bloquejar, silenciar i denunciar usuaris
Notificacions
- Notificacions agrupades (API v2, Mastodon 4.3+)
- Polling automàtic cada 60 segons
- Badge amb comptador de no llegides
- Accions ràpides (respondre, impulsar, favorit) des de la notificació
Publicar
- Editor de tuts amb emojis personalitzats del servidor
- Respostes i fils
- Editar tuts propis
- Esborranys locals
- Adjuntar imatges i vídeos
- Enquestes
- Visibilitat (públic, no llistat, privat, directe)
- Content Warning
Cerca
- Cerca de tuts, comptes i hashtags
- Tendències (tuts, hashtags i enllaços)
Perfil
- Vista del propi perfil amb tuts, respostes i impulsos
- Editar perfil
- Perfils d'altres usuaris
- Seguidors i seguits
- Llistes de comptes (qui ha marcat com a favorit, qui ha impulsat)
Altres
- Multi-compte (canvi ràpid entre comptes)
- Llistes personalitzades
- Marcadors
- Filtres de contingut
- Bloquejar i silenciar
- Informació del servidor
- Denunciar tuts
- Traduir tuts
- Lightbox d'imatges amb gest de pinça
- Reproductor de vídeo i GIFs integrat
- Emojis personalitzats del servidor
Apple Watch
- Línia de temps
- Notificacions
- Publicar tuts curts
Arquitectura
- Patró: MVVM amb SwiftUI
- Xarxa:
ClientAPI— crida directa a la API REST de Mastodon - Autenticació: OAuth 2.0 via
ASWebAuthenticationSession, token guardat al Keychain - Caché: SwiftData per a la línia de temps local
- Watch: WatchConnectivity per a la comunicació iPhone ↔ Watch
Estructura del projecte
Tuts/
├── App/ # Punt d'entrada (TutsApp.swift)
├── Components/ # Components reutilitzables (CellaToot, etc.)
├── Funcionalitats/
│ ├── Autenticacio/ # Login, registre, OAuth
│ ├── Bookmarks/ # Marcadors
│ ├── Cerca/ # Cerca i tendències
│ ├── Filtres/ # Filtres, bloquejar, silenciar
│ ├── Llistes/ # Llistes personalitzades
│ ├── Notificacions/ # Notificacions
│ ├── Perfil/ # Perfil d'usuari
│ ├── Publicar/ # Editor de tuts i esborranys
│ ├── Servidor/ # Info del servidor
│ └── Timeline/ # Línia de temps i detall de tut
├── Models/ # Models de dades (Status, Account, etc.)
└── Sistema/
├── Disseny/ # LiquidGlass i tema
├── Emmagatzematge/ # Keychain, caché, esborranys
└── Xarxa/ # ClientAPI
API de Mastodon
Implementa els endpoints principals de l'API REST de Mastodon:
GET /api/v1/timelines/*— línies de tempsGET/POST /api/v1/statuses/*— tuts, favorits, impulsos, quotesGET /api/v2/notifications— notificacions agrupadesGET /api/v1/accounts/*— perfils i relacionsGET /api/v2/search— cercaPOST /api/v1/apps+ OAuth 2.0 — autenticacióGET /api/v1/lists/*— llistesGET /api/v1/bookmarks— marcadorsGET /api/v1/filters/*— filtresGET /api/v1/trends/*— tendències