Sem atenção
Este projeto não é mais usado pelo LinkedIn e atualmente não é mantido.
O LayoutKit é uma biblioteca de layout de visualização rápida para iOS, macOS e TVOS.
Motivação
O LayoutKit criado no LinkedIn porque descobrimos que o layout automático não é executado o suficiente para hierarquias de exibição complicadas em visualizações roláveis. Para mais informações, leia a postagem do blog.
Benefícios
LayoutKit tem muitos benefícios ao usar o layout automático:
- Fast : LayoutKit é tão rápido quanto o código de layout manual e é significativamente mais rápido que o layout automático.
- Assíncrono : os layouts podem ser calculados em um encadeamento de segundo plano para que as interações do usuário não sejam interrompidas.
- Declarativo : Os layouts são declarados com estruturas de dados imutáveis. Isso facilita o desenvolvimento do código de layout, documentar, revisão de código, teste, depuração, perfil e manutenção.
- Cache : os resultados do layout são estruturas de dados imutáveis para que possam ser pré -computadas em segundo plano e em cache para aumentar o desempenho percebido pelo usuário.
O layoutKit também oferece benefícios que tornam o uso tão fácil quanto o layout automático:
- Uikit Friendly : o LayoutKit produz UIViews e também fornece um adaptador que facilita o uso do UIableView e UicollectionView.
- Internacionalização : o layoutKit ajusta automaticamente os quadros de visualização para idiomas da direita para a esquerda.
- Swift : o layoutKit pode ser usado em aplicações e playgrounds Swift.
- Testado e pronto para a produção : o layoutKit é coberto por testes de unidade e está sendo usado dentro das versões recentes dos aplicativos iOS de busca de emprego no LinkedIn e LinkedIn.
- São-Aberto : Não é uma caixa preta como o layout automático.
- Licença Apache (V2) : Seus advogados ficarão felizes por não haver travessuras de patentes.
Olá 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 ) 
Limitações
Descobrimos que o LayoutKit é uma ferramenta útil, mas você deve estar ciente do que não é.
- O layoutKit não é um sistema de layout baseado em restrições. Se você deseja expressar uma restrição entre as visões, essas visões precisam ser filhos de um único layout que implementa o código para aplicar essa restrição.
- O layoutKit não é o Flexbox, mas você pode encontrar semelhanças.
Instalação
O layoutkit pode ser instalado com cocoapods ou cartago.
Cocoapods
Adicione isso ao seu podspec:
Em seguida, execute pod install .
Cartago
Adicione isso ao seu arquivo Cart:
github "linkedin/LayoutKit"
Em seguida, execute carthage update .
Documentação
Agora você está pronto para começar a construir a interface do usuário.