Skip to content

NinaDIV/TypeNote-iOS-Notes-App

Repository files navigation

TypeNote — App de Notas Minimalista para iOS con Sincronización en la Nube (AWS)

Swift SwiftUI Xcode AWS Amplify Plataforma

TypeNote es una aplicación móvil nativa desarrollada en Swift y SwiftUI, inspirada en herramientas de productividad como Notion y Bear. Ofrece una experiencia de notas personal, moderna y elegante, enfocada en la velocidad, la simplicidad y la seguridad de la información mediante la integración con AWS Amplify.

Vista previa

🔑 Características

  1. Autenticación segura: flujo completo de registro e inicio de sesión basado en AWS Cognito.
  2. Gestión completa de notas (CRUD):
    • Crear nuevas notas de forma intuitiva.
    • Recuperar y listar todas las notas de forma eficiente.
    • Update: editar el contenido, la categoría y el color de las notas existentes.
    • Delete: eliminar notas de forma permanente.
  3. Organización visual: categorización de notas con asignación de colores para una identificación rápida.
  4. Diseño minimalista: interfaz elegante y centrada en la escritura, siguiendo los principios de diseño de iOS.
  5. Persistencia en la nube: sincronización automática de las notas para mantener la información actualizada en todos los dispositivos.

🚀 Tecnologías

Categoría Tecnología / Framework Versión
Lenguaje Swift 5.9
UI Framework SwiftUI 4.0+
Arquitectura MVVM (Model-View-ViewModel) N/A
Backend AWS Amplify (BaaS) Latest
Dependencias Swift Package Manager (SPM) N/A

☁️ Integración con AWS Amplify

La aplicación utiliza AWS Amplify para establecer una infraestructura serverless robusta y escalable:

  • AWS Cognito: gestión de la autenticación de usuarios (registro, login, sesiones).
  • AWS DynamoDB: base de datos NoSQL para el almacenamiento persistente de las notas.
  • AWS API Gateway & Lambda: capa de API REST para las operaciones CRUD de las notas.

📋 Requisitos previos

Antes de compilar el proyecto necesitas tener instalado:

  • macOS con Xcode 15.0+ (incluye el SDK de iOS y los simuladores).
  • Swift 5.9+ (viene incluido con Xcode).
  • Node.js y npm, necesarios para instalar el CLI de Amplify:
    npm install -g @aws-amplify/cli
  • AWS CLI instalado y configurado con credenciales válidas (aws configure).
  • Una cuenta de AWS con acceso a Cognito, DynamoDB, Lambda y API Gateway.
  • Un simulador de iOS (p. ej. iPhone 15 Pro) o un dispositivo físico.

⚙️ Instalación y ejecución

  1. Clonar el repositorio:

    git clone https://github.com/NinaDIV/TypeNote-iOS-Notes-App.git
    cd TypeNote-iOS-Notes-App
  2. Verificar la configuración de Amplify:

    Nota: se asume que el backend ya está aprovisionado. Si no lo está, ejecuta amplify init y sigue las instrucciones del CLI.

    Asegúrate de que el archivo de configuración de Amplify esté en la raíz del proyecto:

    ls amplifyconfiguration.json
  3. Abrir el proyecto en Xcode:

    open NotesApp.xcodeproj

    Xcode resolverá automáticamente las dependencias de Swift Package Manager.

  4. Compilar y ejecutar:

    • Selecciona un simulador de iOS (p. ej. iPhone 15 Pro).
    • Haz clic en el botón Run (▶) o usa Cmd + R.
    • Al iniciar, el simulador mostrará la pantalla de login/registro (AWS Cognito); tras autenticarte verás el listado principal de notas (MainView).

📐 Estructura del proyecto

El proyecto sigue el patrón MVVM para una mejor modularidad:

TypeNote-iOS-Notes-App/
├── NotesApp.xcodeproj/          # Proyecto de Xcode
├── NotesApp/
│   ├── Model/                   # Estructuras de datos (Note, Category)
│   ├── View/                    # Vistas SwiftUI (AuthView, MainView, NoteDetailView, ...)
│   └── ViewModel/               # Lógica de negocio y comunicación con AWS
│                                #   (AuthViewModel, NotesViewModel)
├── Sources/                     # Código fuente del paquete Swift
├── Tests/                       # Pruebas del paquete Swift
├── Galeri01/                    # Capturas de pantalla y video de demostración
├── Package.swift                # Manifiesto de Swift Package Manager
└── amplifyconfiguration.json    # Configuración del backend de Amplify

📷 Galería y demostración

El contenido visual del proyecto (capturas de pantalla y un video de demostración) se encuentra en la carpeta Galeri01/.

1. Pantalla de inicio / Login (AWS Cognito)

Muestra la interfaz de autenticación para un acceso seguro.

Captura de la pantalla de Login y Registro de TypeNote

2. Formulario de creación de nota

Vista que permite registrar una nueva nota, incluyendo la selección de categoría y color.

Captura del formulario de creación de una nueva nota

3. Listado principal de notas

Muestra la MainView con el listado de notas optimizado, destacando la organización visual por color.

Captura del listado de notas con tarjetas categorizadas

4. Vista de detalle y edición

Interfaz para visualizar el contenido completo y modificar la nota existente.

Captura de la vista para ver y editar una nota

5. Video de funcionamiento (demostración completa)

El video demuestra el flujo completo de la aplicación: autenticación, CRUD de notas y sincronización en la nube.

▶ Ver video completo de funcionamiento (MP4)

🧩 Contribuciones

  • Backend (AWS Amplify) — Implementado por Alarcón Paricanaza Anderson Aaron Incluye:
    • Configuración de AWS Amplify (inicialización del proyecto)
    • Implementación de AWS Cognito para autenticación
    • Implementación de AWS DynamoDB como base de datos NoSQL
    • Creación de Lambdas y configuración de API Gateway para el CRUD
    • Integración total del backend con la app iOS

About

App de notas minimalista para iOS en SwiftUI, inspirada en Notion y Bear, con autenticación y sincronización en la nube vía AWS Amplify (Cognito + DynamoDB).

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages