Aplicación Fintech para iOS
Fintech es la suma de finanzas y tecnología. El término se refiere a las industrias emergentes que utilizan la tecnología para mejorar la prestación de servicios financieros. Desde compras en línea hasta transacciones bancarias móviles, las personas usan aplicaciones fintech casi todos los días. Dado que las aplicaciones de pago permiten a los propietarios de negocios realizar pagos directamente desde un teléfono inteligente sin utilizar los métodos de nómina tradicionales, decidimos crear aplicaciones de pago amigables para clientes y comerciantes (2 aplicaciones separadas) que no solo los ayudarían a realizar transacciones sin problemas, sino que también las harían ganar recompensas adicionales con cada pago que harían.
La aplicación fue creada en el entorno móvil de iOS.
A) XCode IDE : Xcode es el entorno de desarrollo integrado de Apple para macOS, que se utiliza para desarrollar software para macOS, iOS, etc. Para este proyecto se utilizó la versión Xcode 11+.
B) Herramientas :
- Figma ( herramienta de diseño) : es una herramienta de diseño gratuita para equipos que crean productos juntos. Utilizamos esta herramienta para diseñar el prototipo de la aplicación y ayudar al equipo técnico a diseñar la aplicación en tiempo real.
- SwiftLint (diseño de código) : la herramienta de código abierto para aplicar el estilo y las convenciones de Swift. Está desarrollado por Realm. Lo usamos para establecer las reglas de estilo de codificación y forzarlas durante el desarrollo.
- Administrador de paquetes Swift (destribución de código) : es una herramienta para administrar la distribución de código Swift e integrada con el sistema de compilación Swift para automatizar el proceso de descarga, compilación y vinculación de dependencias. Lo usamos en lugar de cocoa pods.
- Postman : plataforma API para diseñar, construir, probar e iterar API. Lo usó para leer la respuesta de paytm api y verificar si el pago fue un éxito o un fracaso.
D) Marcos:
- SwiftUI (SwiftUI proporciona vistas, controles y estructuras de diseño para declarar la interfaz de usuario de su aplicación)
- Foundation (proporciona una capa base de funcionalidad para aplicaciones y marcos, incluido el almacenamiento y persistencia de datos, cálculos de fecha y hora, clasificación y filtrado, etc.)
- Combinar (API Swift declarativa para procesar valores a lo largo del tiempo)
- UIKit (colección de activos que contiene un conjunto de elementos de diseño, como componentes y estilos de la interfaz de usuario)
- Ubicación central (para rastrear la ubicación de tiendas y usuarios)
- SDK de Firebase (para autenticar al usuario, almacenar su información y recibir notificaciones)
- CoreImage.CIFilterBuiltins (Para crear QR dinámico para pagos)
- CodeScanner (para escanear el código QR de la tienda)
- Webkit (Para integrar plataforma de pago y leer respuesta de pago)
F) Github (Versioning Tool) : Es el servicio de hospedaje en Internet para el desarrollo de software y herramienta de control de versiones. Proporciona el control de versiones distribuidas de Git más control de acceso, seguimiento de errores, solicitudes de incorporación de cambios, gestión de tareas, integración continua, etc. para nuestro proyecto.
G) Patrón de diseño arquitectónico (MVVM): Model View ViewModel es un patrón de diseño de arquitectura utilizado en el desarrollo móvil. Como la base del código crecería en tamaño en el futuro, usar el patrón MVVM sería más ventajoso.
H) Integración de back-end:
- SDK de Firebase: usó este SDK usando SPM (https://github.com/firebase/firebase-ios-sdk) y agregó el archivo .plist en el proyecto.
- Notificaciones : FCM (Firebase Cloud Messaging) : es una solución de mensajería multiplataforma que le permite enviar mensajes de manera confiable sin costo alguno.
- Base de datos en tiempo real: se usa para almacenar los detalles del comerciante y el usuario cuando se registran en la aplicación. A esta base de datos le siguen las funciones CRUD (crear, leer, actualizar, eliminar) para ayudar a almacenar la información de los usuarios de forma segura.
- Autenticación de usuario: ( Firebase Auth ): utilizó el marco para verificar la autenticación del usuario al momento de iniciar sesión y cerrar sesión. Ayuda al proceso de autenticación enviando la otp al respectivo número de móvil registrado y verifica al usuario.
- Para obtener la historia detallada de este producto y su análisis de mercado, consulte el siguiente enlace. He analizado en detalle el producto y su perspectiva de negocio. Aplicación de pago Fintech (experiencia en desarrollo y gestión de productos)
- https://www.hackingwithswift.com/books/ios-swiftui/generating-and-scaling-up-a-qr-code
- https://developer.apple.com/documentation/webkit/wkwebview
- https://developer.apple.com/documentation/corelocation/
- https://blog.kiprosh.com/preferable-dependency-manager-swift-package-manager-spm-or-cocoapods/
J) DRY (no te repitas): siguió este principio de desarrollo de software para reducir la repetición de patrones y la duplicación de código en ayuda de las abstracciones, evitando así la redundancia.
Básicamente, esta aplicación permite que un usuario y un comerciante se paguen entre sí sin problemas con una transferencia en línea y le permite obtener descuentos y recompensas adicionales en cada pago que realice.
La empresa gana con el modelo de suscripción en el que los usuarios pagan tarifas de suscripción a la empresa para usar su aplicación y obtener beneficios adicionales en cada pago. Si no se compra la suscripción, los usuarios no obtendrán descuentos en cada pago que realicen, pero podrán usar la aplicación para realizar los pagos habituales sin descuentos.
La aplicación comercial gana del comerciante al hacer que se registre en la aplicación en el momento del registro y use la aplicación para obtener más porcentajes de ganancias en cada pago.
Aspectos destacados clave del código:
> Para escanear códigos QR:
Para escanear el código QR en la aplicación de usuario por parte del cliente, integramos el marco de terceros (CodeScanner) de Github para simplificar el proceso de escaneo.
Consulte el enlace para obtener más información e integrarlo en el proyecto: https://github.com/twostraws/CodeScanner
Se llamó en el momento del escaneo y se basó en el resultado, es decir. éxito/fracaso, se produciría la navegación de la pantalla. Si fue un éxito, navegaría a la página de pago y si es un fracaso, arrojará los siguientes errores:
case badInput //No se pudo acceder a la cámara.
case badOutput // La cámara no pudo escanear los códigos solicitados.

