Your relationship garden.
About the app
Lazo es un CRM personal para iOS construido alrededor de una metáfora de jardín: tus relaciones viven en un mapa orbital 2D donde la distancia al centro refleja cuánto tiempo llevas sin contactar a alguien.
El proyecto nació de una necesidad real: mantener relaciones personales de forma intencional sin depender de redes sociales ni calendarios complicados. 100 archivos Swift, ~11,200 líneas de código, cero dependencias externas.
MVVM con un ServiceContainer de 10 managers inyectados via custom EnvironmentKey — sin singletons en cascada, sin prop drilling. 9 modelos SwiftData con relaciones y reglas de borrado en cascada. Swift 6.0 strict concurrency con aislamiento global @MainActor.
El mapa renderiza contactos en 6 anillos isócronos (de 3 días a 10 años) usando Canvas nativo. Cada nodo tiene posición determinística derivada del UUID hash — sin saltos al reordenar. Zoom simultáneo y pan con rubber band physics (±80% límites de viewport, escala 0.25×–8×).
4 intents localizados: LogInteraction, CreateReminder, RecommendContacts, GetNextContactDate. PersonEntity queryable con predicado, y RelativeDateTimeFormatter con locale es_ES para respuestas naturales en español.
ratio = daysSinceContact / contactFrequencyDays clasifica cada contacto en 4 estados de salud, impulsando recomendaciones priorizadas, sugerencias de fin de semana y actualizaciones reactivas en las 72 vistas.
Tech Stack
Features
Status
In development. No release date set.