"Comprender cómo funciona el sistema permitió mucho pirateo": Roy Beniosef sobre el desarrollo de Android



¿Cómo entender que una persona está muy inmersa en el mundo de Android y al mismo tiempo trabaja en Samsung? Bueno, incluso si una búsqueda en Google comenzó a tomar una foto de esta persona para el Samsung Galaxy, ¡esta es una señal clara!

Roy Beniosef es uno de los primeros GDE de Android en el mundo, un organizador de GDG, empleado de la unidad especial de Samsung NEXT. Pronto vendrá a nosotros con la conferencia de Mobius, y le preguntamos sobre todo: desde cómo fue desarrollar para Android en los albores del ecosistema hasta qué es exactamente lo que están haciendo en NEXT.

- Te llamas a ti mismo "el primer Android GDE" ...

- Esto es una broma, no me llaman oficialmente así. Simplemente no pude encontrar ningún experto desarrollador de Google para Android antes que yo. Todo comenzó con el hecho de que era amigo de Amir Chevat, ahora él es el principal evangelista en Twitch. Fue el iniciador del programa GDE , estaba sucediendo en Tel Aviv. Luego, en 2011-2012, participé bastante activamente en la comunidad local de Android, por lo que no es sorprendente que, entre otros, me haya elegido. El programa estaba entonces mucho menos estructurado. A veces digo en broma que me convertí en GDE porque en ese momento todavía no se molestaban con la selección.

- Es decir, ¿no hubo procedimientos estandarizados?

- No, el programa aún era muy inmaduro: mi amigo acaba de invitarme y acepté.

- ¿Qué estabas haciendo en ese momento? ¿Hiciste informes y escribiste artículos sobre Android?

- Principalmente hablaba en público. Y fui cofundador y organizador del grupo GDG con un enfoque en aplicaciones móviles. Hice muchas presentaciones para MobileMonday y para GDG, también organizamos DevFest. Todo esto fue el año 2011, no recuerdo exactamente. Además, escribimos código fuente abierto, escribimos en blogs, pero nuestra ocupación principal era hablar en público.

- Android entonces aún no tenía tres años. ¿Cuáles fueron los temas más populares en ese momento? ¿Qué problemas fueron los más difíciles?

- En general, lo mismo que hoy: brinda una experiencia de usuario de calidad, problemas de rendimiento, gráficos. Hacer que la aplicación de Android se vea elegante y funcione sin problemas, incluso ahora, y luego fue aún más difícil. Si hablamos de cuáles son las mejoras más significativas que se han producido desde entonces, creo que están relacionadas con estas dificultades, es decir, esta es la reestructuración que se produjo en relación con Marshmallow, la aparición de nuevas herramientas, ConstraintLayout. Hubo una oportunidad para escribir aplicaciones geniales, sin crear todo desde cero, y esto fue muy importante.

- Es decir, ¿el cambio más tangible es que hay una base para las aplicaciones, las herramientas necesarias para la interfaz de usuario y los marcos para la interfaz de usuario como Diseño de materiales?

- Probablemente si. En términos generales, todo esto existió desde el principio, pero fue muy difícil trabajar. Además, Android siempre se compara con iOS, y allí siempre fue relativamente fácil crear aplicaciones muy hermosas, casi sin experiencia. Y para crear una aplicación de Android de alta calidad, debe dedicar mucho tiempo a convertirse en un experto. Ahora se ha vuelto más fácil.

- ¿Por qué elegiste inicialmente Android? Dado que iOS era más fácil, podría ir allí o no participar en el desarrollo móvil.

- Comencé a involucrarme en aplicaciones móviles porque era un área completamente nueva, estaba interesado en llegar allí, alrededor de esa época hubo una desviación de los teléfonos, "marcadores". Además, iOS explotó una corporación arrogante, y Android es, considere Linux. iOS, por supuesto, también es similar a Unix, pero Android está mucho más cerca de Linux. Y soy un desarrollador de código abierto, tengo Ubuntu en mi computadora portátil, así que Android estaba más cerca de mí, quería ayudarlo a alcanzar la madurez. Y mi conocimiento de Linux ayudó en las primeras etapas de desarrollo de Android: cuando algo no funcionaba, siempre podía ir al nivel de Linux y resolver el problema yo mismo.

- enserio? Cuando comencé a trabajar con Android (era la versión 1.6), para comenzar a trabajar, tuve que instalar el SDK de Android, IntelliJ IDEA y luego simplemente leer el manual y el código. ¿Qué problemas específicos resolvió a través de Linux?