> Integración de pagos:
Para realizar el Pago a una tienda o para pagar cuotas de membresía, se importó e integró WebKit . Para que el pago se realice en la fase inicial del lanzamiento, agregamos la integración de vista web de la aplicación de pago (Paytm) para enviar y recibir pagos.
Pasos 1: agregueWKNavigationDelegate
el protocolo en el objeto que usa para coordinar los cambios en el marco principal de su vista web. A medida que el usuario intenta navegar por el contenido web, la vista web se coordina con su delegado de navegación para administrar las transiciones.

Paso 2: use una instancia de UIViewRepresentable para crear y administrar un objeto UIView en su interfaz de SwiftUI. Adopte este protocolo en una de las instancias personalizadas de su aplicación y use sus métodos para crear, actualizar y eliminar su vista.

Paso 3: Use lo anterior en la Vista principal. Según el éxito o el fracaso, se muestra la respuesta.
@StateObject var webViewCoordiantor = WebViewCoordinator()
Use la clase WebView en ZStack.


> Generar QR Dinámico:
Para generar un nuevo QR por un monto diferente cada vez para la aplicación comercial, seguimos los siguientes pasos:
Paso 1: Core Image proporciona métodos que creanCIFilter
instancias con seguridad de tipos. Utilice estos filtros para evitar errores de tiempo de ejecución que pueden ocurrir al confiar en la API basada en cadenas de Core Image.
importar CoreImage.CIFilterBuiltins
Paso 2: Necesitamos dos propiedades para almacenar un contexto Core Image activo y una instancia del filtro generador de código QR de Core Image. Entonces, agregue estos dos aMeView
:
dejar contexto = CIContext()
dejar filtrar CIFilter.qrCodeGenerator()
Paso 3: Cree una función generateQR y utilícela en la vista principal.

Paso 4: agregue esta nuevaImage
vista directamente debajo:

> Seguimiento de ubicación:
Para mostrar las tiendas cercanas a los clientes, tenemos el marco CoreLocation del usuario.
Paso 1: importe el marco CoreLocation:
importar CoreLocation
Paso 2: el administrador de la ubicación llamará a los métodos de su delegado para informar eventos relacionados con la ubicación a su aplicación. Implemente este protocolo en un objeto específico de la aplicación y use los métodos para actualizar su aplicación.

Paso 3: Ahora, con el permiso del usuario, las coordenadas de latitud y longitud, ayude al iPhone a rastrear la ubicación del usuario y sus tiendas cercanas.

Por lo tanto, ve el permiso a continuación para mostrar las tiendas.

Conclusión : A medida que el alcance de la industria fintech se amplía día a día, el desarrollo de aplicaciones fintech continuará expandiéndose con el aumento de la demanda.
Dale me gusta, comparte y sigue para obtener más contenido interesante...!!
¡¡Feliz Codificación…!!