¿Cuáles son los inconvenientes del Corona SDK?

Evalué a Corona para un proyecto el año pasado. En ese momento los inconvenientes eran:

Fuente cerrada : Estaríamos a merced de Ansca para la corrección de errores. Ser Ansca es una empresa nueva y pequeña, si tuvieran que hundirse estaríamos atrapados en un marco estancado. También podríamos estar limitados por sus recursos (es decir, “no podemos corregir ese error o agregar esa característica en este momento porque no tenemos suficientes ingenieros”).

Marco aislado : no fue posible utilizar API de dispositivos nativos. Todas las interfaces tenían que hacerse a través de Corona y LUA, por lo tanto, las funciones admitidas por un dispositivo no podían admitirse en una aplicación Corona a menos que Corona las expusiera. (MMS y correo electrónico, por ejemplo)

Rendimiento y flexibilidad : Corona se basa en funciones de alto nivel para cálculos costosos (por ejemplo, física). Si bien esto reduce la complejidad del código para las aplicaciones, también reduce la flexibilidad. Si la API de Corona no proporciona lo que una aplicación necesita, digamos para física, escribir una función para hacerlo en LUA resulta en un gran éxito en el rendimiento.

Corona ha sido ampliamente mejorada y ampliada desde el año pasado.

Estoy seguro de que los inconvenientes que mencionas definitivamente pueden ser desalentadores para algunas personas, pero creo que la mayoría entiende que si obtienes algunos, tienes que dar un poco. En el caso de Corona, estás cediendo poco y obteniendo MUCHO a cambio. De hecho, cuando dejas de pensar en todo esto, puede parecer que no hay inconvenientes en absoluto.

Por supuesto, al final, todo depende de sus necesidades individuales como desarrollador, así como de las necesidades individuales de su aplicación, pero todo lo escrito a continuación debería aplicarse a la mayoría de las personas.

Tocaré cada una de las áreas de inconvenientes que mencionó, para explicar lo que puede parecer un inconveniente en la superficie, en realidad es una señal a su favor (el desarrollador).

Fuente cerrada
Sí, el motor en sí es de código cerrado. No puede modificar la arquitectura subyacente que conforma una aplicación Corona. Sin embargo, conserva todos los derechos sobre el código fuente de Lua que conforma su proyecto (que es toda la lógica del juego y lo que realmente diferencia a la aplicación de la arquitectura técnica).

La fuente cerrada puede sonar muy mal. Pero lo veo de esta manera. Los fundadores e ingenieros de Corona tienen años y años de experiencia en ingeniería y dispositivos móviles, y eso personalmente no podría codificar una plataforma mejor y más eficiente desde cero.

Y aunque DEBE esperar a que se corrijan los errores antes de que se corrijan (errores centrales), también estoy seguro de que si me tomo el tiempo para crear una arquitectura técnica subyacente para cada una de mis aplicaciones, seguramente tendría más errores que lo que hay en Corona en este momento.

Otra buena nota es que son muy buenos para solucionar errores. Es fácil enviar un informe de error, y vale la pena mencionar que los errores se corrigen ** a diario ** (proporcionan acceso a las compilaciones diarias).

Más información sobre la “pila” técnica de Corona aquí (escrita por Ted Patrick, evangelista jefe de desarrollo de Barnes & Noble):
http://tedpatrick.com/2011/01/22

Marco aislado
Si bien hay características nativas del dispositivo que no son compatibles, la brecha se está reduciendo rápidamente a medida que Corona se expande continuamente en el soporte API nativo (e incluso de terceros).

Lo realmente genial es que, cuando Corona agrega soporte para una nueva API, los ingenieros se aseguran de implementarla de la manera más fácil e intuitiva. Por ejemplo, cuando se trata de agregar compras en la aplicación a una aplicación Corona, ¡la parte más difícil es configurar todo en Apple! La parte de codificación es extremadamente fácil y toma muy pocas líneas de código (código legible por humanos).

Lo mismo con OpenFeint y otras API nativas y de terceros que son compatibles.

Rendimiento y flexibilidad
En realidad, esto realmente no es un problema porque las aplicaciones creadas en Corona funcionan a niveles que rivalizan con las aplicaciones nativas. Debido a la eficiencia de la arquitectura subyacente de Corona, y al gran trabajo que han hecho los ingenieros, en muchos casos las aplicaciones de Corona incluso superan a las que se hicieron con una pizarra Xcode en blanco.

Y aunque está escribiendo sus aplicaciones usando 100% Lua, como se mencionó en el artículo que proporcioné anteriormente, Corona todavía se basa en una pila tan corta que cualquier penalización de rendimiento proporcionada al usar Lua es mínima en el mejor de los casos.

¡Los fundadores de Ansca / Corona, Walter y Carlos, lideraron el equipo Flash Lite una vez, y lograron avances de rendimiento increíbles en teléfonos con funciones! Lo que han hecho ahora es aplicar su experiencia y pericia a un motor, construido para teléfonos inteligentes, que funciona a velocidades nativas mientras permite al desarrollador escribir sus aplicaciones usando un lenguaje fácil de aprender (Lua).

Y aunque su código usa funciones de alto nivel, su aplicación se compila usando una biblioteca nativa y un código nativo, por lo que el resultado final es idéntico a algo que habría escrito desde cero, pero solo en una fracción del tiempo que le tomaría crear una aplicación con un motor comparable (una fracción del tiempo tampoco es una exageración).

Además de todo eso, el rendimiento, aunque ya es excelente, tampoco se queda donde está para siempre. La tecnología continúa mejorando, sin embargo, Ansca continúa brindando actualizaciones y arreglos de rendimiento a medida que avanzan, y hay mucho más por venir (en todas las demás áreas también, no solo en el rendimiento).

Divulgación: Actualmente estoy empleado por Ansca, Inc, por lo que aunque mis respuestas pueden estar sesgadas, no significa que no sean ciertas 🙂

Corona es genial, pero ciertamente debes evaluar cuidadosamente qué características necesitarás. Por ejemplo, Corona SDK no tiene soporte para notificaciones locales.

He escrito una publicación de blog sobre las ventajas y desventajas de Corona SDK:

http://www.cutemachine.com/produ