Aplicación iOS desarrollada en SwiftUI para gestionar inversiones inmobiliarias. Permite a los inversores visualizar su portafolio, seguir el rendimiento de sus propiedades, y consultar el historial de pagos mensuales.
- Resumen del portafolio con valor total de inversión
- Gráfica de rendimiento del portafolio
- Lista de propiedades recientes con valor y rentabilidad
- Navegación por tabs: Inicio | Propiedades | Documentos | Mi Perfil
- Lista completa de propiedades con información detallada:
- Nombre y ubicación
- Fecha de compra
- Valor inicial vs valor actual
- Plusvalía con porcentaje
- Rendimiento anual (ej: 9%)
- Detalle de propiedad con 3 tabs:
- Resumen: Valores, cálculo del rendimiento, ganancia total
- Pagos: Historial de pagos mensuales agrupados por año
- Rendimiento: Métricas y proyección a 5 años
- Desglose de pagos mensuales (rendimiento anual pagado mensualmente)
- Login con email y contraseña
- Almacenamiento seguro de tokens en Keychain
- Gestión de estado de autenticación
Portal/
├── Portal/
│ ├── Core/
│ │ └── Services/
│ │ ├── AuthService.swift # Gestión de autenticación
│ │ └── KeychainService.swift # Almacenamiento seguro
│ ├── Models/
│ │ ├── Property.swift # Entidad de propiedad
│ │ └── PortfolioSummary.swift # Resumen del portafolio
│ ├── ViewModels/
│ │ ├── DashboardViewModel.swift # Lógica del dashboard
│ │ ├── PropertiesViewModel.swift # Lógica de propiedades
│ │ └── LoginViewModel.swift # Lógica de login
│ └── Views/
│ ├── Auth/
│ │ └── LoginView.swift
│ ├── Dashboard/
│ │ ├── HomeView.swift # TabView principal
│ │ ├── PropertyCard.swift # Card de propiedad
│ │ ├── PerformanceChartView.swift # Gráfica de rendimiento
│ │ └── TotalValueCard.swift # Card de valor total
│ └── Properties/
│ ├── PropertiesListView.swift # Lista de propiedades
│ ├── PropertyRowView.swift # Fila de propiedad
│ └── PropertyDetailView.swift # Detalle de propiedad
├── PortalTests/
└── PortalUITests/
- SwiftUI - Framework de UI declarativo
- Swift Charts - Gráficas de rendimiento
- Keychain - Almacenamiento seguro de tokens
- MVVM - Patrón de arquitectura
- async/await - Programación asíncrona
struct Property {
let id: UUID
let name: String
let address, city, country: String
let currentValue, investedValue: Decimal
let appreciationPercentage: Double
let purchaseDate: Date
let annualYield: Double // Ej: 9.0 para 9%
let monthlyPayments: [MonthlyPayment]
}struct MonthlyPayment {
let month: Date
let amount: Decimal // Pago mensual calculado
let yieldPercentage: Double // % mensual (anual/12)
let isPaid: Bool
let paidDate: Date?
}Las propiedades tienen un rendimiento anual del 9% que se paga mensualmente:
Pago Mensual = Valor Invertido × (9% ÷ 12)
= Valor Invertido × 0.75%
Por ejemplo, una propiedad con valor invertido de $380,000:
- Rendimiento anual: 9%
- Pago mensual: $380,000 × 0.75% = $2,850
- Pagos recibidos: $2,850 × número de meses
- iOS 17.0+
- Xcode 15.0+
- Swift 5.9+
- Clonar el repositorio
- Abrir
Portal.xcodeprojen Xcode - Seleccionar el simulador o dispositivo destino
- Compilar y ejecutar (⌘+R)
- Integración con API backend (.NET 8)
- Sincronización de datos en tiempo real
- Notificaciones push para pagos
- Descarga de documentos
- Modo offline con persistencia local
- Tests unitarios y de UI
Este proyecto iOS está diseñado para trabajar con una API backend en .NET 8 con:
- Clean Architecture (Domain, Application, Infrastructure, API)
- Entity Framework Core
- JWT Authentication con Refresh Tokens
- CQRS con MediatR
- Integración con ERP interno
Copyright © 2026. Todos los derechos reservados.