Commit graph

25 commits

Author SHA1 Message Date
Ryan Nystrom
80ad941369 Revert D4521797: [IGListKit][PR] Vertical UICollectionViewLayout supporting inline sections
Summary: This reverts commit 20b36ae573d38ca3125a6f3d5faec181c290ab94

Differential Revision: D4521797

fbshipit-source-id: 447de6cf2b30de9c2109dffb266326aceceec7fc
2017-02-10 11:33:07 -08:00
Ryan Nystrom
727833409f Vertical UICollectionViewLayout supporting inline sections
Summary:
Working on porting our collection view layout to IGListKit. I'm doing this because its a solid layout, and we just finished preparing it to work with inline sections. It is designed to work in tandem with IGListKit, so we're adding it.

This is still a WIP as I add more tests, but I'd love as much feedback as possible.

Aside from the glob of header documentation, this has the following features:

- Infinite sections that each have infinite items. Sections and items can fall inline. When they break the width of their container they will fall on the next row.
- Sections can have their own insets, line spacing, and interitem spacing.
- Sticky header support! When you use headers, it will always newline the section.
- Maximum width with a border decoration view
  - Use this to pinch in your content on larger devices

Followup to #423

- [ ] ~~Move decoration view support to delegate~~ removed
- [x] Unit test changing [top y sticky inset](https://coveralls.io/builds/9977284/source?filen
Closes https://github.com/Instagram/IGListKit/pull/450

Reviewed By: jessesquires

Differential Revision: D4521797

Pulled By: rnystrom

fbshipit-source-id: 20b36ae573d38ca3125a6f3d5faec181c290ab94
2017-02-10 08:30:33 -08:00
Jesse Squires
279f348a4a Added object to single section selection delegate callback
Summary:
- Updated selectionDelegate to pass through the model object
- Changelog entry under 3.0.0 as is breaking change

Try saying single section selection 10 times quick
Dabbing my left toe into some ObjC, so apologies if I violate years of rules

- [ ] Update documentation internally

Closes #396

- [x] All tests pass. Demo project builds and runs.
- [x] I added tests, an experiment, or detailed why my change isn't tested.
- [x] I added an entry to the `CHANGELOG.md` for any breaking changes, enhancements, or bug fixes.
- [x] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/master/.github/CONTRIBUTING.md)
Closes https://github.com/Instagram/IGListKit/pull/397

Differential Revision: D4406213

Pulled By: rnystrom

fbshipit-source-id: ba468fa49e75823796a47da6ed7f0e8957db3d75
2017-01-11 15:14:01 -08:00
Jesse Squires
c19379eeda Release 2.1.0 prep
Summary:
Prepping for `2.1.0`

- [x] Bump version numbers
- [x] Rebase this branch after remaining PRs are closed
- [ ] Run `pod install` (**must be done internally**)
- [x] Re-gen docs
Closes https://github.com/Instagram/IGListKit/pull/380

Reviewed By: rnystrom

Differential Revision: D4381222

Pulled By: jessesquires

fbshipit-source-id: 04646168d3c84d0dd2c08f0a357836b9326f8963
2017-01-04 10:14:37 -08:00
heshamsalman
0de9632c0d Fixes search in macOS example, close #371
Summary:
Changed the criteria for starting search in the OS X Example. Closes https://github.com/Instagram/IGListKit/issues/371

Doesn't look like there are tests for the example app. Please ping me if you'd like me to add some. Also, please ping me if you'd like me to add this change to the changelog -- I'm assuming bug fixes to sample apps don't get included there.

- [x] All tests pass. Demo project builds and runs.
- [x] I added tests, an experiment, or detailed why my change isn't tested.
- [x] I added an entry to the `CHANGELOG.md` for any breaking changes, enhancements, or bug fixes.
- [x] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/master/.github/CONTRIBUTING.md)
Closes https://github.com/Instagram/IGListKit/pull/377

Differential Revision: D4374006

Pulled By: jessesquires

