Artyom Kulakov y Roma Choryev son los desarrolladores de Redmadrobot y graban podcasts donde discuten varios aspectos de la creación de productos de TI. En el undécimo episodio, los invitados comparten su experiencia y bromas: Dima Suzdalev, líder de tecnología de Android KODE , y Vasya Chirvon, jefe de práctica de Android en Redmadrobot SPB.
Adjuntamos un enlace a la última versión, el tiempo y las respuestas a varias preguntas importantes.
- 1:58 - Vasya Chirvon habla sobre cómo entró en el desarrollo de Android.
- 03:25 - Y ahora Dima Suzdalev sobre su camino.
- 14:52 - Hacia dónde se dirige la plataforma Android.
- 25:05 - ¿Es difícil desarrollar aplicaciones para Android?
- 34:30 - ¿Es más difícil convertirse en un buen desarrollador de Android que en un desarrollador de iOS?
- 58:01 - Un poco sobre Jetpack Compose.
- 01:02:02 - Un poco sobre Hilt.
- 01:03:15 – : KMM/Flutter – ?
- 01:20:02 – UI .
- 01:27:14 – .
– Android-
Por supuesto, hay dificultades y problemas, pero esto es lo mismo que en cualquier profesión.
Dima Suzdalev señaló que la experiencia de un desarrollador de Android se trata del hecho de que sabes "dónde no necesitas ir". Bueno, si todavía vino al lugar equivocado, entonces sabe cómo moverse por este "lugar equivocado".
Pero Roma comparó el desarrollo de Android con caminar encadenado (pesadas cadenas de hierro): puedes caminar, pero, por así decirlo, duele. Como ejemplo, citó una situación familiar para cualquier desarrollador cuando un elemento del que se espera un comportamiento normal deja de funcionar repentinamente. O, por ejemplo, esto ocurre generalmente solo en un dispositivo específico ("hola" a una flota de miles de dispositivos chinos).
O así es como sucede: digamos que Google tiene un error en la API que funciona de una manera específica. Ya estás acostumbrado a esto, no olvides hacer una solución y vivir con ello en todos los proyectos. Pero de repente, en algún momento, Google corrige este error, y ahora todo lo que hiciste antes rompe la aplicación. Y de nuevo tienes que hacer algo al respecto.
El desarrollo es similar a Lego, a veces difícil, ¡pero genial! Te sientas y construyes. Y te gusta, porque si no te gusta Lego, entonces no lo jugarás;)
Acerca de los nuevos elementos en el campo del desarrollo de Android
Recientemente, casi todos los años, Google ha presentado varias cosas útiles para los desarrolladores: Jetpack Compose, componente de navegación, almacenamiento de datos y otras credenciales de identidad de seguridad.
Dima dijo que le gusta el enfoque de Google para desarrollar Jetpack Compose. Ya lo había probado y destacó especialmente las guías y la excelente documentación, donde todo está explicado y hay ejemplos de código.
En cuanto al componente de navegación, esta biblioteca demuestra ser una buena herramienta para aplicaciones simples. Con su ayuda, puede agregar navegación rápidamente y administrarla bien. Los muchachos notaron que sería muy bueno si Google agregara una generación rápida de gráficos allí.
Discusión detallada de Dagger / Hilt and Anvil desde 01:02:02.
No solo Google (Huawei puede, pero un poco)
En el mundo libre de Android, no solo está Google, que fue regañado en el estudio. También está la corporación Huawei, que ha creado un interesante precedente en el mercado.
Quién no lo sabe: Huawei ha creado sus propios análogos de los servicios de Google, además, la interfaz del laboratorio de códigos se ha copiado casi uno a uno. La empresa invirtió mucho en marketing para cubrir la historia. En pocas palabras: en las ventas de sus teléfonos inteligentes, Huawei entró en la cima, superando incluso a los "gigantes gigantes" Apple y Samsung. Es cierto que esto se debió principalmente al mercado chino, Roma está seguro.
Vale la pena señalar que esta situación abre ciertas oportunidades: es bueno cuando hay una opción y no solo hay Google. Si otras grandes empresas comienzan a ofrecer alternativas a los servicios de Google Play, será útil para todos. Pero esto inevitablemente agregará problemas para los desarrolladores, por ejemplo, con la fragmentación. La aparición de servicios segundos, terceros, etc. te hará conocer diez variedades de los mismos.
Algunas palabras sobre el desarrollo multiplataforma
Junto con el desarrollo de Android e iOS, se está desarrollando un mundo separado y bastante grande de desarrollo multiplataforma.
Tiene enfoques tradicionales que aún funcionan y un par de productos nuevos que se han debatido muy activamente en la comunidad durante los últimos dos años. Se trata de Flutter y Kotlin Multiplatform.
¿Qué tan convenientes y aplicables son? Los invitados al estudio decidieron por unanimidad que "Flutter extraña a Kotlin". Más detalles a partir de las 01:15:27.
Construido y construido: Arquitectura de aplicaciones de Android
Hoy en día, para diseñar una aplicación, no basta con tomar una arquitectura tradicional; es necesario observar tareas comerciales específicas y crearla usted mismo desde cero.
"Por supuesto, debe tener en cuenta los enfoques generales de diseño, pero" no debe poner un búho en el mundo ", dice Artem. Si las tareas comerciales no encajan en la limpieza habitual y MVVM, por lo tanto, no es necesario que las utilice. Eso es todo.
Es importante entender que la arquitectura no es un manual, sino un conjunto de soluciones que se pueden aplicar en el trabajo. Vasya Chervon lo explicó así: “Sabes que la losa debe tener un cierto peso para no aplastar las paredes, o las paredes deben ser lo suficientemente fuertes para soportarlo. Y para poder construir, debes tener en cuenta estas reglas ".
Todo esto es cuestión de experiencia, por lo tanto, si el desarrollador no comprende realmente qué arquitectura debe hacerse, entonces vale la pena consultar con un amigo mayor. Pero, por supuesto, no con alguien que dice: "Haz MVVM, eso es genial".
Para obtener soluciones arquitectónicas efectivas, debe leer muchos libros sobre diseño de sistemas para comprender en qué situaciones pueden cambiar las soluciones y cómo aplicarlas. Leer más sobre libros a partir de las 01:35:06.
Materiales útiles
- Androide. Clean Is Dead. Estás equivocado;
- Anvil: un complemento para simplificar la manipulación de su aplicación;
- Charla de Rich Hickey sobre Simple vs Easy;
- A Philosophy of Software Design : un libro sobre el diseño de software, que define su complejidad, enfoques de reducción, definiciones claras y legibles;
- Una descripción general muy interesante de los problemas arquitectónicos como patrones y cómo resolverlos;
- . ;
- - ;
- HMS Redmadrobot SPb.
« »
Escúchanos donde sea conveniente: YouTube , Soundcloud , Apple Podcasts , Google Podcasts Discutamos
el episodio en el chat de Telegram .