¿Cuáles son las ventajas de usar elementos UIKit en lugar de elementos personalizados?

La ventaja clave es la reutilización del software. Hay grandes equipos en Apple que escriben, pulen, prueban y optimizan los componentes de UIKit en formas en que los equipos pequeños (o) solo sueñan (o ni siquiera eso).

Ejemplo: AsyncDisplayKit y otras ideas “brillantes” de Facebook. Facebook tiene enormes recursos de ingeniería, pero tienden a preferir la tecnología “que” inventan, a costa de graves duplicaciones / redundancias, incluso dentro de sus propios marcos. La aplicación FB comprende miles de clases que recrean eficazmente UIKit de acuerdo a cómo les parezca. Facebook también suele ser la aplicación que requiere más batería en cualquier dispositivo iOS (eche un vistazo al uso de la batería en la aplicación Configuración): porque si bien los usuarios lo ven como una aplicación normal, en lo que respecta a iOS funciona como un juego. Omite una serie de optimizaciones de energía que están presentes en UIKit, lo que obliga al dispositivo a ingresar raramente a modos de ahorro de energía.

Tenga cuidado al elegir componentes, especialmente los “inteligentes”. Siempre es mejor comprender las opciones de diseño e ingeniería detrás de los valores predeterminados antes de declararlos “peatones”. No caigas en la trampa NIH / Dunning-Kruger. 🙂

La mayor ventaja que conozco es que deberían cambiar de tamaño dinámicamente (debido a las clases de tamaño). Además, Apple puede mejorarlos o cambiarlos y usted seguirá siendo idiomáticamente relevante en iOS. Siempre prefiero los elementos UIKit, pero a veces simplemente no existen.

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 diferencia técnica entre "mover" y "deslizar" en iOS o Android?

¿Cómo se compara la facilidad de desarrollo de aplicaciones móviles con Appcelerator con el desarrollo nativo?

¿Cuáles son las mejores prácticas para sincronizar datos entre una aplicación iOS y una aplicación web?

¿Debo tener más de una base de datos si tengo aplicaciones en Android, iOS y web (o solo una)?

¿Prefieres Ruby on Rails o PHP para el backend de tu aplicación iOS y por qué?

¿Cuál es la diferencia básica entre iOS 8.2 y iOS 8.3 beta?

¿Cómo completa automáticamente Path el formulario de registro con la información del usuario cuando el acceso a la funcionalidad de la tarjeta "yo" no está explícitamente permitido en iOS?

Cómo hacer aplicaciones iOS y Android usando Node.js y AngularJS

¿Podemos desarrollar aplicaciones profesionales de Android / iOS usando JavaScript? ¿Si es así, cómo?

¿Cuáles son los notables desarrolladores y estudios de iPhone en el Área de la Bahía?

¿Qué lenguaje es mejor para el desarrollo de iOS: Swift u Objective C?

¿Cuánto gana un desarrollador experto de iOS que trabaja como freelance?

Swift se puede compilar con el LLVM que genera el código Objective-C y luego Objective-C se compilará en código máquina o ¿cómo funciona?

¿Podemos convertir Android en iOS?