Details
Gracias a la arquitectura escalable, el equipo de desarrollo móvil de Grab, que está formado por más de 100 desarrolladores de iOS, se divide en menos de 10 grandes familias tecnológicas como Movilidad, Alimentos, Pagos, CX, etc. Cada equipo hace uso de las funciones creadas por otros equipos, además de brindar un servicio estable a los consumidores y pudieron aumentar
La productividad de los desarrolladores.
Perfil y portafolio de Soojin Ro, ingeniera sénior experta en iOS
¿Cómo hacen los más de 100 desarrolladores de iOS de Grab, la superaplicación más grande del sudeste asiático con 180 millones de usuarios en 8 países , para implementar docenas de nuevas funciones en un mes sin experimentar cuellos de botella cada semana?
La respuesta es
¡Arquitectura escalable!
¿Tiene su equipo algún problema? ¡Es hora de implementar una arquitectura escalable ya!
A medida que la aplicación o el equipo crece en tamaño, la productividad se reduce debido al aumento del tiempo de compilación o a frecuentes colisiones de código.
Los errores ocurren con mayor frecuencia y el tiempo dedicado a la depuración ha aumentado.
Desea iniciar pruebas de automatización (pruebas unitarias, pruebas de UI) pero no sabe cómo.
El tiempo que tarda un usuario en ejecutar la aplicación por primera vez ha aumentado y la estabilidad de la aplicación ha disminuido.
¿Qué necesitamos para crear una arquitectura altamente escalable?
¡Aprenda sobre los 3 conceptos esenciales y la infraestructura que pueden crear sinergia juntos!
Arquitectura de niveles
- Método donde se ensamblan los objetos para su uso
- Diseñar una buena arquitectura más allá del Tipo de framework y lenguaje
Arquitectura a nivel de módulo
- Tareas esenciales para la escalabilidad de una arquitectura de aplicaciones
- Mayor velocidad de desarrollo, mantenimiento y pruebas más fáciles
- Conceptos y patrones de inyección de dependencia para acoplamiento flexible
Pruebas de automatización
- Formas de reducir errores para mejorar la experiencia del desarrollador
-Tipos de pruebas y su aplicación estratégica
Infraestructura escalable
- Banderas de características
- Monitoreo de la calidad
- Casos de una buena cultura de desarrollo
Proyecto | Crea una mini superaplicación
Composición, modularidad y pruebas para construir arquitecturas escalables
¡Crea un verdadero proyecto de miniatura de súper aplicación y practica paso a paso!
Una aplicación iOS basada en Swift tiene varios servicios dentro de la aplicación (taxi, supermercado, etc.) y tiene su plataforma de pago (Pay).
Cada servicio está separado en módulos, por lo que los desarrolladores de cada parte no se afectan entre sí y, como no hay dependencia del código fuente, es posible el desarrollo paralelo.
Las funciones más utilizadas en otros módulos, como pagos y perfiles de usuario, se comparten con otros módulos a través de la interfaz. Independientemente de su tamaño o complejidad, no afectan a otros módulos ni a los desarrolladores.
PASO 1. Creación de una vista y un flujo complejos
- Intentar descomponer una vista con una interacción compleja en una arquitectura de composición y ensamblarla.
- Aproveche una arquitectura RIB donde la lógica de negocios puede impulsar aplicaciones y desarrollar flujos complejos para hacerlas reutilizables.
PASO 2. Refactorización y reparación de un módulo con un diseño defectuoso
- Los códigos escritos en la Parte 1 están fuertemente unidos entre los objetos.
- Para aumentar la escalabilidad, se agrega un nuevo código y se separa como módulo y pasa por una refactorización para ensamblarlos.
- Aprenda acerca de los aspectos a tener en cuenta al proporcionar un módulo y arregle los módulos con un diseño defectuoso mientras lidia con la usabilidad de un código y OCP.
PASO 3. Pruebas en 4 métodos
- Aplicar 4 pruebas (prueba unitaria, prueba instantánea, prueba de IU, prueba de integración) en los códigos modularizados en la Parte 2.
- Comparar las características de cada prueba y qué prueba debe aplicarse en qué situación.
Recomendaciones
La CLASS de Soojin Ro recomendada por expertos en el campo
Ingeniero sénior de iOS
Soojin Ro
Hola, soy Soojin Ro. Creé esta CLASS basándome en mi experiencia desarrollando superaplicaciones con LINE, Grab, Naver Webtoon, etc.
En esta CLASS, trabajaremos en un miniproyecto mientras llevamos a cabo todos los procesos en detalle, desde la implementación de las características de la superaplicación hasta la refactorización y las pruebas automatizadas.
Permítame mostrarle y compartir cómo construir un entorno donde 100 desarrolladores puedan desarrollar y realizar un mantenimiento rápido al mismo tiempo.
Soojin Ro
[Actual]
Momenti / Ingeniero sénior de iOS
iPhreaks / Panelista de DevChat.tv
Desarrollo de plataformas multimedia interactivas
[Anterior]
Conferencias y otras actividades
2020 ~ 2021
Grab / Ingeniero sénior de iOS, propietario de ingeniería
Líder de la sección de iOS en el proyecto de desarrollo de GrabPay Wallet Add Cash Framework 2.0
Lideró el proyecto y presentó Flutter por primera vez en el proyecto de desarrollo de funciones ganador del premio Mystery.
Modularización de funciones de transferencia P2P
2018 ~ 2020
Desarrollador de Naver Webtoon / iOS
Líder de desarrollo de nuevo modelo de pago de contenido (gratis solo para usted), función de recomendación de webtoon para nuevos usuarios, transición de la aplicación a universal, integración y mejora de anuncios de banner
Naver Labs / Desarrollador de iOS
Aplicación de información y entretenimiento para el automóvil AWAY, desarrollo de la aplicación para padres y tutores de AKI
Swift NYC / Orador
Concierto tecnológico de NAVER: Móvil/Altavoz
SwiftFest Boston / Orador
Aplicación Notable Me/Proyecto individual
2015
LINE / Desarrollador de Android
Desarrollo de aplicaciones Android LINE Lite
Aplicación de widget de tarjeta de seguridad / Proyecto individual
App Store seleccionada como la aplicación más popular del año 2015-2017
NDC 2013
- Unlimited Access
- Best Price
Buy now, get unlimited access.
12/31 (Sat) (UTC-7) Special offer ends soon.
This special offer ends soon.
Buy now and save!
Plan de estudios
Una mirada en profundidad
* Tenga en cuenta que la fecha de lanzamiento del video del curso, la imagen y el contenido del plan de estudios, etc. están sujetos a cambios sin previo aviso.
Entrevista con
Ingeniero sénior de iOS, Soojin Ro
Cuando empecé a desarrollar aplicaciones, desarrollé una aplicación de widget de tarjeta de seguridad como proyecto individual, que fue elegida como la Aplicación del Año entre 2015 y 2017, ocupando el primer puesto en Finanzas y el segundo en la App Store. Posteriormente, participé en el desarrollo de servicios de aplicaciones a gran escala como LINE y Naver Webtoon. Me uní a Grab con la curiosidad de pensar en cómo los servicios de aplicaciones más complejos y a gran escala en el extranjero gestionan los problemas que surgen a medida que el tamaño del servicio crece. Al trabajar como desarrollador, tanto en equipos pequeños como en grandes, sentí que la arquitectura de la aplicación tendría que ser diferente a medida que los equipos y los servicios crecían.
Lideré varios proyectos mientras trabajaba como desarrollador de iOS en Grab, el Uber del sudeste asiático. Cuando introduje Flutter por primera vez en el equipo y lideré el proyecto de desarrollo de una función ganadora del Premio Mystery, tenía un profundo conocimiento de la composición, que es el elemento más fundamental de la arquitectura, por lo que pude comprender rápidamente el nuevo lenguaje y la arquitectura, y aplicarlos al proyecto.
Lideré la parte de iOS de un proyecto de desarrollo de framework. El objetivo de este proyecto era reorganizar por completo la interfaz de usuario y la experiencia de usuario para que los usuarios pudieran añadir dinero a su monedero de forma fácil y rápida, y ofrecer una amplia compatibilidad con varios países, bancos y métodos de pago del sudeste asiático. Para el negocio, era extremadamente importante, y el nivel de dificultad técnica era alto, pero me corriendo tiempo porque me uní a mitad del proyecto.
Rediseñé la arquitectura para unificar los métodos de desarrollo con los miembros del equipo. Como resultado, aceleré el desarrollo y completamos el proyecto a tiempo. El promedio de ingresos generados por los usuarios aumentó tras la implementación, y la tasa de conversión se incrementó y set un récord (superior al 95 %), reduciendo con éxito los gastos de comisiones de la Empresa .
Recomendaría esta CLASS a desarrolladores sénior con más de dos años de experiencia práctica en desarrollo iOS y con experiencia en el uso de una o más arquitecturas para Desarrollo de aplicaciones. Los ejercicios se centrarán en aplicaciones iOS, pero si se domina la sintaxis de Swift , el contenido teórico aprendido en CLASS puede aplicarse a aplicaciones móviles en otras plataformas (Android, Flutter, etc.).
Programas requeridos
Este curso utilizará
- XCode 13
- Swift
- Paquete Swift (herramienta de gestión de dependencias de primera parte)
- Combine (marco asíncrono de primera parte + basado en eventos)
- RIBs (Marco de arquitectura de Uber)
- XCTest (marco de pruebas)
Compre e instale estos programa(s) para disfrutar de una experiencia de clase magistral optimizada.
※Todos los ejercicios de esta CLASS se basan en aplicaciones de iOS y se realizan a través de Mac. Los usuarios de Windows pueden experimentar dificultades con la CLASS.
[Requerido]
- Algunos conocimientos sobre Swift + comprensión del concepto de protocolo y experiencia en aplicaciones.
[Recomendado]
- Si tienes experiencia en desarrollo utilizando una o más arquitecturas de iOS (MVC, MVVM, ReSwift, VIPER, RIB, etc.), obtendrás uniforme más conocimientos.
- Esta CLASS no cubre conocimientos básicos sobre Swift.
※Estos programas y/o materiales no se proporcionarán con el curso.