fbshipit-source-id: 6e20f61aece769240aa63c8949d3c06a0ecd26c8
2016-12-29 14:44:00 -08:00
Sherlock
a748e6f6c7 Changed minimum macOS deployment target to 10.10
Summary:
Worth noting that while we support 10.8 and newer, Swift support is only 10.9 and newer. There were only a few more errors for 10.9 deployment target, but I'm not familiar with how it all works.

Using an `available` to disable row actions for users on 10.10 (only available for 10.11 and newer).
Closes https://github.com/Instagram/IGListKit/pull/374

Differential Revision: D4372977

Pulled By: jessesquires

fbshipit-source-id: 19f4b50c8eb4aa92f80241d69c44a367e854f5e8
2016-12-29 11:13:57 -08:00
James Sherlock
5cd771b546 Added Subspec for Diffing
Summary:
So the main Podspec file now has two Subspecs, `Diffing` and for lack of better name `Default`. `Diffing` is purely the files within the common directories (used for Diffing, if in the future we support MacOS NSCollectionView then this may need changing). `Default` depends on `Diffing` but also adds all the non-common files.

To use it via CocoaPods, nothing changes. You `import IGListKit` and you will only have access to the files in the pod you use. (So if you use `IGListKit/Diffing` in your Podfile, then you will only get access to the diffing files). If you do a manual installation, or I assume via Carthage, then you will need to import the correct header file (either `IGListDiffKit.h` or `IGListKit.h` depending on what you want).

Turns out CocoaPods creates it's own umbrella header (unless you tell it otherwise) meaning our ones are unused by it.

Just to confirm `IGListKit` in your Podfile will give you everything, only if you add `/Diffing` will you "opt-out" o
Closes https://github.com/Instagram/IGListKit/pull/368

Differential Revision: D4367438

Pulled By: jessesquires

fbshipit-source-id: 272318ca551e7e8c4177ca3ca501fde23bd9705a
2016-12-27 12:44:27 -08:00
Sherlock
19d4f9d1f7 Added compatibility header
Summary:
- Added IGListCompatibility.h file, and imported it in the files where we need the target check.
- Ordered the project by type

In "IGListKit.h" we still have the conditional check for `#if TARGET_OS_EMBEDDED || TARGET_OS_SIMULATOR` - Did we want to make a macro or something for this check?

This is the most Obj-C I've ever done... just felt that was a worthy comment.

Closes #364

- [x] All tests pass. Demo project builds and runs.
- [x] I added tests, an experiment, or detailed why my change isn't tested.
- [x] I added an entry to the `CHANGELOG.md` for any breaking changes, enhancements, or bug fixes.
- [x] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/master/.github/CONTRIBUTING.md)
Closes https://github.com/Instagram/IGListKit/pull/369

Differential Revision: D4366344

Pulled By: jessesquires

fbshipit-source-id: f0a6168b8965ded22a641814797fbdec92ca1c36
2016-12-24 10:44:25 -08:00
Ryan Nystrom
1b70435993 Add stacked section controller demo
Summary:
Adding a pretty basic stacked demo. 3 different sections, each with 3 child section controllers that handle an `Int` data.

Requires #354 to be fully functional (working range).

Closes #134

- [x] All tests pass. Demo project builds and runs.
- [x] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/master/.github/CONTRIBUTING.md)
Closes https://github.com/Instagram/IGListKit/pull/355

Differential Revision: D4363859

Pulled By: jessesquires

fbshipit-source-id: 5dbc8e18388fed4930f189e3477ff57f0edf2d13
2016-12-22 14:29:08 -08:00
Jesse Squires
4e42712e5b fixup common files and podspec, #270
Summary:
- Add missing common files
- Fix podspec for common files
- Pod install all examples

Reviewed By: rnystrom

Differential Revision: D4350871

fbshipit-source-id: 708ebe6ce66caed75af5b2ac18920dcf45567d16
2016-12-19 21:44:13 -08:00
Ryan Nystrom
ad30e53507 Move macOS and diffing files to Common dir
Summary:
Moving files to `Common` dir so changes are more automated with Buck and easier to manage in the long run. Ran `pod install` on test and example targets. Updated buck file to include `Common` so diffing lib still works.

