The 8th Dnepropetrovsk iOS Practice Leaders Community Meet-up, which took place on Thursday, February 5th, was dedicated to collection view layouts.
Anatoliy Tukhtarov, iOS developer with 2+ years of experience made a presentation about:
— what UICollectionViewLayout is;
— when to create your own layout;
— creating your own layout from scratch;
— self-sizing collection view items;
— adding gestures to collection view (drag and drop, pinch to zoom, autoscroll, etc.)
During the presentation we created waterfall layout step by step and discuss appearing issues.
The presentation will be interesting for all developers who want to expand their knowledge about UICollectionView.
https://yadi.sk/d/eeEdMTiueTW9s — keynote
https://yadi.sk/i/DVDq3O3leTW8n — pdf
https://yadi.sk/i/t6-nw3uMeTW7D — pptx
ADF Mobile : Best Practices for Developing Applications with Oracle ADF MobileLuc Bors
Presentation on ADF Mobile for KScope13. Best Practices for Developing Applications with Oracle ADF Mobile, based on the differences between vanilla ADF and ADF Mobile
Storyboarding is an exciting new feature in iOS 5 that will save you a lot of time building user interfaces for your apps. With a storyboard you have a better conceptual overview of all the screens in your app and the connections between them.
Reactive state management with Jetpack ComponentsGabor Varadi
This talk explains what problems exist in the context of Android application development, how Jetpack components such as SavedStateHandle help handle that, and how we can combine observable values to expose our state, to be observed only when it is needed.
ADF Mobile : Best Practices for Developing Applications with Oracle ADF MobileLuc Bors
Presentation on ADF Mobile for KScope13. Best Practices for Developing Applications with Oracle ADF Mobile, based on the differences between vanilla ADF and ADF Mobile
Storyboarding is an exciting new feature in iOS 5 that will save you a lot of time building user interfaces for your apps. With a storyboard you have a better conceptual overview of all the screens in your app and the connections between them.
Reactive state management with Jetpack ComponentsGabor Varadi
This talk explains what problems exist in the context of Android application development, how Jetpack components such as SavedStateHandle help handle that, and how we can combine observable values to expose our state, to be observed only when it is needed.
Developing a Tabview in iOS app using Swift as a programming language. Swift is now getting adopted by developer community. Have a look on our presentation ..
Declaratvie UI is a huge concept, but we can always start small. This is a very brief introduction to declarative UI pattern on iOS, without having SwiftUI.
CATiled Layer - Melbourne Cocoheads February 2012Jesse Collis
A talk on CATiledLayer on iOS.
Blog Post: http://blog.jcmultimedia.com.au/2012/02/jctiledscrollview.html
Demo Code: https://github.com/jessedc/JCTiledScrollView
Presenting on CATiledLayer at Melbourne Cocoaheds February 2012.
JCMultimedia blog post: http://blog.jcmultimedia.com.au/2012/02/jctiledscrollview.html
Demo code is available here: https://github.com/jessedc/JCTiledScrollView
Creating Dynamic Charts With JFreeChartDavid Keener
This presentation describes how to use JFreeChart, a Java open source charting library, to dynamically create charts and seamlessly embed them within web pages.
"Through the three circles of the it hell" by Roman LiashenkoCiklum Ukraine
About speaker:
Roman Liashenko, project manager, team lead, developer. 10 years of experience in IT.
About presentation:
“Have you ever heard about wrangles between developers and product owners, product owners and project managers, project managers and developers? I have! And very often such situation looked like a deaf person is arguing with a blindman. Misunderstandings between different project roles are pretty similar to the generation gap because, in most cases, they are based on different mindsets. I came to this conclusion after years working in IT, by playing different project roles and watching changes of my ideology. During this event we will go through the main peculiar mindset properties of each project role. It will help us to understand what does it mean to be PM/TL/Dev/PO. I really believe that even small piece of such understanding will help participants to understand their colleagues and improve their communication.”
Developing a Tabview in iOS app using Swift as a programming language. Swift is now getting adopted by developer community. Have a look on our presentation ..
Declaratvie UI is a huge concept, but we can always start small. This is a very brief introduction to declarative UI pattern on iOS, without having SwiftUI.
CATiled Layer - Melbourne Cocoheads February 2012Jesse Collis
A talk on CATiledLayer on iOS.
Blog Post: http://blog.jcmultimedia.com.au/2012/02/jctiledscrollview.html
Demo Code: https://github.com/jessedc/JCTiledScrollView
Presenting on CATiledLayer at Melbourne Cocoaheds February 2012.
JCMultimedia blog post: http://blog.jcmultimedia.com.au/2012/02/jctiledscrollview.html
Demo code is available here: https://github.com/jessedc/JCTiledScrollView
Creating Dynamic Charts With JFreeChartDavid Keener
This presentation describes how to use JFreeChart, a Java open source charting library, to dynamically create charts and seamlessly embed them within web pages.
"Through the three circles of the it hell" by Roman LiashenkoCiklum Ukraine
About speaker:
Roman Liashenko, project manager, team lead, developer. 10 years of experience in IT.
About presentation:
“Have you ever heard about wrangles between developers and product owners, product owners and project managers, project managers and developers? I have! And very often such situation looked like a deaf person is arguing with a blindman. Misunderstandings between different project roles are pretty similar to the generation gap because, in most cases, they are based on different mindsets. I came to this conclusion after years working in IT, by playing different project roles and watching changes of my ideology. During this event we will go through the main peculiar mindset properties of each project role. It will help us to understand what does it mean to be PM/TL/Dev/PO. I really believe that even small piece of such understanding will help participants to understand their colleagues and improve their communication.”
Alex Pazhyn, who has more than 7 years of experience with UI design, wtells about «Designing in the Material Design Style».
1. What the Material Design is?
2. Work with color palette, typography and custom branding
3. Guidelines and slicing
4. Frameworks for MD Style
5. Solving the issues and Best cases.
Presentation will be interesting for UX/UI designers and Android developers.
Introduction to amazon web services for developersCiklum Ukraine
Introduction to Amazon Web Services for developers
About presenter
Roman Gomolko with 11 years of experience in development including 4 years of day-to-day work with Amazon Web Services.
Disclaimer
Cloud-hosting is buzz-word for a while and in my talk I would like to give an introduction to Amazon Web Services (AWS).
We will talk about basic building blocks of AWS like EC2, ELB, ASG, S3, CloudFront, RDS, IAM, VPC and other scary or funny abbreviations.
Then we will discuss how to migrate existing applications to AWS. This topic includes:
• how to design infrastructure and services to use when migrating
• how to choose proper instance types
• how to estimate infrastructure cost
• how it will affect performance of application migrated
Then we will make an overview of services provided by AWS and possible apply in your current of future applications:
• SQS
• DynamoDB
• Kinesis
• CloudSearch
• CodeDeploy
• CloudFormation
And if we survive we will talk a little how to design Cloud applications. That’s mainly about general principles.
My talk mostly targeted towards decision makers and decisions pushers of small and medium size companies which are consider “going cloud” or already moving into this direction. Everyone interested in gaining knowledge in these areas are welcomed as well.
We will spend around 2–3 hours together and you will be able to pitch-in any questions until we totally goes away from original plan.
Alexey Chulochnikov, mobile developer with 3+ years of experience, about:
• Watch App architecture overview
• Apple watch interface overview (Regular Apple Watch App, Glances, Notifications)
• Initial Impressions about WatchKit
• How to work with watchkit (pass data between controllers, get data from parent app, etc.)
Maxim Koshtenko, an iOS developer with 5+ years of experience tells about:
– what test-driven development is
– advantages of TDD
– how to use test-driven development for iOS projects
– most common problems and solutions
– how to start working with TDD on an existing project
Experienced UX Designer Vladyslav Miasnikov shares his vision for 2015:
– Fashion trends in the UI industry
– The end of Web design era — anti-advice about survival
– Five qualities of the ideal UX designer
– 10 inspiring drives in UX
Ivan Romanenko, a fan of C++ and Boost, specializing on low-level development in such areas: forensics, security abd high-load systems, tells about developing high-load systems using C++.
– Processing more than 10 000 request per second
– Architecture for quick experiments
– Manual instrumentation and boost.statistics
– Search for own performance metrics
– Fight against losses on allocations and synchronization
- why we need auto layout;
- what UITraitCollection is;
- what’s new in interface builder Xcode;
- about debugging view without running;
- how to debug custom view.
Recently Apple has introduced a new language - Swift. Many of us have already had an opportunity to work with it. Without any doubt Swift will be more popular than Objective-C. Unfortunately it is useful for iOS only. Do we have a viable alternative for Android? Yes, and it is called Groovy!
During this meet-up Olexandr Leuschenko, cross-platform mobile developer:
- tells what Groovy is;
- shows the differences between Java, Swift and Groovy code;
- talks about development with Groovy for Android in general.
The presentation will be interesting for all Android developers.
The 4th Dnepropetrovsk iOS Practice Leaders Community Meet-Up, which took place onThursday, September 25.
Maxim Koshtenko, an iOS developer with 4+ years of experience in the area, held a presentation in which he told:
- about the most widespread problems which appear while writing tests and how to solve them;
- how to cover controllers with tests correctly and what should be visible in interface;
- why tests do not work for block-based and asynchronous code and how we can fix this;
- how to write tests for Core Data models;
- many other useful and interesting tips and tricks.
The presentation will be interesting for all iOS developers.
Android Material Design. New age for amazing apps.
Tips and tricks.
The 3rd Dnepropetrovsk Android Practice Leaders Community Meet-Up, that took place ob Sept 18, 2014.
Ilya Lisovoy, a true fan of mobile development and Android developer in particular, tells about:
- new android philosophy in material design
- beauty volume and shadows of UI elements
- new android views : RecyclerView, CardView, Palette
- animations and activity transition effects
The presentation will be interesting for all Android developers.
KANBAN DEVELOPMENT
or get the agilest from agile
Oleh Dovhai, Java developer, ex QA engineer - about Kanban development process and how to use it in your project .
We will learn:
· What Kanban is: origin, principles, practice
· Kanban vs Scrum: compare tools for understanding, not judgment
· There is no ideal tool: experiment, combined and again experiment
The First Ciklum DP Android Practice Leaders Community Meet-Up.
By Ilya Lisovoy, Android developer with 2+ years of experience, who loves amazing apps with innovations and best UX practices.
Mobile prototypes for Android and iOS,- the difference between them, and why is it bad to make universal design for all platforms; adapting the design of one mobile platform to another; simple tips for designers from developers.
The First Ciklum DP Android Practice Leaders Community Meet-Up.
Principles and methods of UX design by Alina Bidnenko, Android developer with 3+ years of experience, who considers that app can’t survive without high quality design of UI/UX.
The 2nd Dnepropetrovsk iOS Practice Leaders Community Meet-Up.
MVC by Dmitriy Sai, iOS developer with 3+ years of experience.
The following presentation covers the issues of the practical use of Model View Controller on iOS, focusing on the principles of roles’ division, clear code, simplification of refactoring and unit-testing.
iOS Practice Leaders Community Meet-up.
“Unit Testing in iOS” by Maxim Koshtenko
- why we need tests and what their use in applications’ developing on a project is;
- how one should and should not test source code;
- review of some of the most popular tools which make test-writing easier;
- how to switch to unit-testing on a project which already exists.
Михаил Попчук "Cкрытые резервы команд или 1+1=3"Ciklum Ukraine
Бывает ситуации, когда тебе везет с подбором ребят в команду, везет с заказчиком и поставлен идеальный процесс. Что еще нужно? А команда не показывает результат.
В свою очередь, команда собранная из посредственных ребят с новичком тим лидом перевыполняет план в два раза!
Как добиться синергии в команде, мотивировать коллег и вызывать удивление заказчика на примере реальной команды в Scrum процессе.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
6. UICollectionViewLayout
A kind of data source to provide visual information,
not data
Responsible for locations and sizes of all the cells,
supplementary and decoration views
Does not apply data to views
10. Documents application
• Landscape and portrait items A4 scale
• Multiple waterfall columns for iPad and iPhone
• Number of columns must be changed on device
rotation
• Drag and drop items like on home screen
• Autoscroll while dragging
v 0.1
Source code: https://github.com/swordfishyou/documents-app
11. Designing layout
• Number of columns in section
• Column width
• Cell size
• Cell frame
• Intercolumn and interline
spacings, etc.
• Cache all the possible values
layout delegate
data source
layout
13. Documents application
• Landscape and portrait items A4 scale
• Multiple waterfall columns for iPad and iPhone
• Number of columns must be changed on device
rotation
• Drag and drop items like on home screen
• Autoscroll while dragging
v 0.1
15. Documents application
• Landscape and portrait items A4 scale
• Multiple waterfall columns for iPad and iPhone
• Number of columns must be changed on device
rotation
• Drag and drop items like on home screen
• Autoscroll while dragging
v 0.1
16. Layout metrics
• Items’ sizes and attributes by index path
• Column metrics by section
• index
• section
• size
• items’ indexes in column
17. Cell frame
- (CGRect)itemFrameAtIndexPath:(NSIndexPath *)indexPath {
CGRect frame;
frame.size = ...; /// use cached value
CGFloat topOffset = 0.0;
for (NSInteger section = 0; section < indexPath.section; ++section) {
/// Shift vertically by sections above
}
NSInteger numberOfColumnsInSection = ...;
NSInteger itemColumn = indexPath.item % numberOfColumnsInSection;
FLSColumnLayoutMetrics *columnMetrics = ...;
for (NSInteger item = 0; item < indexPath.item; ++item) {
if ([columnMetrics.itemIndexes containsIndex:item]) {
/// Shift vertically by items in column
}
}
frame.origin.y = topOffset;
CGFloat leftOffset = itemColumn * self.minimumItercolumnSpacing;
for (NSInteger column = 0; column < itemColumn; ++column) {
/// Shift horizontally by columns left
}
/// Centre cell in item’s column
return frame;
}
18. Documents application
• Landscape and portrait items A4 scale
• Multiple waterfall columns for iPad and iPhone
• Number of columns must be changed on device
rotation
• Drag and drop items like on home screen
• Autoscroll while dragging
v 0.1
20. Documents application
• Landscape and portrait items A4 scale
• Multiple waterfall columns for iPad and iPhone
• Number of columns must be changed on device
rotation
• Drag and drop items like on home screen
• Autoscroll while dragging
v 0.1
21. Drag and drop
• Consider to use gestures controller or state
machine
• Layout is responsible for changing frame of a
dragging item
• Data source is responsible for handling motion
actions (like reorder array, etc.)
General ideas
22. Drag and drop
- (void)beginDraggingItemAtIndexPath:(NSIndexPath *)indexPath {
/// Snapshot cell and index path
self.draggingIndexPath = indexPath;
UICollectionViewCell *cell = ...;
UIView *snapshot = [cell snapshotViewAfterScreenUpdates:NO];
self.draggingView = snapshot;
[self.collectionView addSubview:self.draggingView];
/// Calculate drag bounds if needed
[UIView animateWithDuration:animationDuration
animations:^{
/// Indicate dragging item with animation
} completion:^(BOOL finished) {
/// Invalidate layout
}];
}
Begin dragging
23. Drag and drop
- (void)handlePanGesture:(UIPanGestureRecognizer *)gesture {
switch (gesture.state) {
case UIGestureRecognizerStateChanged:{
[self scheduleDraggingHoldTimer];
/// Calculate new centre of the dragging view
CGPoint translation = [gesture translationInView:self.collectionView];
CGPoint diff = ...;
self.lastTranslation = translation;
CGPoint center = ...;
[self constrainPointToDragBounds:¢er];
self.draggingView.center = center;
/// Trigger autoscroll
break;
}
case UIGestureRecognizerStateEnded:
/// Invalidate timers
break;
}
}
Handle pan gesture
24. Drag and drop
- (void)handleDraggindHold:(NSTimer *)timer {
FLSDataSource *dataSource = self.collectionView.dataSource;
NSIndexPath *newIndexPath = [self.collectionView
indexPathForItemAtPoint:self.draggingView.center];
if (newIndexPath != nil &&
![newIndexPath isEqual:self.draggingIndexPath]) {
BOOL canMove = ...; /// Use data source
if (canMove) {
self.draggingIndexPath = newIndexPath;
[dataSource collectionView:self.collectionView
moveItemAtIndexPath:self.lastSourceIndexPath
toIndexPath:newIndexPath isHeld:YES];
self.lastSourceIndexPath = newIndexPath;
/// Invalidate layout
}
}
}
Handle hold
25. Documents application
• Landscape and portrait items A4 scale
• Multiple waterfall columns for iPad and iPhone
• Number of columns must be changed on device
rotation
• Drag and drop items like on home screen
• Autoscroll while dragging
v 0.1
26. Autoscroll
• Consider to use CADisplayLink instead of
NSTimer
• Invalidate dragging hold timer while autoscrolling
• Calculate autoscroll direction and velocity while
dragging
• Calculate dragging view’s frame and collection
view’s contentOffset
28. Autoscroll
CGFloat distance = rintf(self.autosctollVelocity / 60.0);
switch (self.autoscrollDirection) {
/// Visually stop autoscroll if bottom of the content was
reached
case FLSAutoscrollDirectionDown: {
break;
}
/// Visually stop autoscroll if top of the content was reached
default:
break;
}
CGPoint translation = CGPointMake(0, distance);
CGPoint newCenter = ...;
[self constrainPointToDragBounds:&newCenter];
self.draggingView.center = newCenter;
self.collectionView.contentOffset = ...;
Handle autoscroll
29. Recap
• Cache all the possible values: calculate once and
reuse
• Auto layout is your friend
• Invalidate layout rationally
• Measure, measure and… measure
30. More information
WWDC 2014 — Session 232
Advanced User Interfaces with Collection View
Source code: https://developer.apple.com/wwdc/resources/sample-code/
WWDC 2014 — Session 226
What's New in Table and Collection Views
Collection View Programming Guide for iOS
Creating Custom Layout
Yalantis
Excel Page Layout for Collection View
http://yalantis.com/blog/data-grid-with-freeze-columns-play-by-your-rules/
WWDC 2012 — Session 219
Advanced Collection Views and Building Custom Layout
7th iOS Practice Leaders
Introduction to Auto Layout
Presentation