- Lo más diferente. Por ejemplo, cuando antes del advenimiento de NDK tuvimos problemas con los gráficos, escribí algunas partes en OpenGL, porque estaba bien versado en esto. Pude resolver problemas con algunos dispositivos que surgieron en el nivel del controlador. Comprender cómo funciona el sistema permitió mucho pirateo.

- ¿Entonces tienes mucho trabajo de bajo nivel?

- En ese momento había muchos. Me especializo en plataformas no estándar para Android: lideré la creación de sistemas para plataformas que no se instalaron en teléfonos estándar. Antes de Samsung NEXT TLV, trabajé en Vidmind, donde dirigí el grupo de clientes y, entre otras cosas, creamos nuestro propio proyecto para Smart TV y STB junto con Hisense basado en Android. Así que mis responsabilidades incluían el desarrollo desde el nivel de Linux en adelante.

- Resulta que tu experiencia facilitó tu desarrollo en Android. Ahora hablemos de su trabajo con el GDG en Israel y específicamente en Tel Aviv. ¿Qué nos puede decir sobre la comunidad allí? ¿Es numeroso, qué hace?

- Ahora el GDG en Israel es mucho menos activo. La mayoría de los desarrolladores más talentosos aquí están involucrados en tecnologías de nube, inteligencia artificial, blockchains. Pero hay una comunidad muy grande, activa y exitosa involucrada en el desarrollo móvil: Android Academy. La Academia fue fundada por Jonathan Levin junto con otros socios.

"Nuestros lectores conocen bien a Jonathan porque ha hablado mucho en las últimas conferencias de Mobius". ¿Y cómo estás conectado con él y con Android Academy? ¿Los ayudas?

- En la medida de lo posible. Ahora estamos desarrollando una serie de informes y seminarios que llevaré a cabo el próximo año como parte de los cursos avanzados en Android Academy. Tengo una larga amistad con ellos, y trato de ayudarlos tanto como puedo; por ejemplo, realicé hackatones y, gracias a que trabajo en Samsung NEXT, fueron recluidos varias veces en las oficinas de esta unidad.

- ¿A qué se dedicarán tus seminarios en Android Academy?

"Todavía no lo hemos decidido". Como regla, enseño algo que yo mismo conozco bien. Por lo general, estos son los problemas más aburridos y técnicos, a menudo los de bajo nivel: ciberseguridad, bases de datos de Android, el almacenamiento en caché correcto de la información, el uso correcto de la GPU, etc.

- Dinos, por favor, ¿qué es exactamente Android Academy? Lo organizamos varias veces en San Petersburgo, y no sé si es en Moscú, por lo que quizás nuestros lectores estén interesados ​​en saber qué formato tiene, si hay cursos, reuniones o cualquier otra cosa. ?

- Jonathan está mucho más involucrado en Android Academy que yo, así que es un poco inusual que hablemos de esto. Pero en general, es una comunidad muy activa, abierta y amigable. Realizan cursos como Udacity, algunos de nivel de entrada, otros están dedicados a áreas más avanzadas, por ejemplo, multihilo, gráficos, animación. Estos cursos son gratuitos y abiertos a todos.

- ¿Recomendarías asistir a los cursos de Android Academy en Rusia?

- Si es similar al israelí, sí, por supuesto.

- Hasta donde yo sé, Jonathan está tratando de exportar el modelo israelí, es decir, hacer que el ruso sea lo más similar posible al israelí. Pasemos a su trabajo ahora. Todo el mundo sabe lo que es Samsung: una gran corporación que se ocupa de todo en el mundo, desde la construcción hasta los teléfonos inteligentes. ¿Y cuál es Samsung NEXT y cuál es su papel allí?

- Samsung NEXT es el departamento de innovación de Samsung. No estamos completamente integrados en Samsung Electronics y nos especializamos en software. Tenemos una división de productos que crea software avanzado en el campo de la informática de punta, la realidad aumentada y la inteligencia artificial.

Pero el 90% de lo que hacemos aquí en Israel es inversión de capital de riesgo, y cumplo con los deberes del jefe de nuestro fondo (aunque no lo soy). Invertimos en startups en etapas desde pre-semilla hasta B, por montos de hasta $ 3 millones. Los evaluamos sobre la base de inversiones financieras, es decir, no somos inversores estratégicos, otra división, Samsung Ventures, se dedica a esto, y están haciendo un gran trabajo. Tenemos una estrategia diferente, hacemos inversiones en etapas anteriores e invertimos solo en software. Además, invertimos según criterios financieros, pero al mismo tiempo invertimos en aquellas startups que pueden tener una importancia estratégica en los próximos 2 a 10 años, incluso si Samsung aún no tiene un producto en esta área.

