Ungehelegt
Dieses Projekt wird nicht mehr von LinkedIn verwendet und ist derzeit nicht gehört.
Layoutkit ist eine schnelle Layout -Bibliothek für iOS, macOS und tvOS.
Motivation
LinkedIn hat Layoutkit erstellt, da wir festgestellt haben, dass das automatische Layout für komplizierte Ansichten hierarchien in scrollbaren Ansichten nicht ausgeglichen ist. Weitere Hintergrundinformationen finden Sie im Blog -Beitrag.
Vorteile
Layoutkit hat viele Vorteile gegenüber der Verwendung von Auto -Layout:
- Schnell : Layoutkit ist so schnell wie manueller Layoutcode und erheblich schneller als das Auto -Layout.
- Asynchron : Layouts können in einem Hintergrund -Thread berechnet werden, sodass Benutzerinteraktionen nicht unterbrochen werden.
- Deklarativ : Layouts werden mit unveränderlichen Datenstrukturen deklariert. Dies erleichtert den Layoutcode einfacher zu entwickeln, zu dokumentieren, zu bewerten, zu testen, zu testen, zu debuggen, zu profilieren und zu warten.
- Zwischengespeichert : Layoutergebnisse sind unveränderliche Datenstrukturen, sodass sie im Hintergrund vorberechnet werden und zwischengespeichert werden können, um die wahrgenommene Leistung der Benutzer zu erhöhen.
Layoutkit bietet auch Vorteile, die es als Auto -Layout so einfach zu bedienen können:
- UIKIT -Friendly : Layoutkit produziert UIViews und bietet auch einen Adapter, mit dem Sie mit UitableView und UICollectionView einfach verwendet werden können.
- Internationalisierung : Layoutkit passt automatisch Ansichtsrahmen für Rechte nach links an.
- Swift : Layoutkit kann in Swift -Anwendungen und Spielplätzen verwendet werden.
- Getestet und produktionsbereit : Layoutkit wird von Unit -Tests abgedeckt und wird in den neuesten Versionen der LinkedIn- und LinkedIn -Jobsuche iOS -Apps verwendet.
- Open-Source : Keine schwarze Box wie Auto-Layout.
- Apache -Lizenz (V2) : Ihre Anwälte werden sich freuen, dass es keine Patent -Spielereien gibt.
Hallo Welt
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 ) 
Einschränkungen
Wir haben festgestellt, dass Layoutkit ein nützliches Werkzeug ist, aber Sie sollten sich bewusst sein, was es nicht ist.
- Layoutkit ist kein Einschränkungsbasis -Layout -System. Wenn Sie eine Einschränkung zwischen den Ansichten zum Ausdruck bringen möchten, müssen diese Ansichten Kinder eines einzelnen Layouts sein, das Code implementiert, um diese Einschränkung durchzusetzen.
- Layoutkit ist keine Flexbox, aber Sie können Ähnlichkeiten finden.
Installation
Layoutkit kann mit Cocoapods oder Karthago installiert werden.
Cocoapods
Fügen Sie dies zu Ihrem Podspec hinzu:
Führen Sie dann pod install aus.
Karthago
Fügen Sie dies zu Ihrem Cartfile hinzu:
github "linkedin/LayoutKit"
Dann führen Sie carthage update durch.
Dokumentation
Jetzt sind Sie bereit, die Benutzeroberfläche zu bauen.