Part of #270

Reviewed By: jessesquires

Differential Revision: D4346722

fbshipit-source-id: 366d89f6dd571b158b5fccd542080c51517ed341
2016-12-19 12:29:24 -08:00
Guilherme Rambo
47fbb72fa6 macOS example app
Summary:
Related issue: #333

I've made a very simple macOS example app. It's just a list of names which can be searched, shuffled or deleted.

I think this is a good starting point for anyone who wants to use this on macOS projects :)

![iglistkitmac](https://cloud.githubusercontent.com/assets/67184/21238494/7245f242-c2ea-11e6-98ea-218a6150d14c.gif)
Closes https://github.com/Instagram/IGListKit/pull/337

Reviewed By: rnystrom

Differential Revision: D4345236

Pulled By: jessesquires

fbshipit-source-id: ce75372263d3f451e34f2c816c14ab6bc82116a7
2016-12-19 10:59:03 -08:00
Jesse Squires
9600c23d15 run pod install everywhere, gen docs.
Summary:
- Project fixes for macOS support, #270
- Podspec fixes for macOS, #270
- Project test target fixes
- Pod install all examples
- Re-gen docs

Differential Revision: D4327169

fbshipit-source-id: bbe7896f8f50aaf3b8da03d0c21a0fb6f775c7cd
2016-12-14 14:44:10 -08:00
Jesse Squires
69c3cc73e7 macOS support follow-up work, #270
Summary:
Progress on #270.

- Setup basic, empty example project
- Setup test target and add tests that work for macOS
- Update changelog
- Update travis-ci
Closes https://github.com/Instagram/IGListKit/pull/328

Differential Revision: D4325876

Pulled By: jessesquires

fbshipit-source-id: 342963ce5103d3980c697655e1f1a9b6f3f1c520
2016-12-13 23:14:07 -08:00
Jesse Squires
4c4fdec562 travis voodoo
Summary:
 magic 

We forgot the lamb's blood last time.

- run UI tests on ~~iOS 9, not iOS 10~~ iOS 10.1
- only pod lint once
- only build examples for major releases, not point releases. (new APIs are rarely introduced in point releases)
Closes https://github.com/Instagram/IGListKit/pull/296

Differential Revision: D4291789

Pulled By: rnystrom

fbshipit-source-id: fcfd84be4e914fbc9d0a723315ae6d3ff7582e70
2016-12-07 06:29:05 -08:00
Jesse Squires
b994a40bfd project organization, 'sort by name'
Summary: Closes https://github.com/Instagram/IGListKit/pull/271

Differential Revision: D4259848

Pulled By: jessesquires

fbshipit-source-id: 4a7a1159bbb335b88243e4fbc7bf62c54ce7b6dc
2016-12-01 11:59:10 -08:00
Daniel Rosado
1ca2ac9cd5 Add UI Testing to Examples-iOS app
Summary:
Add basic UI Testing to Examples-iOS app.
It doesn't cover all the examples yet, but Xcode is reporting ~82% of coverage.

Updated travis.yml to run the UI Tests for only one of the matrix jobs - "OS=10.0,name=iPhone 6s", to try to keep the build times acceptable. Last job took ~3 min for the UI Testing section (being the whole build usually around 40 min).

Was feeling like playing a bit with UI Testing and took the chance to use it here, since rnystrom [showed interest in having it](https://github.com/Instagram/IGListKit/pull/251#issuecomment-262375087).

- [x] All tests pass. Demo project builds and runs.
- [x] I added tests, an experiment, or detailed why my change isn't tested.
- [x] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/master/.github/CONTRIBUTING.md)
Closes https://github.com/Instagram/IGListKit/pull/268

Differential Revision: D4259177

Pulled By: jessesquires

fbshipit-source-id: 77fdaf8588e090e4b13836a127d9f6d838248163
2016-12-01 10:44:01 -08:00
Jesse Squires
94a764b5d6 add example setup script. run pod install.
Summary:
- Add script for example setup
- Run pod install and check-in changes

Reviewed By: dshahidehpour

Differential Revision: D4250015

fbshipit-source-id: 51e7342d698bc9874bbbcfb8e784fe62e82d1ac6
2016-11-30 06:44:02 -08:00
Shukhrat Tursunov
67eaf0e999 Focus in tvOS app
Summary:
fixed #261
Closes https://github.com/Instagram/IGListKit/pull/262

Differential Revision: D4235651

Pulled By: jessesquires

fbshipit-source-id: 9777927d2c1c89ad838197fc10db81a069bbf197
2016-11-27 16:59:00 -08:00
Daniel Rosado
90cf9d5dfb Fix crash in Examples-iOS app when tapping "Mixed Data"
Summary:
Fix crash in Examples-iOS app when tapping "Mixed Data"

Make GridItem conform to IGListDiffable now that NSObject+IGListDiffable category has been removed.

- [x] All tests pass. Demo project builds and runs.
- [ ] I added tests, an experiment, or detailed why my change isn't tested.
- [x] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/master/.github/CONTRIBUTING.md)
Closes https://github.com/Instagram/IGListKit/pull/251