Por ejemplo, invertimos en una startup llamada StreamElements, que proporcionan a los streamers herramientas para reclutar, hacer crecer y monetizar a la audiencia. Samsung no tiene productos en esta área, por lo que esta inversión no puede llamarse estratégica. Además, un inversor estratégico nunca invertiría en nuevas empresas en las etapas previas a la semilla. Decidimos invertir, porque vimos cómo se monetiza esta startup. Pero al mismo tiempo, no se puede descartar que en el futuro Samsung esté involucrado en el campo de los juegos de computadora, y si esto sucede, StreamElements será de gran importancia estratégica.

Además, en Israel, mi puesto es Gerente de Relaciones con los Ecosistemas. De hecho, se me ocurrió el nombre de la publicación, lo tomé del techo. Las conexiones con los ecosistemas generalmente se entienden como, por ejemplo, eventos que Google lleva a cabo para presentar mejor a la comunidad sus productos. Y la gestión comunitaria es cuando tienes tu propia comunidad en la que organizas tus eventos. Como que no hago ni lo uno ni lo otro, pero al mismo tiempo hago un poco de ambos. Soy un evangelista de tecnologías que yo mismo no creé, porque Samsung NEXT no desarrolla nada, es una empresa de riesgo. Hacemos nuestro trabajo de forma gratuita y sin imponer ninguna obligación, simplemente porque queremos ayudar a las personas, en esto vemos nuestra misión. No tenemos nuestra propia comunidad, nos estamos asociando con otras comunidades y ayudándolas. Hacemos esto, en primer lugar, porque somos buenas personas, y en segundo lugar, porque cuanto más grande sea el pastel (es decir, la comunidad), más piezas irán a todos, incluidos nosotros. Por lo tanto, al final, también nos beneficiaremos de esto, es decir, en esencia, esto es patrocinio de nuestra parte.

- Hablemos de las startups en las que inviertes. ¿Evalúa solo su diseño, su software o, además de esto, también realiza una evaluación técnica de arquitectura, procesos, etc.?

- De diferentes maneras, dependiendo de la etapa en la que se encuentre la startup. Una startup no es una idea. Hay grandes ideas con una implementación espeluznante y viceversa. En general, estoy a cargo de la parte técnica de las inspecciones, pero también nos ocupamos de la organización del negocio. Todo nunca se reduce solo a una idea; lo miramos y la implementación.

- ¿Qué es lo más interesante en un trabajo así? ¿Conocer gente nueva, conocer nuevas ideas, una oportunidad de ver las tecnologías del futuro?

- Sí, me gusta la búsqueda de nuevas personas, generalmente son personas muy inteligentes y entusiastas con grandes ideas. Pero lo más valioso es la oportunidad de profundizar en nuevas tecnologías para las que no tenía tiempo antes. Cuando dirigía un equipo de 45 desarrolladores de Serbia, Ucrania, China e Israel, no tuve tiempo de experimentar con Firebase, el aprendizaje automático o la visión por computadora. Todo lo que hice fue orientado a muy corto plazo. Y ahora puedo darme el lujo de profundizar en las nuevas tecnologías debido al hecho de que son investigadas por las empresas en las que participamos: necesito este conocimiento para evaluar correctamente los proyectos con los que estamos familiarizados.

- Es decir, solía participar en la organización del desarrollo, pero ahora está haciendo algo más innovador y tiene tiempo para explorar el horizonte de las nuevas tecnologías. Suena muy interesante ¿Este trabajo tiene algún inconveniente?

- Por supuesto - yo mismo no creo nada directamente, sino que solo evalúo si alguien más puede hacer lo que él planea, y algunas veces proporciono dinero y ayuda. Aquí, sensaciones completamente diferentes, un retorno diferente al trabajo. Realmente me gusta el proceso de creación en sí, y específicamente este sentimiento no está aquí. Este es un inconveniente.

- ¿Tienes algún proyecto que hagas en tu tiempo libre?

"Sí, por supuesto". No puede experimentar con nuevas tecnologías, mientras no recolecta nada usted mismo. Hay un proyecto en el que he estado trabajando durante algún tiempo.

- ¿Puedes contarnos algo sobre él?

- Como dije, quería experimentar con la visión por computadora y el aprendizaje automático. Escribí una pequeña aplicación de Android que se comunica con Firebase y usa TensorFlow en el dispositivo y en Firebase. Instalé esta aplicación en mi teléfono antiguo y la puse en mi comedor. Verificó la presencia de personas en la habitación y, si alguien se enteró, grabó un video. Y debo decir que mi esposa nunca apaga la luz. Por lo tanto, el propósito de la aplicación era predecir si una persona apagará la luz cuando salga de la habitación y, si no, apague, envíe un recordatorio al teléfono.

