Sin mantenimiento
Este proyecto ya no es utilizado por LinkedIn y actualmente no se mantiene.
Layoutkit es una biblioteca de diseño de vista rápida para iOS, macOS y TVOS.
Motivación
LinkedIn creó LayoutKit porque hemos descubierto que el diseño automático no es lo suficientemente desempeñada para las jerarquías de vistas complicadas en vistas desplazables. Para obtener más experiencia, lea la publicación del blog.
Beneficios
LayoutKit tiene muchos beneficios sobre el uso de diseño automático:
- RÁPIDO : LEYOUTKIT es tan rápido como el código de diseño manual y es significativamente más rápido que el diseño automático.
- Asíncrono : los diseños se pueden calcular en un hilo de fondo para que las interacciones del usuario no se interrumpan.
- Declarativo : los diseños se declaran con estructuras de datos inmutables. Esto hace que el código de diseño sea más fácil de desarrollar, documentar, revisar el código, prueba, depurar, perfil y mantener.
- Cacheable : los resultados del diseño son estructuras de datos inmutables para que puedan ser precomputados en segundo plano y almacenados en caché para aumentar el rendimiento percibido del usuario.
Layoutkit también proporciona beneficios que hacen que sea tan fácil de usar como diseño automático:
- Uikit Friendly : LayoutKit produce UIViews y también proporciona un adaptador que facilita el uso de UITableView y UicollectionView.
- Internacionalización : LayoutKit ajusta automáticamente los marcos de vista para los idiomas de derecha a izquierda.
- Swift : Layoutkit se puede usar en aplicaciones rápidas y parques infantiles.
- Probado y listo para la producción : LayoutKit está cubierto por pruebas unitarias y se usa dentro de las versiones recientes de las aplicaciones iOS de búsqueda de trabajo de LinkedIn y LinkedIn.
- Fuente abierta : no es una caja negra como el diseño automático.
- Licencia Apache (V2) : Sus abogados estarán contentos de que no haya travesuras de patente.
Hola Mundo
let image = SizeLayout < UIImageView > ( width : 50 , height : 50 , config : { imageView in
imageView . image = UIImage ( named : " earth.jpg " )
} )
let label = LabelLayout ( text : " Hello World! " , alignment : . center )
let stack = StackLayout (
axis : . horizontal ,
spacing : 4 ,
sublayouts : [ image , label ] )
let insets = UIEdgeInsets ( top : 4 , left : 4 , bottom : 4 , right : 8 )
let helloWorld = InsetLayout ( insets : insets , sublayout : stack )
helloWorld . arrangement ( ) . makeViews ( in : rootView ) 
Limitaciones
Hemos encontrado que LayoutKit es una herramienta útil, pero debe ser consciente de lo que no es.
- LayoutKit no es un sistema de diseño basado en restricciones. Si desea expresar una restricción entre las vistas, entonces esas opiniones deben ser niños de un solo diseño que implementa el código para hacer cumplir esa restricción.
- Layoutkit no es FlexBox, pero puede encontrar similitudes.
Instalación
LayoutKit se puede instalar con Cocoapods o Cartago.
Cocoapods
Agregue esto a su podspec:
Luego ejecute pod install .
Cartago
Agregue esto a su archivo de cartón:
github "linkedin/LayoutKit"
Luego ejecute carthage update .
Documentación
Ahora estás listo para comenzar a construir UI.