Arquitectura
ATorrent comparte el uso de un motor BitTorrent especializado, pero adapta la interfaz, la persistencia y el ciclo de vida a cada sistema.
Android
Sección titulada «Android»- Interfaz: Jetpack Compose y ViewModel.
- Persistencia: Room, repositorio y datos de reanudación.
- Motor: libtorrent a través de libtorrent4j.
- Transferencias: Foreground Service y notificación persistente.
HomeViewModel coordina el estado de la pantalla y las acciones del usuario. El repositorio centraliza el acceso a Room. El servicio permite mantener la sesión de transferencia cuando la interfaz deja de estar en primer plano.
La aplicación utiliza SwiftUI y MVVM, con paquetes de Swift Package Manager separados por responsabilidad:
| Módulo | Responsabilidad |
|---|---|
| TorrentCore | Modelos, contratos y lógica del dominio |
| TorrentPersistence | Conservación del estado de las transferencias |
| TorrentEngineBridge | Integración entre Swift y libtorrent |
| Aplicación SwiftUI | Interfaz y coordinación de las acciones |
El motor utiliza libtorrent-rasterbar 2.0.12, Boost y OpenSSL 3.
iOS e iPadOS
Sección titulada «iOS e iPadOS»El motor libtorrent 2.0.12 se empaqueta para dispositivos (iphoneos) y simuladores (iphonesimulator). Un bridge C/C++ y un XCFramework permiten consumirlo desde Swift.
La concurrencia de Swift aísla la gestión de la sesión. SwiftData y los datos de reanudación conservan las transferencias. Los archivos permanecen dentro del sandbox de la app.
Windows
Sección titulada «Windows»Versión en desarrollo.