# MangaReader iOS App de iOS para leer manga sin publicidad, compatible con Sideloadly/3uTools. ## 📱 Características - **Sin publicidad**: Lee tus mangas favoritos sin anuncios molestos - **Lector avanzado**: Zoom, pan, navegación táctil, modos de lectura - **Descarga offline**: Descarga capítulos completos para leer sin internet - **Progreso de lectura**: La app recuerda dónde dejaste la lectura - **Favoritos**: Guarda tus mangas favoritos - **Personalización**: Modo oscuro/claro, fondos personalizables - **iOS 15+ Compatible**: Funciona en iPhone 8+ y iPads modernos ## 🏗️ Arquitectura El proyecto consta de dos partes: ### 1. Backend (Opcional) Un servidor Node.js con Express que: - Hace scraping de manhwaweb.com usando Puppeteer - Sirve como API REST para los datos de mangas - Cachea respuestas para mejor rendimiento **NOTA**: El backend es opcional. La app iOS puede hacer todo el scraping localmente usando WKWebView. ### 2. App iOS (SwiftUI) Aplicación nativa que: - Usa WKWebView para scraping de contenido JavaScript - Almacena capítulos localmente - Implementa lector con gestures de zoom/pan - Guarda progreso y favoritos en UserDefaults/FileManager ## 📋 Requisitos Previos ### Para compilar la app iOS: - **Mac** con Xcode 15+ - **Apple Developer Account** (para firmar con certificado de desarrollo) - **iOS 15+** device ### Para el backend (opcional): - **Node.js 18+** - **npm o yarn** ## 🚀 Instalación y Configuración ### Paso 1: Configurar el Backend (Opcional) ```bash # Ir al directorio del backend cd backend # Instalar dependencias npm install # Iniciar servidor npm start # El servidor estará disponible en http://localhost:3000 ``` **API Endpoints disponibles:** - `GET /api/health` - Health check - `GET /api/manga/:slug` - Info de un manga - `GET /api/manga/:slug/chapters` - Lista de capítulos - `GET /api/chapter/:slug/images` - Imágenes de un capítulo ### Paso 2: Abrir en Xcode (Tu Mac) 1. **Subir el código a Gitea/GitHub** desde esta VPS: ```bash cd /home/ren/ios/MangaReader git init git add . git commit -m "Initial commit" git remote add origin git push -u origin main ``` 2. **En tu Mac**: ```bash # Clonar el repositorio git clone cd MangaReader/ios-app # Abrir en Xcode open MangaReader.xcodeproj # O simplemente haz doble clic en el archivo .xcodeproj ``` 3. **Configurar el proyecto en Xcode**: - Selecciona el proyecto en el sidebar - En "Signing & Capabilities": - Elige tu equipo (Team) - Asegúrate que "Automatically manage signing" esté activado - Bundle Identifier: `com.mangareader.app` (o cambiar si está ocupado) 4. **Compilar y ejecutar**: - Selecciona un dispositivo o simulador (iOS 15+) - Presiona `Cmd + R` o click en el botón Play ### Paso 3: Instalar en tu iPhone/iPad con Sideloadly 1. **Conectar tu dispositivo** al Mac 2. **Abrir Sideloadly** (o 3uTools) 3. **Configurar**: - Arrastra el archivo `.ipa` (que crearás en Xcode) - Selecciona tu Apple ID para firmar - Conecta tu dispositivo 4. **Instalar**: Click en "Start" ### Crear el archivo .ipa en Xcode: 1. En Xcode: Product > Archive 2. Cuando termine, aparecerá la ventana Organizer 3. Click derecho sobre el archivo > "Show in Finder" 4. Click derecho > "Show Package Contents" 5. Products > Applications > MangaReader.app 6. Copiar MangaReader.app al escritorio 7. Renombrar a .ipa (o crear un zip y renombrar) ## 📖 Uso de la App ### Agregar un Manga 1. En la pantalla principal, click en "Agregar" 2. Ingresa el slug del manga (ej: `one-piece_1695365223767`) 3. La app hará scraping y mostrará el manga ### Cómo encontrar el slug de un manga: 1. Ve a https://manhwaweb.com 2. Busca tu manga favorito 3. Click en el manga 4. La URL será algo como: `https://manhwaweb.com/manga/one-piece_1695365223767` 5. El slug es: `one-piece_1695365223767` (todo después de `/manga/`) ### Leer un Capítulo 1. En la lista de mangas, selecciona uno 2. Verás todos los capítulos disponibles 3. Click en un capítulo para abrir el lector 4. Usa gestures: - **Tap simple**: Navegar entre páginas - **Tap doble**: Mostrar/ocultar controles - **Pinch**: Zoom - **Drag**: Mover por la página ### Descargar Capítulos 1. En la vista del manga, click en el icono de descarga 2. Elige cuántos capítulos descargar 3. Los capítulos descargados tienen un checkmark verde ✓ ## 🎨 Personalización ### Fondo del lector - **Blanco**: Para lectura normal - **Negro**: Modo oscuro (ahorra batería en OLED) - **Sepia**: Más cómodo para la vista ### Modos de lectura - **Vertical**: Deslizar hacia arriba/abajo - **Horizontal**: Deslizar izquierda/derecha (estilo manga) ## 📁 Estructura del Proyecto ``` MangaReader/ ├── backend/ # Backend Node.js (opcional) │ ├── scraper.js # Scraper con Puppeteer │ ├── server.js # API REST con Express │ └── package.json │ └── ios-app/ # App iOS ├── MangaReader.xcodeproj ├── MangaReaderApp.swift # Entry point ├── Info.plist │ └── Sources/ ├── Models/ │ └── Manga.swift # Modelos de datos │ ├── Services/ │ ├── ManhwaWebScraper.swift # Scraper con WKWebView │ └── StorageService.swift # Almacenamiento local │ └── Views/ ├── ContentView.swift # Vista principal ├── MangaDetailView.swift # Detalle del manga └── ReaderView.swift # Lector de imágenes ``` ## 🔧 Solución de Problemas ### La app no compila **Error**: "Cannot find type 'WKWebView'" - **Solución**: Asegúrate de que el target sea iOS 15+ en project settings **Error**: "No such module 'SwiftUI'" - **Solución**: Limpia el proyecto (Cmd + Shift + K) y rebuild ### El scraper no funciona **Problema**: No se cargan los capítulos - **Causa**: manhwaweb.com cambió su estructura - **Solución**: Revisa los selectores JavaScript en `ManhwaWebScraper.swift` **Problema**: Timeout al cargar - **Solución**: Aumenta el tiempo de espera en `loadURLAndWait` ### Error de firma de código **Problema**: "Failed to code sign" - **Solución**: 1. Verifica tu Apple ID en Xcode preferences 2. Asegúrate de tener un certificado de desarrollo válido 3. Limpia la carpeta Derived Data ## 🚀 Próximas Características - [ ] Importar lista de mangas desde archivo - [ ] Sincronización con iCloud - [ ] Soporte para otras fuentes de manga - [ ] Lector de webtoon (scroll continuo) - [ ] Traducción automática - [ ] Widgets de iOS ## 📄 Licencia Este proyecto es para uso personal. Respeta los términos de servicio de manhwaweb.com. ## ⚠️ Disclaimer Esta herramienta es exclusivamente para uso personal y educativo. El autor no es responsable del mal uso de este software. Por favor, respeta los derechos de autor y los términos de servicio de los sitios web. ## 🤝 Contribuciones Si encuentras bugs o tienes sugerencias, abre un issue en el repositorio. --- **¡Disfruta leyendo manga sin publicidad! 📚✨**