No he usado específicamente Delhi (¿o es Delphi?). Sin embargo, he usado otros frameworks multiplataforma en el pasado.
Generalmente tienen múltiples inconvenientes:
- La mayoría solo ofrece controles que están disponibles en todas las plataformas (o tal vez la mayoría de las plataformas)
- La mayoría se parece a una plataforma específica en lugar de verse como cada plataforma de destino (es decir, botones / controles deslizantes de estilo incorrecto)
- Algunos son lentos (sin embargo, no hay una razón inherente para esto, ¿tal vez el esfuerzo de proporcionar el sistema multiplataforma consume el tiempo necesario para optimizarlo?)
- Con frecuencia son mucho más difíciles de depurar que los kits de herramientas nativos
- Se ponen al día con las nuevas características de la plataforma lentamente
A veces, estos inconvenientes no importan tanto. Si sus diseñadores van a diseñar una interfaz de usuario de Windows Phone para la aplicación iOS de todos modos, no importará que eso sea todo lo que proporcionará su kit de herramientas. Del mismo modo, si nadie quiere decidir qué debe hacer 3D Touch en su aplicación o cómo debería ser el widget de hoy, no poder tener uno no importará.
- En comparación con mi rol de desarrollador actual en Javascript, ¿aprender iOS / Swift sería una buena manera de aliviar el estrés y un cambio de ritmo para mi próximo rol?
- ¿Cuándo permite iOS que una aplicación se ejecute en segundo plano?
- Quiero que mi iPhone cambie de color cuando lo agite. ¿Cómo implemento esto?
- Si quisiera aprender a construir un juego social para iOS, ¿qué libros debería leer?
- ¿Puedo usar el boceto 3 para compilar la barra de pestañas de iOS en lugar de usar UItabBarController? ¿Qué me aconsejas?
Los juegos también tienden a pasar más tiempo en su propia interfaz de usuario y evitan la interfaz de usuario del sistema del 80% al 100% del tiempo. Si el rendimiento de su aplicación multiplataforma es lo suficientemente bueno, puede hacerlo totalmente. ¡Solo asegúrate de que sea compatible con la compra de la aplicación porque perder algo como eso impedirá muchos modelos de negocios!
A veces importa mucho. La “próxima gran aplicación” en iOS casi nunca parece provenir de otra plataforma. Del mismo modo, la “próxima gran aplicación” en Android no parece provenir de iOS. Si está disparando para la gran liga, debe diseñarlo para que parezca que nació en esa plataforma, sin importar de dónde provenga el código. Si solo quiere “lo suficientemente bueno”, puede usar algo que le dé un aspecto multiplataforma (que podría ser un marco multiplataforma, o simplemente hacer que los diseñadores importen el estilo de diseño desde otra plataforma). Si su aplicación de venta de bienes físicos en iOS no es compatible con ApplePay porque su marco multiplataforma no era compatible con ApplePay, está dejando MUCHO dinero sobre la mesa. Usted acaba de facilitar el desarrollo, pero perdió una tonelada de dinero de personas que no tienen ganas de volver a jugar con las tarjetas de crédito. Perdió la publicidad gratuita de Apple y lo colocó en la sección “admite ApplePay” de la tienda.
Por último, si está buscando hacer aplicaciones móviles iOS / Android, le recomiendo que encuentre una que al menos se parezca a Android o iOS, no a Windows porque Windows ha perdido esta carrera. ¡Elija algo que alienará solo a la mitad de sus usuarios, no al 98% de ellos!
EDITAR:
¡Olvidé una importante!
- Muchos juegos de herramientas multiplataforma son en realidad más difíciles de usar que el juego de herramientas nativo que “reemplazan”.
Por lo tanto, probablemente será más fácil crear una aplicación multiplataforma que una versión para iOS y Android, pero no inmensamente. Además, si el problema es el tiempo, no el dinero, será más rápido tener dos equipos y construir ambas aplicaciones. Más aún si tienen sus propios horarios de lanzamiento.
También será más barato y más rápido crear aplicaciones para iOS y Android y luego ver qué tan bien funciona en el mercado y luego crear una aplicación multiplataforma (¡espero que elija la plataforma adecuada para su modelo de negocio!).