Diferencias entre Android y iOS

A continuación encontrarás traducido al castellano el artículo escrito por Paul Lefebvre y que está publicado originalmente en el blog oficial de Xojo.

En general el diseño de apps para Android y iOS es similar, pero existen algunas diferencias. Estas son algunas de las más importantes que debes tener en cuenta a la hora de obtener una mejor experiencia desarrollando para Android.

Pantallas

Lo primero que observarás cuando crees tu primer proyecto para Android con Xojo es que no existen elementos de proyecto Layout. A diferencia de lo que ocurre en los proyectos iOS, donde encuentras tanto elementos MobileScreen como iOSLayout, Android sólo utiliza MobileScreen. En el Inspector de pantallas de Android es donde controlas si la pantalla ha de soportar orientación vertical, apaisada o ambas.

Las pantallas modales en Android han de especificarse en tiempo de diseño, lo cual también puedes hacer en el Inspector.

Los objetos MobileScreen de Android siempre son instancias implícitas, de modo que no tienes por qué usar “New” para crear una instancia de pantalla. Dado a cómo funcionan las pantallas en Android existen limitaciones a la hora de llamar métodos de pantalla entre diferentes pantallas. Por ejemplo, no puedes devolver valores desde métodos llamados en diferentes pantallas. Para obtener mejores resultados, deberías de intentar diseñar tus pantallas de modo que sean lo más auto-contenidas posibles.

Compilación

Aunque Android sólo está diseñado actualmente para soportar diseños dirigidos a móviles, las apps Android creadas con Xojo funcionarán sobre una amplia variedad de dispositivos Android, incluyendo tabletas, ChromeBooks, TV, dispositivos Amazon Fire, etc. Incluso puedes ejecutarlas bajo Windows si tienes instalado el subsistema Android.

En los ajustes compartidos de compilación, los ajustes de optimización controlan tanto la ofuscación como el tamaño del paquete generado.

  • Default: Ofuscación: Off; Reducción: Off
  • Moderate: Ofuscación: Off; Reducción: On
  • Aggressive: Ofuscación: On; Reducción: On

Cuando crees pasos de compilación para la copia de archivo, en Android estos han de ir antes del paso Build en vez de después, tal y como sí es necesario en iOS.

Afortunadamente, Android requiere menos iconos de aplicación de los precisados por iOS.

Temas

Con Android puedes indicar los colores del tema para toda la app. Para ello utiliza la propiedad Theme Color Name en el Inspector correspondiente al item de proyecto App. Puedes elegir una opción de entre la lista del tema estándar Material, o bien puedes indicar tus propios colores de tema seleccionando Custom. Los colores de tema se muestran en el editor de diseño del IDE de modo que podrás previsualizar el aspecto final.

Controles

Quizá lo principal a tener en cuenta con los controles en Android es que Android utiliza el bloqueo de controles mediante candados en vez de AutoLayout y Constraints tal y como ocurre en iOS.

Android cuenta con controles similares a los disponibles en iOS, si bien en menos cantidad, lo cual no debería de sorprenderte teniendo en cuenta que iOS está disponible en Xojo desde hace 10 años.

Hay dos controles importantes que funcionan de forma diferente a como lo hacen en iOS: Tab y Table.

Android cuenta con un control MobileTabPanel para crear diseños de pantalla en los que se utilicen estos elementos, Cuando añades un TabPanel a la pantalla lo podrás situar donde quieras. Puedes especificar un control contenedor para los contenidos de cada una de las pestañas. Esto es diferente al modo en el que iOS gestiona las pestañas en los elementos de proyecto iOSLayout.

La tabla de Android también es diferente a la tabla de iOS. AndroidMobileTable funciona de una forma más parecida a como lo hace un ListBox con una sola columna en Desktop. Puedes añadir nuevas filas con facilidad con soporte de texto, texto de detalles, colores, imágenes, etc. Las filas de una tabla en Android se ajustan automáticamente para adecuarse al tamaño de su contenido.

Lenguaje y Framework

Debido a la naturaleza del trans-compilador, no todas las características estándar del lenguaje Xojo están disponibles actualmente en Android. A continuación encontrarás algunas de las diferencias a tener en cuenta cuando trabajes con proyectos Android.

Si bien puedes utilizar los diferentes tipos Integer en el código Xojo, con Android todos funcionarán como Int64, y Single funcionará del mismo modo que lo hace Double.

La clase Thread presenta algunas limitaciones en Android. No puedes pausar y reanudar los threads y todos los threads se ejecutan con la misma prioridad.

Android carece de soporte para Structs (Estructuras). Dado que estas se utilizan fundamentalmente con los Declare, y ello no es necesario en Android, no debería de importar en exceso. Si las utilizas como estructuras de datos en general, considera utilizar una clase.

Android aun no soporta ColorGroup. Por defecto, las apps Xojo de Android siempre funcionan en modo Claro. Si quieres soportar el modo Oscuro en tus apps tendrás que hacerlo manualmente activando la propiedad Supports Dark Mode en los ajustes de compilación de Android y cambiar los colores en tiempo de ejecución basándote en el valor de Color.IsDarkMode.

Algunas de las características iOS que se han añadido en los últimos años aun no están disponibles en Android. Esto incluye, pero no se limita a, cosas como XMLDocument, RegEx, PDFDocument, las notificaciones y MobileChart.

En futuras revisiones continuaremos convergiendo las características entre iOS y Android, al tiempo que trabajamos para tener un único tipo de proyecto Mobile.

Deja un comentario

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