Sí Facebook, puedes ser Nativo Y multiplataforma

A continuación encontrarás traducido al Español una entrada publicada en el blog oficial de Xojo y escrita por Geoff Perlman (Fundador y CEO de Xojo). Podrías considerarla como la respuesta de Xojo frente a las recientes afirmaciones realizada por parte del equipo de ingenieros de Facebook sobre el hecho de que, decididamente, las aplicaciones nativas son el camino a seguir (¡como es el caso de Xojo!); pero, según ellos, esto implica que entonces no es posible ser multiplataforma… ¡y con Xojo sí se puede!

En una entrada reciente del blog, el equipo de ingenieros de Facebook hablaba sobre el hecho de haber llegado finalmente a la conclusión de que Messenger necesita ser una aplicación nativa. Si bien me gusta que hayan visto la luz, han llegado a la conclusión errónea sobre los compromisos que implican ser nativo. Creen que no puedes desarrollar de forma multiplataforma y proporcionar una app nativa.

Definitivamente, sí puedes. Xojo crea apps nativas que también son multiplataforma. Puede hacerse. Es simplemente una cuestión de elegir el framework correcto. En Xojo no tomamos el camino fácil de dibujar los controles nosotros mismos o usando HTML5. No simplificamos las cosas al mínimo común denominador. Hemos hecho el difícil trabajo de crear un framework con una API que gestiona los matices, complejidades y sutiles, aunque importantes diferencias, entre 7 plataformas diferentes (macOS, Windows, Linux, web, Raspberry Pi, iOS y, en breve, Android) y múltiples versiones del sistema operativo; de modo que puedas centrarte en lo que hace que tu aplicación sea única. Lo hemos estado haciendo durante más de 20 años.

Cuando John Gruber (Daringfireball.net) analizaba el post en el blog de Facebook, este comentaba: “…las apps nativas son más pequeñas, rápidas y más fiables.”

Prácticamente cada elemento de la interfaz de usuario de Xojo es nativa. La única excepción es el Listbox de escritorio; y esto se debe a que hace mucho, cuando ninguno de los sistemas operativos proporcionaba uno, todo el mundo creaba el suyo. Dicho esto, el Listbox está formado por controles nativos. La barra de desplazamiento es una barra de desplazamiento nativa. Si el desarrollador hace que los contenidos sean editables para sus usuarios finales, entonces aparecerá un control TextField nativo. Las cabeceras son controles nativos. Las ventajas de los controles nativos no se pueden exagerar, Facebook estaba en lo cierto sobre esto. Los sistemas operativos modernos proporcionan un conjunto de características cada vez más amplio a través de sus controles nativos y, por tanto, su uso proporciona acceso inmediato a dichas capacidades. El uso de controles nativos tiene todo el sentido, desde los anillos de enfoque a la corrección automática, accesibilidad y mucho más.

Anillos de enfoque, corrección automática en macOS

Incluso la estética entra en juego. Dado que el framework de Xojo utiliza controles nativos, cuando Apple y Microsoft realizan cambios el aspecto de sus controles, las apps creadas con Xojo cambian automáticamente su aspecto y comportamiento. Más recientemente, Apple añadió el Modo Oscuro tanto en macOS y iOS; y para la mayoría de los desarrolladores, el soporte de dicha característica no requirió más que indicar que querían que sus aplicaciones la soportaran haciendo clic en una caja de verificación.

Mientras que Xojo proporciona al desarrollador un modo fácil basado en arrastrar y soltar para el diseño de las interfaces de usuario de sus aplicaciones, también proporciona una API realmente fácil de entender para interactuar con los controles vía código. Por ejemplo, el control TextField proporciona eventos que te indicarán cuando se muestra el control por primera vez, si el usuario ha cambiado la selección o el texto propiamente dicho, e incluso cuando pulsan y dejan de pulsar una tecla. Hay propiedades para cambiar el tamaño, estilo y comportamiento de los controles. Y todo ello con un nivel de abstracción que te permite centrarte no sólo en los detalles de la plataforma sino también en lo que hace que tu aplicación sea única.

Windows
Linux

Por ejemplo, bajo el capó de desktop, el TextField de Xojo utiliza NSTextField en macOS, EditControl en Windows y GTKEntry en Linux. En iOS se usa UITextField, en Android es EditText y en la web es <input type=”text” />. Cada uno de estos es muy distinto pero Xojo ha hecho el trabajo difícil de proporcionar una API directa y estándar de modo que obtengas las ventajas de los controles nativos sin la necesidad de tener que aprender cientos de APIs y los comportamientos únicos necesarios para crear una app multiplataforma.

Aplicación iOS en Modo Oscuro y Modo Claro.

No se trata sólo de los controles. El framework multiplataforma de Xojo incluye cuadros de diálogo, menús, acceso al sistema de archivos, impresión, sockets, acceso a bases de datos y mucho, mucho más.

Una app nativa es mucho más que una interfaz de usuario. También es sobre el rendimiento. Xojo también compila a código nativo para cada plataforma. Tras la cortina este utiliza LLVM, el mismo compilador que utilizan Apple, Google, Intel, AMD y Nvidia entre muchos otros. Código nativo significa velocidad nativa.

Miles y miles de usuarios Xojo han creado aplicaciones multiplataforma. El IDE de Xojo propiamente dicho, y gran parte del framework de Xojo está escrito en Xojo. De modo que sí, comemos nuestra propia comida. Studiometry y Property Me son sólo dos entre los muchos ejemplos de aplicaciones comerciales y multiplataforma escritas en Xojo. Existe una incontable cantidad de muchas otras.

También hemos hecho esto de un modo que hace que resulte fácil para los estudiantes y aficionados el aprendizaje de la programación; de modo que puedan aplicarlo en sus entornos de trabajo y crear sus propias aplicaciones de negocio. En algunos casos, estos desarrolladores crean algo revolucionario y se convierten en desarrolladores profesionales a tiempo completo. Es por ello que la comunidad de Xojo es tan diversa.

De modo que sí, puedes crear aplicaciones nativas que también sean multiplataforma. Tan sólo has de elegir la herramienta correcta.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *