• Stars
    star
    389
  • Rank 110,500 (Top 3 %)
  • Language
    Swift
  • License
    MIT License
  • Created over 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐Ÿ“ Advanced compositional layouts for UICollectionView [iOS 13+].

compositional-layouts-kit Awesome

Platform Platform Language CustomLayouts API Last Commit NLOC Contributors Repo Size License

If you like the project, please give it a star โญ It will show the creator your appreciation and help others to discover the repo.

โœ๏ธ About

๐Ÿ“ This repository features a set of sophisticated compositional layouts for UICollectionView, complete with practical examples. Each layout is designed to adapt seamlessly to both portrait and landscape orientations, and is fully compatible with all iOS and iPadOS size classes.

๐Ÿ“š Contents

Please wait while the .gif files are loading (there are 12 files, that weight around 170Mb)...

๐Ÿ— Setup

There are no dependencies as well as any package managers involved. The project has more like a demo app setup e.g simply grab what you need for your needs. Each layout is wrapped into a separate UIViewController type for convenience (I could've create a separate layout factory and have just a single view controller, however, for the sake of simplicity I decided to make it possible to extract layouts with all the dependent code).

โœˆ๏ธ Usage

Simply grab a UIViewController type with a custom layout and adjust it for your needs. The layouts are in here.

๐Ÿ†˜ Tips

  1. Not all layouts may look cool in landscape orientations. In order to make them look cooler and take advantage of different aspect ratio of a screen, you need to create an alternative layout that is basically the copy of the portrait layout, but has different set of fractional width and height.
  2. If you want to have different layouts in portrait and landscape device orientations, you need to use either one of the following approaches:
    • Use viewWillTransition(to size: , with coordinator:) method (of UIViewController class) and setCollectionViewLayout(, animated: completion:) method of UICollectionView class to properly animate changes of layout when changing orientation.
    • More advanced and preffered approach is to implement a custom UICollectionViewTransitionLayout, which is (a quote from Apple's Docs):

    A special type of layout object that lets you implement behaviors when changing from one layout to another in your collection view.

โš ๏ธ Warning

The assets used in this project were taken from the Web. Do not use them for commercial purposes and proprietary projects. They are used just for demonstration only.

๐Ÿ‘จโ€๐Ÿ’ป Author

Astemir Eleev

๐Ÿ”– Licence

The project is available under MIT Licence

More Repositories

1

ios-learning-materials

๐Ÿ“š Curated list of articles, tutorials and repos that may help you dig a little bit deeper into iOS [and Apple Platforms].
Swift
1,976
star
2

uicollectionview-layouts-kit

๐Ÿ“Custom layouts for UICollectionView with examples [iOS 12+].
Swift
677
star
3

flappy-fly-bird

๐Ÿฆ Flappy Bird game reincarnation [GameplayKit, SpriteKit, iOS 12+].
Swift
331
star
4

swiftui-2048

๐ŸŽฒ Classic 2048 game [SwiftUI 3.0, iOS 15.0+, macOS 12.0+].
Swift
216
star
5

drawer-view

๐Ÿ“ค Custom UI component for iOS, replication of Apple's Apple Music player and Shortcutsโ€™ components view [Swift 5.0, iOS 12].
Swift
151
star
6

swift-design-patterns

๐Ÿš€ The ultimate collection of Software Design Patterns & Principles with examples [36/79 Patterns].
Swift
123
star
7

expandable-collection-view-kit

๐Ÿ—‚ Expandable, hierarchical, flexible, declarative UICollectionView with diffable data sources & SwiftUI-like tree items builder [Swift 5.1, iOS & iPadOS 13].
Swift
115
star
8

spritekit-water-node

๐ŸŒŠ Custom SpriteKit node that allows to simulate 2D water with respect to physics. The app demonstrates Flocking behaviour using GameplayKit, key-frame animation and custom fragment shader chaining (GLSL) ๐Ÿคฏ
Swift
93
star
9

ios-spritekit-shader-sandbox

๐Ÿ‘พ Collection of custom effects for SpriteKit implemented using GLSL/Metal shaders.
Swift
74
star
10

extensions-kit

๐Ÿ“ฆ Collection of Swift+Apple Frameworks extensions for speeding up software development [iOS & iPadOS].
Swift
71
star
11

tic-tac-toe

๐Ÿ•น iOS game - classic Tic Tac Toe with AI and state machines [Swift + SpriteKit + GameplayKit].
Swift
62
star
12

ios-scenekit-shadertoy

๐ŸŽฎ Easily add, changed and combine Vertex and Fragment shaders for SceneKit objects. Perfect tool for prototyping shaders in the context of SceneKit framework.
Swift
52
star
13

swift-algorithms-data-structs

๐Ÿ“’ Algorithms and Data Structures in Swift. The used approach attempts to fully utilize the Swift Standard Library and Protocol-Oriented paradigm.
Swift
49
star
14

soft-skills

๐ŸฆList of Soft Skills for software engineers/developers.
Markdown
39
star
15

grid-compositional-layout

๐Ÿงฒ Grid Compositional Layout is a SwiftUI 2.0 view that lays out the supplied views in a grid. Easily configurable and lazily retained [Swift 5.3, iOS 14.0+, iPadOS 14.0+, macOS 11.0(10.16)+]
Swift
39
star
16

skcomponents-kit

โš—๏ธ Collection of SpriteKit components for intermediate/advanced use cases.
Swift
36
star
17

sprite-liquids-ios-app

๐Ÿ’งDemonstrates a practical approach for liquid visualization using SpriteKit and CoreImage frameworks.
Objective-C
22
star
18

constraints-kit

๐Ÿ— Declarative, Chainable & Lightweight Auto Layout constraints framework for iOS.
Swift
21
star
19

hungry-wormy

๐Ÿ› iOS & macOS game - classic snake game [Swift + SpriteKit].
Swift
19
star
20

physics-vehicle

๐Ÿš— Physics-based 2D car behaviour and suspension demo [Swift, SpriteKit, iOS, macOS].
Swift
19
star
21

concurrency-kit

๐Ÿš„ Concurrency abstractions framework for Apple Platforms [Task, Atomic, Lock, Operation, etc.].
Swift
19
star
22

15-puzzle

๐Ÿงฉ iOS game - classic 15 Puzzle game [Swift + SpriteKit].
Swift
17
star
23

column-text-view-ui

๐Ÿ“„ Column Text View is an adaptive UI component that renders text in columns, horizontally [iOS 12, UIKit, TextKit, SwiftUI].
Swift
11
star
24

voice-recognition-ios-demo

๐ŸŽค Small app for voice recognition feature introduced in iOS 10.0 SDK.
Swift
9
star
25

metal-path-ios-app

๐Ÿค– Sandbox that holds various Metal API related scenes, from very fundamental to advanced developments
Swift
9
star
26

swift-functional

๐Ÿง  Articles and notes about functional programming in Swift.
Swift
7
star
27

message-view-ui

โœ‰๏ธ Easy to use HUD component for iOS [activity report, success or warning messages, etc.]
Swift
6
star
28

safari-tabs-extracter

๐Ÿ“— A script that extracts all tabs (as URLs) from Safari and saves them in a Markdown file [AppleScript]
AppleScript
6
star
29

jToolkit

โ˜•๏ธ Collection of various utilities, classes and shaders for Java + OpenGL + GLSL development.
Java
5
star
30

MTLTextureView

๐Ÿ–ผ๏ธ Render images as Metal textures.
Swift
4
star
31

device-kit

๐Ÿ“ฑGet extended information about an iOS/iPadOS device.
Swift
4
star
32

eleev.github.io

๐Ÿ’ผ Personal web page.
HTML
3
star
33

metal-particle-system-app

Particle system written on Metal shading language and Metal framework. ๐ŸŽŠ๐ŸŽ‰
Swift
2
star
34

jVirus

1
star