Dropbox cambia el codigo a multiplataforma mediante C++
Hace algunos días, los desarrolladores de Dropbox mediante una publicacion en el blog oficial de la aplicación dieron a conocer la ruta que pretenden seguir en cuanto al desarrollo móvil de su aplicación multiplataforma, en donde el equipo ha decidido crear una base de código unificada, para varios objetivos o plataformas.
El enfoque puede ser útil para equipos pequeños con poca habilidad, pero se necesita la producción lo más rápido posible. Desde 2013, el equipo de Dropbox confía en esta estrategia. Apunta a plataformas Android e iOS a través de una base de código único construida en C ++. En la publicación se explica por qué la compañía ahora prefiere el desarrollo nativo en Swift y Kotlin.
“Al montar nuestra base de código de una manera no estándar, heredamos los costos de los que no habríamos tenido que preocuparnos si nos hubiéramos alineado con las armas predeterminadas que los terceros usan a gran escala”.Al final, era más costoso que escribir código dos veces “, dijo.
De manera brusca, los comentarios del ingeniero de Dropbox muestran que la elección del enfoque de desarrollo multiplataforma introduce costos de desarrollo adicionales relacionados con la implementación de marcos y bibliotecas personalizadas.
Eso sin contar los relacionados con la implementación de herramientas de trabajo personalizadas o la necesidad de capacitar o reclutar a terceros capaces de adaptarse a una pila de software muy personalizada.
De hecho, enfatiza que la elección de C++ para el desarrollo multiplataforma de Android e iOS puede llevar a los desarrolladores a enfrentar dificultades que no habrían tenido de forma nativa.
Por ejemplo, dice, establecer un marco para administrar tareas que se ejecutan en segundo plano puede ser imprescindible en la tubería de desarrollo multiplataforma de C ++.
Por el contrario, otro ingeniero explica el ingeniero de Dropbox, no es un problema en nativo.
Incluso afirma que el equipo de Dropbox, en el proceso, tuvo que configurar una biblioteca JSON para C++ 11, así como otra para la administración de punteros NULL.
El ingeniero de la empresa fue aún más lejos al enfatizar que se está volcando en la teoría de pensar que uno puede montar una única base de código para varias plataformas.
De hecho, él insiste, Las especificidades de cada plataforma son factores que no se pueden evitar.
“La forma en que una aplicación ejecuta un trabajo en segundo plano es específica de la plataforma, y hay que mirarla desde el principio”, dice.
Además de las consideraciones que afectan el código, existen aquellas que conciernen a las herramientas de trabajo. En este sentido, el ingeniero de la empresa se desarrolla en dos ejes: depuración y configuración de herramientas personalizadas.
“La experiencia de depuración nativa es generalmente superior a la de C ++ a través del IDE predeterminado de la plataforma de destino”, escribe, y agrega que “además de tener que alejarse de las herramientas disponibles, tuvimos que movilizar los esfuerzos de desarrollo para el desarrollo de otros capaces de apoyar el enfoque multiplataforma en C ++. “
Finalmente, en términos de capacitación y aspectos de reclutamiento, Eyal Guthmann indica que la aventura multiplataforma se construyó alrededor de un núcleo de ingenieros con una sólida formación en C ++.
Con la salida de este último a otros equipos o compañías, la compañía ha tenido cada vez más dificultades para llenar el vacío técnico para mantener la base del código C ++. Interna y externamente, la empresa ha tenido problemas para capacitarse y reclutar en este eje, porque parece que muy pocos desarrolladores móviles están interesados en C ++.
El paso del equipo de Dropbox al nativo a través de Kotlin y Swift para Android e iOS conlleva beneficios.
De hecho, el lenguaje C ++, junto con el C que ya no cita, sirve como un denominador común para la gestión de tales problemas.
No es difícil imaginar que el grupo inicial de ingenieros lo haya integrado para la gestión de ciertos aspectos críticos del backend. Solamente, preguntas sobre la calidad de la interfaz C ++ con plataformas de destino se pueden poner sobre la mesa.
Fuente: https://blogs.dropbox.com/