¿Cuánto tiempo debería llevar a un desarrollador móvil experimentado portar una aplicación de iOS a Android?

Tomará mucho tiempo. Debe tener en cuenta las siguientes dificultades específicas de la plataforma:

– configuraciones de hardware como resolución, diseño, rendimiento y especificaciones, que pueden variar según el dispositivo.

– Soporte para el sistema operativo. Cuanto más sistema operativo sea compatible, mayor será la probabilidad de errores. La corrección de errores es algo que lleva tiempo.

– integración de bibliotecas de terceros y desarrollo de características personalizadas.

La gran parte de este proceso es el diseño. Mover el diseño de una plataforma a otra requiere una comprensión profunda de los estándares de la plataforma y el comportamiento del usuario. Aquí necesita un diseñador experimentado además de un desarrollador experimentado.

La nueva versión de la aplicación debe probarse a fondo. De lo contrario, puede transferir una aplicación de iOS a Android solo para descubrir que los usuarios la odian.

Decir que tomará un par de días es completamente ignorante. Tomará el mismo tiempo que tomó compilar la aplicación iOS, y a veces incluso más.

Consulte mi artículo que describe todo el proceso de pasar a la otra plataforma. ¿Es el momento de transferir su aplicación a la otra plataforma?

La respuesta es, depende”. Por ejemplo, una cosa a tener en cuenta es si desea mantener el aspecto de iOS o tener una interfaz de usuario de Android-Esquire. Esto es muy importante para portar iOS a Android, ya que mantener la apariencia de iOS requerirá un trabajo adicional crítico y la aplicación se sentirá extraña para los clientes finales.

Otro elemento es qué gadgets deseas reforzar. ¿Qué adaptaciones de Android precisamente? [La página del sitio de Versiones de plataforma de Google muestra las adaptaciones de los dispositivos que han llegado al Android Market durante un período de 14 días.] ¿También necesita reforzar las tabletas de Android? ¿Deben las pantallas de adaptación de la tableta variar en cualquier capacidad?

Porting de código

No es práctico tomar Objective-C y reunirlo nuevamente para Android. Las aplicaciones de Android utilizan esencialmente Java a pesar del hecho de que c también se puede utilizar (llamar) desde Java. En el caso de que su aplicación iOS utilice Vanilla C (es decir, código C normal), es posible volver a utilizar ese código en Android. Esto es útil para portar bibliotecas complejas o dar una ejecución ampliada (por ejemplo, preparación de imágenes). Sin embargo, Android tiene fundamentalmente menos bibliotecas accesibles para que el código c las utilice y, con frecuencia, las bibliotecas subordinadas c también necesitan portarse.

Compartir

Un error típico que veo en los esquemas de la interfaz de usuario es implantar el intercambio demasiado profundo en la aplicación. Los detalles a veces incorporan interfaces de usuario que recopilan datos para enviar a Facebook, Twitter o donde sea. No hay requisitos para esto en Android. Por el contrario, considere la utilización de ACTION_SEND Intents que esencialmente transfieren conexiones o contenido a otras aplicaciones (introducidas), por ejemplo, Twitter y Facebook.

Devorando

El opuesto directo de compartir es tener la capacidad de gastar información enviada por medio de ACTION_SEND Intents. En el caso de que su aplicación pueda manejar una configuración típica, por ejemplo, música, imágenes o contenido, puede ser un buen augurio proporcionar una interfaz para que diferentes aplicaciones puedan enviarle datos.

Ejecución

Java es más lento que el agregado Objective-C. Debe considerar qué partes de su aplicación son delicadas. Esto puede provocar cambios en la capacidad o el esquema, por ejemplo, la utilización del código C local, o la opción de estrategias únicas para evitar la acumulación de residuos de Java.

Tamaños de información

Java tiene una medida de tienda generalmente pequeña (tamaño de la memoria de trabajo para el profano) en contraste con iOS. Esto implica, por ejemplo, que no es práctico abrir imágenes a tamaño completo. Esto puede afectar su aplicación y es posible que tenga que hacer las cosas de otra manera o mover el código a c donde no haya tal limitación.

Hay muchas variables al portar código para poder predecir el tiempo sin saber algo sobre el código. Por ejemplo: ¿El código fue escrito teniendo en cuenta la portabilidad? ¿Utiliza funciones en iOS que no están disponibles en Android? ¿Se puede compilar cualquier parte de la aplicación de iOS en una biblioteca de Android con el NDK? ¿Qué gráficos o capa de interfaz de usuario usa? ¿Deberán recrearse los activos para las diferentes resoluciones de Android? ¿Qué versiones de Android deben ser compatibles? ¿Qué factores de forma de Android serán compatibles?

Es posible que demore solo un par de días, siempre que se haya escrito teniendo en cuenta la portabilidad, tenga una interfaz de usuario muy simple y la mayor parte del código se pueda compilar para Android con el NDK. También es posible que la portación demore más de lo que el programa original tardó en programarse en iOS si utiliza una funcionalidad en iOS que no existe de forma nativa en Android y que tendría que escribirse desde cero.

More Interesting

¿Los desarrolladores serios y centrados en el diseño usan Interface Builder? ¿Interface Builder se considera una herramienta novata o es lo suficientemente potente como para ser utilizada para el desarrollo serio de aplicaciones, donde el diseño centrado en los detalles es crítico?

¿Cuál es la mejor manera de obtener renderizado de modelos 3D Lightwave en una aplicación iOS?

¿Existen penalizaciones de rendimiento o limitaciones funcionales al usar RubyMotion sobre Objective-C nativo para el desarrollo de iOS?

¿Merece la pena asistir a WWDC si estoy buscando conectar / conocer desarrolladores de iOS?

¿Quién es responsable de las pruebas de IU en iOS?

¿Quiénes son los principales desarrolladores de aplicaciones iOS en India?

¿Necesita sincronizar standardUserDefaults después de llamar a registerDefaults?

¿Cuál es el primer paso para comenzar a desarrollar aplicaciones de iOS?

Cómo conectar Mac / Xcode / C ++ con GAMS

¿Qué nuevas oportunidades presenta el lenguaje de programación Swift para los desarrolladores de iOS?

¿Qué es un arnés en el contexto de la portabilidad de C ++?

¿Por qué la nueva función Mensajes en la aplicación Quora para iPhone no requiere una actualización de la aplicación?

¿Por qué es 10 veces más difícil de desarrollar en iOS que en Android?

¿Cuál es la mejor manera de desarrollar una aplicación para iOS, paso a paso?

¿Cuáles son algunos buenos consejos para ayudar a los desarrolladores a evitar las desinstalaciones de aplicaciones en Android e iOS?