# 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 <TU_GITEA_URL>
   git push -u origin main
   ```

2. **En tu Mac**:
   ```bash
   # Clonar el repositorio
   git clone <TU_GITEA_URL>
   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! 📚✨**