Lo curioso es que después de algunas semanas comenzó a funcionar, divertido porque la aplicación, en general, no es demasiado inteligente. Simplemente enviaba un recordatorio cada vez que mi esposa estaba en la habitación, porque ella nunca apaga la luz y yo siempre la apago. Es decir, no era muy inteligente, pero era divertido que pudiera distinguirnos, es decir, creó su propia lógica, que no escribí.

- Sí, eso suena muy bien. Resolver problemas del hogar con la ayuda de nuevas tecnologías.

- De hecho, quería ver si realmente podía escribir algo con esta tecnología, y no solo leer el artículo y pensar para mí mismo que probablemente esto sea posible.

- Dime, ¿qué evento en tu vida profesional te trajo la mayor satisfacción?

- Hay mucho de qué hablar. Creo que el mayor honor para mí fue participar en Google I / O como orador hace dos años. También estoy muy contento de que cada año se confirme mi membresía en el programa GDE. Entonces en mi carrera hay muchos puntos por los cuales me considero afortunado. Mi ejemplo demuestra que se pueden cometer todos los errores imaginables y, sin embargo, tener éxito. Me expulsaron de dos universidades cuando comencé a trabajar en Android. Android era entonces un sistema lento con muchos bloqueos, y fue en ese momento cuando comenzó el boom de iOS. Además, la startup a la que llegué gastó 30 millones y se declaró en quiebra. El fracaso siguió al fracaso y, sin embargo, me siento exitoso porque todos estos eventos me han permitido crecer.

- Creo que no puedes tener éxito sin cometer errores. Y si los errores son grandes, puedes aprender mucho de ellos. Mi siguiente pregunta es sobre su próxima charla de Mobius "G (PU) force". ¿De qué quieres hablar exactamente? ¿Qué problema quieres resolver?

- Si está desarrollando para OpenGL, por ejemplo, escribiendo juegos, entonces tiene una cierta idea de cómo usar la GPU y qué hacer si no se comporta como debería. Si escribe en Android, entonces cuando su código es malo, no sabe si esto se debe a su error, debido a problemas con el procesador o porque está utilizando la GPU incorrectamente. El informe se basa en casos reales de la experiencia de la empresa en la que trabajé anteriormente: Vidmind, así como en varios casos que observé específicamente para ver si algo había cambiado en los últimos tres años. Constantemente tuvimos los fracasos más increíbles, y no podíamos entender por qué. Solo mucho después me di cuenta de que estábamos usando la GPU incorrectamente. En el informe, también explicaré cómo solucionar estos errores y sugeriré reglas que los desarrolladores de Android podrían usar para evitar estos problemas.

Por supuesto, con nuevas herramientas, en nuevos dispositivos y nuevos sistemas operativos, se hace más fácil trabajar. Pero la mayoría de los desarrolladores no pueden crear programas exclusivamente para los dispositivos más recientes, por lo que hay una tendencia a escribir aplicaciones que funcionan muy mal en todos los dispositivos. La mayoría de estas dificultades están relacionadas con la implementación de la GPU. Si tiene una idea de lo que Android espera de usted en diferentes niveles de API, puede escribir una aplicación que funcionará maravillosamente sin importar dónde se implemente.

- Es decir, su idea es que es importante que un desarrollador profesional de Android sepa cómo funciona la GPU, qué espera de ella.

- si. Por supuesto, después de este informe, no podrá decir: "Ahora puedo hacer algo que no sabía antes". Muestro ejemplos de cómo se integra la GPU en el ecosistema de Android. Sabiendo exactamente lo que necesita ser probado, puede crear una aplicación que siempre funcionará maravillosamente, y quiero demostrarlo.

- Espero que esto sea muy útil para nuestros lectores. Al final, me gustaría preguntar: ¿qué les gustaría a los visitantes de la conferencia?

- Me gustaría aprender mucho sobre tecnología y sobre los demás. Personalmente, yo, por regla general, hago muy poco de los informes, lo que, por supuesto, es una gran ironía, porque mi carrera, en general, se basa en hablar en público. Pero para mí, visitar informes siempre ha sido más bien una fuente de inspiración. Escribo algunas frases clave y luego trato de recopilar algo por mi cuenta para entender si entendí correctamente el hablante. , — , , . , , .

Mobius , . 8-9 .

Source: https://habr.com/ru/post/es428606/


All Articles