He usado Titanium en un par de proyectos hasta ahora. En un caso, era solo un prototipo, y en el otro caso terminamos teniendo que reescribir toda la aplicación en código nativo debido a algunos problemas serios con Ti. Tampoco fue fácil escribir aplicaciones multiplataforma para iPhone y Android. Terminamos teniendo que dividir la base del código debido a las muchas diferencias.
Pros:
- Desarrollo muy rápido
- Los programadores de Javascript pueden escribir aplicaciones
- Cierta reutilización de código multiplataforma
Contras:
- ¿Cómo sería la estructura de desglose de trabajo para una pequeña aplicación iOS?
- ¿Cómo se comunican las partes MVC entre sí?
- ¿Cómo pasó del desarrollo de outsourcing a un desarrollador único a un equipo de desarrollo o empresa?
- Verificación de edad en la aplicación de iPhone (¿Cómo verificar la edad del usuario si es mayor de 18 años?)
- ¿Es cierto que los usuarios de iOS pueden estar seguros de que todas las versiones anteriores de iOS son compatibles con la versión actual de su dispositivo iOS?
- Documentación terrible, tanto terriblemente incompleta como desactualizada. Me puse en contacto con los desarrolladores para dejar que la gente editara la documentación (obviamente están demasiado ocupados codificando para hacerlo), pero no escuché ninguna respuesta. Proporcionan una aplicación de “Fregadero de cocina” cuyo objetivo es enseñar con el ejemplo, pero partes de ella a menudo se rompen, y “el código es la documentación” nunca es la respuesta correcta.
- Muchas cosas extravagantes, como la forma en que maneja los manifiestos personalizados y los archivos de configuración (debe cambiar el nombre y colocarlos en una carpeta determinada, también completamente indocumentada, excepto buscando en los foros de soporte)
- La herramienta de compilación Titanium Developer es bastante defectuosa y tiene algunas características extrañas (¿por qué mi herramienta de compilación tiene Twitter y FriendFeed (??)?)
- Si compila para iPhone solo para comenzar y decide que quiere hacer Android también más tarde, es un gran dolor de cabeza. Cree un proyecto ficticio para Android, copie la carpeta de compilación de Android en su proyecto real, edite todos los archivos para cambiar la información a la información de su proyecto real, etc.
- La carga de datos de fuentes remotas en Android es muy lenta (la transferencia real es rápida, pero el análisis de JSON tarda una eternidad por alguna razón)
- No puede usar ninguna biblioteca de terceros, como el análisis de Flurry. El análisis de Appcelerator es extremadamente básico (por ejemplo, solo puede ver en qué país se encuentra un usuario, no en la ciudad o el estado). Si necesita una buena analítica (¿y qué negocios no necesita?), Entonces esta es una gran opción.
Dicho todo esto, creo que los chicos de Appcelerator han hecho un trabajo increíble considerando lo que están tratando de construir. Todavía uso Titanium para un par de proyectos de Android (tengo muy poca paciencia con Java), pero no puedo recomendar Titanium a nadie más para nada más que prototipos o aplicaciones simples.