Las tecnologías multiplataforma son útiles, pero no son la respuesta a todo.
Por ejemplo, recientemente escribí una aplicación multiplataforma para un cliente, que usa WordPress para generar contenido de la página web. La aplicación muestra el contenido de la página web, por lo que esta parte de la aplicación es “multiplataforma”. Pero muchas de las otras funcionalidades son solo nativas, por ejemplo, la aplicación reproduce bandas sonoras, incluso cuando la aplicación está en segundo plano, tanto en iOS como en Android.
Si tiene una aplicación de estilo de folleto simple, entonces probablemente pueda construirla a partir de componentes conectables o tecnología multiplataforma. Pero en el momento en que desee hacer algo inusual, o si necesita exprimir hasta la última gota de rendimiento, debe bajar al metal, usar la tecnología de aplicación nativa.
- ¿Las prácticas no remuneradas son buenas para la carrera?
- ¿Cuáles son algunas cosas interesantes que puedo hacer para mi CV universitario?
- ¿Cómo es el programa BBA en la Universidad Manipal?
- Estoy planeando cambiar mi carrera a la ingeniería mecánica después de servir a la industria de TI durante 5 años, ¿qué dificultades tendré que enfrentar?
- ¿Puede un título en ingeniería electrónica y de comunicaciones conseguirme un trabajo en el campo de la ingeniería de software?
Facebook descubrió las mismas limitaciones: esto es lo que Facebook dijo sobre por qué abandonaron las tecnologías de desarrollo multiplataforma.
Una de las mayores ventajas que hemos obtenido al desarrollar iOS nativo ha sido la capacidad de acelerar la aplicación. Ahora, cuando se desplaza por su fuente de noticias en el nuevo Facebook para iOS, notará que se siente mucho más rápido que antes. Una forma de lograr esto es reequilibrando el lugar donde realizamos ciertas tareas. Por ejemplo, en iOS, el hilo principal impulsa la interfaz de usuario y maneja los eventos táctiles, por lo que cuanto más trabajemos en el hilo principal, más lenta se sentirá la aplicación. En cambio, nos encargamos de realizar tareas computacionalmente costosas en segundo plano. Esto significa que toda nuestra actividad de red, análisis JSON, creación de NSManagedObject y guardar en el disco nunca toca el hilo principal.
Para dar otro ejemplo, usamos Core Text para diseñar muchas de nuestras cadenas, pero los cálculos de diseño pueden convertirse rápidamente en un cuello de botella. Con nuestra nueva aplicación iOS, cuando descargamos contenido nuevo, calculamos de forma asíncrona los tamaños de todas estas cadenas, almacenamos en caché nuestros CTFramesetters (que puede ser costoso de crear) y luego usamos todos estos cálculos más tarde cuando presentamos la historia en nuestro UITableView.