Comments (8)
Also, new name: BetweenKit
from between-kit.
We need to find a better way to render cloned dragging views as well. At the moment its clear that NSKeyArchiver causes hard crashes when archiving / unarchiving some attributes of views. There is also the issue of users having to manually integrate archiving / unarchiving for custom views. Find a better solution!
from between-kit.
The deadline for BetweenKit is the new year.
from between-kit.
A current limitation is that 'delete' areas can't sit on top of registered collections. That is, a deletion occurs if and only if a valid drag is stopped out side of all collections. We may want a deletion area to 'hover' over collections which currently is not possible.
from between-kit.
##Plan revision
###Phase 1
- Migrate the drag-n-drop routing logic into its own, isolated class DONE
- Allow for the gesture listener to be injected to this class DONE
- Create a manager-type class to register draggable components against and coordinate how the gesture recogniser is configured and injected NOT DONE
- Should fix #5, #6, #14 CLOSED
- Should allow for #11 CLOSED
- Should pave the way for #7 CLOSED, #16 IN PROGRESS, #22 CLOSED
Phase 2
- Utility
I3Collection
implementations:UICollectionView
UIView
with subviews
- Move to using
NSIndexPath
s instead ofCGPoint
s in data source methods to reduce boilerplate - More functional example test cases:
- Migrate all of the examples from v1
- Add new examples covering: > 3 collections, mixtures of different types of collections, complex
drag data source configuration, custom rendering - This should address #16
- Address limitation with deletion areas only available outside of all collections
- Start exploring core data integration and experiment with persistent helpers
- Asynchronous drag delegation? As a user, I may want to retrieve the
I3DragDataSource
configuration asynchronously, maybe via a network request. For example, maybe I have an online TODO list app that needs to fetch an access control list from the server to determine whether I can rearrange 2 TODOs..- How can we offer an asynchronous delegate API via
I3DragDataSource
- How would we approach managing drag coordination during the asych call? Would we lock the UI? Would we be less coarse about it and just lock the items we're handling at that time?
- How can we offer an asynchronous delegate API via
Phase 3
editing
andmoving
integration and tests- Review the plan
- Also look at releasing a new version of Rainbit that utilises some of this richer functionality
- Travis / Jenkins
Also from now on, I'm going to create separate issues for each individual items on the list rather than just referencing #28.. All BetweenKit branches should merge into task-28-build-2.0.0
until stable.
from between-kit.
Should we consider removing the readonly collectionView
property form the I3Collection
protocol? So far, its proved to be unnecessary. We could just require collections to be of type UIView<I3Collection>
... ?
from between-kit.
Just a side note: I think with the recent proposed 'drop handling' alg in #15, BetweenKit seems like it will be quite an opinionated framework.
from between-kit.
##Plan revision
###Phase 1
- Migrate the drag-n-drop routing logic into its own, isolated class DONE
- Allow for the gesture listener to be injected to this class DONE
- Create a manager-type class to register draggable components against and coordinate how the gesture recogniser is configured and injected NOT DONE
- Should fix #5, #6, #14 CLOSED
- Should allow for #11 CLOSED
- Should pave the way for #7 CLOSED, #16 IN PROGRESS, #22 CLOSED
###Phase 2
- Utility
I3Collection
implementations: DONEUICollectionView
UIView
with subviews Unnecessary
- Move to using
NSIndexPath
s instead ofCGPoint
s in data source methods to reduce boilerplate DONE - More functional example test cases:
- Migrate all of the examples from v1 DONE
- Add new examples covering: > 3 collections, mixtures of different types of collections, complex
drag data source configuration, custom rendering DONE - This should address #16 DONE
- Address limitation with deletion areas only available outside of all collections DONE
- Start exploring core data integration and experiment with persistent helpers NOT DONE
- Asynchronous drag delegation? As a user, I may want to retrieve the
I3DragDataSource
configuration asynchronously, maybe via a network request. For example, maybe I have an online TODO list app that needs to fetch an access control list from the server to determine whether I can rearrange 2 TODOs..- How can we offer an asynchronous delegate API via
I3DragDataSource
- How would we approach managing drag coordination during the asych call? Would we lock the UI? Would we be less coarse about it and just lock the items we're handling at that time?
- DONE - Added use case for this
- How can we offer an asynchronous delegate API via
editing
andmoving
integration and tests DONE
###Phase 3
- Travis / Jenkins
- Proof read all of our comments and existing READMEs throughout the framework, tests and use cases
- Memory profiling
- Documentation:
- README
- Overview of the project
- Overview of features
- Installations / Requirements / Dependencies
- Point to Other Docs
- Tests Intro
- Use Cases Intro
- Point to licenses
- Basic Usage
- What's New in 2.0.0
- New Features
- Deprecated Features
- Migration Tips
- Breaking Changes
- Legacy
- Bug Reporting and Contributions
- Where to report bugs
- Contribution Guidelines
- No particular Objective-C style
- Would be nice if methods were commented
- Full unit test coverage - travis must pass
- If it brings a significant new feature to the table, a use case might be required
- Basic Usage Guide
- Introduction of the framework components *remember to include a few docs around memory management
- Setting up a drag environment
- Etc..
- Unit Test - README
- Running them
- Unit Test components (Creation Methods, Fixtures, Mocks, etc)
- Use Cases
- Overview / Installation
- Index
- Licenses
- Fontawesome
- Main MIT License
- ... any others?
- README
- Generate a github website
- Change repo name
- Submit podspec to the CocoaPods repo
- Release
What we will do in the future:
- Document how one might implement their own
I3Collection
that is not a table or collection view (this would include examples of how to categorise or extendNSIndexPath
appropriately - Core Data integration
- Draggable 'base' controller - further help the user to set all this up
from between-kit.
Related Issues (20)
- CGPoint delegate options where possible
- Abstract away geometric conversion from the coordinator
- Scroll UICollectionView when dragging in progress HOT 2
- Fix link in README
- Mailing list
- Submit PRs to notable iOS community repos
- iOS 8.3, 8.4, 9.0 testing
- Dragging from collections in collectionview cells HOT 2
- Custom UICollectionViewFlowLayouts
- More detail in StackOverflow answers
- Use OCMock -invokeBlock and invokeBlockWithArguments
- Update copyright notices with correct dates
- Improve CocoaPods quality estimate HOT 1
- tvOS, watchOS integration?
- Functional tests
- Consider removing numbering scheme from Use Cases
- How to scroll UITableView while dragging UITableViewCell? HOT 3
- Get drag events while dragging. HOT 4
- Typo in Docs/Usage.md
- How to deactivate/activate dragging functionality?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from between-kit.