Differential Revision: D4224337

Pulled By: jessesquires

fbshipit-source-id: 16a437c4e5e45185481b4262ea7770f4a8559618
2016-11-22 17:14:00 -08:00
Ryan Nystrom
e1d5104255 Fix TV example
Summary:
TV example build was failing (badge red). Fixed w/ `pod install`.

- [x] All tests pass. Demo project builds and runs.
- [x] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/master/.github/CONTRIBUTING.md)
Closes https://github.com/Instagram/IGListKit/pull/250

Differential Revision: D4220400

Pulled By: rnystrom

fbshipit-source-id: 8c56c8227d37fa88baeebc138b7205dc7ecb79c1
2016-11-22 09:14:03 -08:00
Ryan Nystrom
316fbe2b8b Remove NSObject+IGListDiffable category
Summary: Removing the category entirely (recreated for unit tests and examples). Went through and updated all of Instagram so we don't rely on the category and found a few models that needed cleaning up.

Reviewed By: jessesquires

Differential Revision: D4206552

fbshipit-source-id: ee8147e8872ea19f6c8bd8072df61eed5bffb6f3
2016-11-21 16:59:00 -08:00
Bofei Zhu
1d3e58b9fd Create a grid layout for IGList
Summary:
Rebase from #140:

Create a flow layout for IGList that does not newline sections. Closes #3

- [x] Minimum inter-item spacing
- [x] Minimum line spacing
- [x] Constant item size with constant layout time
- [x] Update layout on insert/delete/move
- [x] Unit Test
Closes https://github.com/Instagram/IGListKit/pull/225

Differential Revision: D4211469

Pulled By: rnystrom

fbshipit-source-id: f4710dbf195701098ac50f94b6b2aa8c801b2a83
2016-11-21 13:29:04 -08:00
Antonio081014
cb8e0aba4a Minor fix for example.
Summary:
`SingleSectionStoryboardViewController` class should be used rather using `SingleSectionViewController` class twice in `DemosViewController` class

- [x] All tests pass. Demo project builds and runs.
- [x] I added tests, an experiment, or detailed why my change isn't tested.
- [x] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/master/CONTRIBUTING.md)
Closes https://github.com/Instagram/IGListKit/pull/220

Differential Revision: D4204505

Pulled By: rnystrom

fbshipit-source-id: d70922d57943eab5275af1b939176307c8c3cbeb
2016-11-18 06:58:54 -08:00
Jesse Squires
879260b417 internal diff for PR #209
Summary: https://github.com/Instagram/IGListKit/pull/209

Reviewed By: rnystrom

Differential Revision: D4190633

fbshipit-source-id: 9d382b9ba3f3d20c8b9c48d900650ec354bc9728
2016-11-16 12:44:19 -08:00