La primera parte del artículo trata sobre cómo las herramientas de desarrollo alternativo para Android pueden 'quitar' el sistema operativo de la influencia y el control de Google …
Material original
Hoy no escribiré sobre cómo dejé Google, cómo reaccionó la comunidad a mi material sobre las razones de esta decisión. Hoy hablaré un poco sobre Android y mi propia opinión desde la perspectiva de un forastero y un desarrollador aficionado bajo Android y iOS.
Estoy pensando en Android debido a la necesidad de reclutar desarrolladores para dispositivos móviles, una tarea bastante simple y directa, como podría pensar. Pero resulta que estos especialistas tienen la mayor demanda en el mercado hoy. Y encontrarlos es como atrapar unicornios.
¿Por qué todo el mundo necesita desarrolladores móviles? Porque la 'web' está muriendo lentamente. Tengo, aunque probablemente ya los tenía, amigos en casi todas las divisiones de Google. A menudo me mostraban sus tristes diagramas, y no importa cómo los miraste, quedó claro que la popularidad de la 'web' tradicional está disminuyendo constantemente a medida que el mundo se mueve hacia las plataformas móviles. No hace falta decir que probablemente recuerde el período de transición Facebook de un enfoque en la plataforma web a una preferencia por los dispositivos móviles. Facebook casi golpea la caja. Por supuesto, no de la noche a la mañana, pero la empresa atravesó una crisis existencial y se dio cuenta de que o la empresa tomaría un rumbo hacia las aplicaciones móviles, o aceptaría el final inevitable. Lo hicieron, pero fue increíblemente difícil. Se trata de la máxima abominación de la jerarquía estructural de la base de desarrolladores bajo Android.
'Cocina' desagradable
La mayoría de la gente de Google es demasiado arrogante para hacer desarrollo web o móvil. “ No soy un desarrollador front-end '', proclaman con la máxima arrogancia. En la cima de la arrogancia se encuentran los desarrolladores arrogantes de C ++ para la búsqueda, que se considera más genial que Java, que se considera más genial que Python, que se considera más genial. que Javascript. Y la búsqueda es más genial que los anuncios, que es más genial que las aplicaciones, que es más genial que las herramientas, que es más genial que los frontends. Etc. A los programadores les encanta mirarse unos a otros. Y si tiene la mala suerte de trabajar en el desarrollo de productos móviles de Google, entonces se encontrará en la base misma de varios 'tótems', donde todos los demás lo observarán con desprecio.
Habiendo pasado por todo este esplendor a su debido tiempo, desde la programación de sistemas hasta la ingeniería de datos a gran escala, el diseño de compiladores, el marco de servicios, el desarrollo de juegos, los productos móviles y web, puedo asegurarles que el front-end no es nada más simple, tal vez incluso más complicado. Todo lo relacionado con el desarrollo del back-end del producto se ve agradable, ordenado, organizado, disperso y paralelizable. Esto es el paraíso comparado con el loco desastre en la programación web después de 25 años de existencia. Pero incluso la programación web es comparable a un agradable viaje a Bali, en contraste con la programación para plataformas móviles, incluida iOS.
¿A Android? Bueno, sí. Nada más repugnante que pensar. Los desarrolladores bajo Android son héroes. Programar una aplicación enorme (Google Maps, Facebook, Snapchat) en Android está más allá de las palabras, no me creerías si lo intentara. Aquí se sienta y espera 20 minutos para ver qué sucede después de cambiar una línea de código. Y cada cambio que realice, no importa cuán pequeño sea, tiene un 80% de probabilidad de no funcionar la primera vez. La razón de esto es la extraña escasez de datos de interoperabilidad. Puedes usar tanto X como Y, pero no podrás usar X con Y, porque camina por el bosque, amigo.
Y ni siquiera se atreva a tartamudear sobre la compatibilidad de dispositivos. La página de mi juego en Google Play Store tiene un montón de clasificaciones 1 enojadas que aparecieron allí simplemente porque la aplicación, por alguna razón que no entiendo, se niega a funcionar en dispositivos LG. Así que tuve que ir a eBay, comprar el desafortunado dispositivo de LG por $ 60 para reproducir el error y descubrir que, oye, hay dos API para Android para mostrar los eventos del mouse en lista desplazable, pero una de estas API no funciona en LG. ¿Hablas en serio, tal vez sea suficiente?
Y esto es lo que sucedió: varios competidores, grandes y no tan grandes, lanzaron su alternativa al entorno de desarrollo Android. No estoy hablando de bibliotecas auxiliares para la funcionalidad faltante, aunque hay muchas. No, estoy hablando de alternativas completas para el kit de herramientas de desarrollo para Android de Google. Microsoft tiene Xamarin, Adobe tiene Cordova, Facebook tiene React Native, puedes volverte loco. Véalo usted mismo: Framework7, Appcelerator Titanium, Onsen, Sencha, Kendo, XDK, Ionic, Mobile Angular, Unity, en serio, ¿qué diablos está pasando?
Es como si todos los que intentaron programar para Android se rindieran y dijeran: 'Esto es tan horrible que voy a crear mi propia startup que lo arregle todo'. Y Google, para no dejarse vencer por la competencia, respondió: '¿Ah, sí? ¡No podrás competir con nosotros, porque competiremos con nosotros mismos! ' – y lanzó Flutter, que es (no estoy inventando nada) un kit de desarrollo 100% independiente para Android y rivaliza con el predeterminado. El equipo de desarrollo oficial bajo Android se niega a reconocer su existencia. Sin embargo, vivimos tiempos interesantes.
Ataque a Android
Todas estas herramientas hacen que Google sea vulnerable. La mayoría de ellos están disponibles para diferentes plataformas, lo que significa que puede escribir una aplicación que funcione tanto en iOS como en Android. No importa si eres una gran empresa o una pequeña tienda, nadie quiere pagar a dos equipos de desarrollo por una aplicación idéntica para diferentes plataformas. Por tanto, existe una enorme motivación económica para migrar a soluciones multiplataforma. El único obstáculo para esta migración masiva es que estas herramientas aún no alcanzan la calidad de desarrollo 'nativo'.
Pero algunos de ellos se acercan mucho, especialmente Facebook React Native. Y si uno de ellos puede obtener una participación de mercado lo suficientemente grande, entonces Android, de hecho, se convertirá en un conducto para el ecosistema de desarrolladores, que ya no está bajo el control de Google.
Esto puede parecer un poco importante, ya que Google todavía tiene una Play Store, socios OEM, licencias, etc. Para la mayoría de los usuarios, su posición superior parece cómoda. Pero vale la pena considerar esto: si todos los desarrolladores de plataformas móviles comenzaran a utilizar una determinada herramienta X multiplataforma, entonces casi cualquier fabricante de hardware o software podría ingresar al mercado con hardware o software de la competencia (como Windows) con soporte directo para X y un rendimiento y lanzamiento de aplicaciones más rápidos, excluyendo así a Google de esta cadena. Y créame, muchas empresas están hambrientas de él. Lo siento, no muchos, TODO. ¿Quién estaría en contra?
La reacción de Google ante esta situación fue seguir su propia estrategia aún más de cerca. La compañía ha duplicado el énfasis en la programación nativa (tradicional) en Android con soporte oficial para el lenguaje Kotlin, que es un gran avance para quienes usan el kit de desarrollador nativo. Amo a Kotlin, el futuro de Java está detrás. Pero tenemos que admitir: el mercado de plataformas móviles no se mueve en esa dirección. La gente 'escribe' aplicaciones multiplataforma por dos razones principales:
- Quieren que la aplicación de su empresa se ejecute en dos plataformas sin tener que duplicar la escala del trabajo.
- La programación nativa para Android todavía requiere mucho esfuerzo, incluso con Kotlin, muchas empresas sienten con razón que necesitan deshacerse de todo y empezar desde cero, pasando a una solución más simple.
Si es un desarrollador con Android o iOS y puede tomarse el tiempo para aprender React Native, que fue creado Facebook específicamente para resolver estos problemas, entonces treinta segundos son suficientes para usted. para ver cuánto mejor está. Por supuesto, asumimos que no estás “escribiendo” el juego, en cuyo caso todavía tienes que usar Unity. Para aplicaciones comerciales y utilidades de oficina, React Native ofrece un rendimiento decente, compatibilidad multiplataforma, excelentes herramientas y una velocidad de desarrollo drásticamente aumentada. ¿Recuerda cómo hablé sobre esperar veinte minutos para ver el impacto de una sola línea de cambio de código en el kit de desarrollo nativo en Android? Esto puede suceder en las aplicaciones más grandes como Nest o Facebook, pero incluso para aplicaciones de tamaño mediano, tomará de 2 a 3 minutos, mientras que en React Native todo sucede instantáneamente. Hicimos cambios y vimos el resultado.
Y eso, amigos, significa poder lanzar nuevos 'chips' diez veces más rápido, lo que les brinda un tiempo de comercialización más rápido, la ventaja del primer movimiento y ganancias sólidas. Abandonar la programación nativa en favor de herramientas rápidas y multiplataforma es una estrategia ganadora.
Por Steve Egg
Vale la pena rendir homenaje a los desarrolladores de Android, a juzgar por la descripción del 'desarrollador aficionado', no son nada agradables. Las herramientas de desarrollo alternativo más nuevas, más modernas y más rápidas amenazan con poner a Google en una posición de puesta al día, y hay muchas 'buenas corporaciones' dispuestas a ser papás. Mountain View todavía cree en la corrección de su camino, manteniendo a Flutter listo por si acaso, pero sin admitirlo. ¿Google tolerará desarrollos desfavorables? ¿Quién está listo para reclamar el 'trono'? Acerca de esto, en la continuación de este número en una semana.