-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New features #27
New features #27
Conversation
# Conflicts: # README.md
…rdinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers.
@@ -0,0 +1,8 @@ | |||
import Foundation | |||
|
|||
enum DrawerState: Equatable { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So compiler now can synthesize equatable?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For enums without associated values I think it had for a while.
Oh wait, missed that CGFloat
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No. The implementation is internal
because it depends on a custom equal
method that is also internal
(actually, private
but it will soon have to be internal
). See the PresentationController
file.
extension DrawerState {
static func ==(lhs: DrawerState, rhs: DrawerState) -> Bool {
switch (lhs, rhs) {
case (.collapsed, .collapsed),
(.partiallyExpanded, .partiallyExpanded),
(.fullyExpanded, .fullyExpanded):
return true
case let (.transitioning(lhsCurPosY), .transitioning(rhsCurPosY)):
return equal(lhsCurPosY, rhsCurPosY)
default:
return false
}
}
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The issue is that equality of floating point numbers is a tricky thing, so I have
private func equal(_ lhs: CGFloat, _ rhs: CGFloat) -> Bool {
let epsilon: CGFloat = 1e-6
return abs(lhs - rhs) <= epsilon
}
|
||
func cornerRadius(at state: DrawerState) -> CGFloat { | ||
guard maximumCornerRadius != 0 && drawerPartialY != 0 | ||
&& drawerPartialY != containerViewH else { return 0 } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
guard maximumCornerRadius != 0
&& drawerPartialY != 0
&& drawerPartialY != containerViewH
else { return 0 }
I think it's more aligned to our conventions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in 4d92109.
} else if smallerThanOrEqual(positionY, drawerPartialY) { | ||
return (supportsPartialExpansion ? drawerPartialY : 0) | ||
} else { | ||
return (supportsPartialExpansion ? drawerPartialY : containerViewH) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These pharentesis :S
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry. Unless more people complain about them, I'm leaving them as is. I find that they improve readability.
animator.addCompletion { _ in | ||
self.presentedViewController.dismiss(animated: true) | ||
} | ||
} | ||
|
||
if maxCornerRadius > 0 && endPosY != drawerPartialY { | ||
if maxCornerRadius != 0 && (endState == .collapsed || endState == .fullyExpanded) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
here I like them :D
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here they are needed, else the boolean logic would have a different result.
guard endPosY != currentDrawerY else { return } | ||
func addCornerRadiusAnimationEnding(at endState: DrawerState) { | ||
guard maximumCornerRadius != 0 && drawerPartialY != 0 | ||
&& endState != currentDrawerState else { return } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
indentation per two comments above
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in c83e689.
let isMovingQuickly = (flickSpeedThreshold > 0) && (abs(velocityY) > flickSpeedThreshold) | ||
func nextStateFrom(currentState: DrawerState, speedY: CGFloat) -> DrawerState { | ||
let isNotMoving = (speedY == 0) | ||
let isMovingUp = (speedY < 0) // recall that Y-axis points down |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does // recall that Y-axis points down
mean?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's somewhat counter-intuitive that a negative speed means moving up rather than down, and the reason is that the vertical axis is positive pointing down, hence the comment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
super minor stuff but lgtm
case partiallyExpanded | ||
case fullyExpanded | ||
case transitioning(CGFloat) // current drawer Y position | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
case transitioning(currentY: CGFloat)
is, at least in my opinion, clearer than adding a documenting comment.
* Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07a. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments.
* Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07a. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments.
* Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07a. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and preparation for release 0.3.0 (#30) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Large refactoring work in preparation for adding concurrent animations. * WIP on concurrent animations * Replaced the suffix Signature with Handler in DrawerAnimationActions. * Added a number of TODO comments * Minor change, for clarity. * Changed some config params in the demo app. * Turns out it's ok to simply return false in these two comparisons. * Fixed code formatting. * Fixed a subtle bug whereby UIKit animations that ended at positions differing by as much as 0.5 points were considered to have ended at different points when they should have ended at the same position. * Fixed a bug whereby scaling animated in only one direction. * Added example animations from the collapsed state to the fully expanded state, and back. * Added support for automatically adding a handle view and automatically animating it. * Added support for not covering a portion of the screen when fully expanding the drawer. * Removed TODOs that have been handled already. * Small refactoring. * More refactoring. * Added previous gif. * Display the gifs at the same size. * Removed an extraneous comment. * Minor English corrections. * Renamed some properties to avoid abbreviations. Not all abbreviations could be removed, however, because Swift doesn't allow functions and properties to have the same name. * Merge master into dev (#32) * Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07a. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * Removed files that were supposed to have been removed already. * Removed files that were supposed to have been removed already.
* Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07a. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * DrawerKit 0.3.0 release (#35) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07a. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and preparation for release 0.3.0 (#30) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Large refactoring work in preparation for adding concurrent animations. * WIP on concurrent animations * Replaced the suffix Signature with Handler in DrawerAnimationActions. * Added a number of TODO comments * Minor change, for clarity. * Changed some config params in the demo app. * Turns out it's ok to simply return false in these two comparisons. * Fixed code formatting. * Fixed a subtle bug whereby UIKit animations that ended at positions differing by as much as 0.5 points were considered to have ended at different points when they should have ended at the same position. * Fixed a bug whereby scaling animated in only one direction. * Added example animations from the collapsed state to the fully expanded state, and back. * Added support for automatically adding a handle view and automatically animating it. * Added support for not covering a portion of the screen when fully expanding the drawer. * Removed TODOs that have been handled already. * Small refactoring. * More refactoring. * Added previous gif. * Display the gifs at the same size. * Removed an extraneous comment. * Minor English corrections. * Renamed some properties to avoid abbreviations. Not all abbreviations could be removed, however, because Swift doesn't allow functions and properties to have the same name. * Merge master into dev (#32) * Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07a. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * Removed files that were supposed to have been removed already. * Removed files that were supposed to have been removed already. * Changed how the drawer animation requests the animation actions from the presenting and presented view controllers. * Renamed local variables. * Added support for broadcasting notifications when the drawer is tapped, when transitions are about to start, and when they are completed. * Updated circle CI config file to use Xcode 9.1 * Updated ChangeLog. * Updated ReadMe. * Updated podspec. * Fixed issue with using guard. * Moved the Notifications source file to the public API. * Added example of how to use notifications. * Fixed circle CI config issue. * Removed extra blank lines. * Replaced "_$key$_" with a better key name. * Ooops... * Made animation actions no longer mutable.
* Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and preparation for release 0.3.0 (#30) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Large refactoring work in preparation for adding concurrent animations. * WIP on concurrent animations * Replaced the suffix Signature with Handler in DrawerAnimationActions. * Added a number of TODO comments * Minor change, for clarity. * Changed some config params in the demo app. * Turns out it's ok to simply return false in these two comparisons. * Fixed code formatting. * Fixed a subtle bug whereby UIKit animations that ended at positions differing by as much as 0.5 points were considered to have ended at different points when they should have ended at the same position. * Fixed a bug whereby scaling animated in only one direction. * Added example animations from the collapsed state to the fully expanded state, and back. * Added support for automatically adding a handle view and automatically animating it. * Added support for not covering a portion of the screen when fully expanding the drawer. * Removed TODOs that have been handled already. * Small refactoring. * More refactoring. * Added previous gif. * Display the gifs at the same size. * Removed an extraneous comment. * Minor English corrections. * Renamed some properties to avoid abbreviations. Not all abbreviations could be removed, however, because Swift doesn't allow functions and properties to have the same name. * Merge master into dev (#32) * Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and prep for release 0.3.1 (#36) * Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * DrawerKit 0.3.0 release (#35) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and preparation for release 0.3.0 (#30) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Large refactoring work in preparation for adding concurrent animations. * WIP on concurrent animations * Replaced the suffix Signature with Handler in DrawerAnimationActions. * Added a number of TODO comments * Minor change, for clarity. * Changed some config params in the demo app. * Turns out it's ok to simply return false in these two comparisons. * Fixed code formatting. * Fixed a subtle bug whereby UIKit animations that ended at positions differing by as much as 0.5 points were considered to have ended at different points when they should have ended at the same position. * Fixed a bug whereby scaling animated in only one direction. * Added example animations from the collapsed state to the fully expanded state, and back. * Added support for automatically adding a handle view and automatically animating it. * Added support for not covering a portion of the screen when fully expanding the drawer. * Removed TODOs that have been handled already. * Small refactoring. * More refactoring. * Added previous gif. * Display the gifs at the same size. * Removed an extraneous comment. * Minor English corrections. * Renamed some properties to avoid abbreviations. Not all abbreviations could be removed, however, because Swift doesn't allow functions and properties to have the same name. * Merge master into dev (#32) * Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added Drawe…
… 0.3.1 (#38) * Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * DrawerKit 0.3.0 release (#35) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and preparation for release 0.3.0 (#30) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Large refactoring work in preparation for adding concurrent animations. * WIP on concurrent animations * Replaced the suffix Signature with Handler in DrawerAnimationActions. * Added a number of TODO comments * Minor change, for clarity. * Changed some config params in the demo app. * Turns out it's ok to simply return false in these two comparisons. * Fixed code formatting. * Fixed a subtle bug whereby UIKit animations that ended at positions differing by as much as 0.5 points were considered to have ended at different points when they should have ended at the same position. * Fixed a bug whereby scaling animated in only one direction. * Added example animations from the collapsed state to the fully expanded state, and back. * Added support for automatically adding a handle view and automatically animating it. * Added support for not covering a portion of the screen when fully expanding the drawer. * Removed TODOs that have been handled already. * Small refactoring. * More refactoring. * Added previous gif. * Display the gifs at the same size. * Removed an extraneous comment. * Minor English corrections. * Renamed some properties to avoid abbreviations. Not all abbreviations could be removed, however, because Swift doesn't allow functions and properties to have the same name. * Merge master into dev (#32) * Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * Removed files that were supposed to have been removed already. * Removed files that were supposed to have been removed already. * DrawerKit release 0.3.1 (#37) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and preparation for release 0.3.0 (#30) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Large refactoring work in preparation for adding concurrent animations. * WIP on concurrent animations * Replaced the suffix Signature with Handler in DrawerAnimationActions. * Added a number of TODO comments * Minor change, for clarity. * Changed some config params in the demo app. * Turns out it's ok to simply return false in these two comparisons. * Fixed code formatting. * Fixed a subtle bug whereby UIKit animations that ended at positions differing by as much as 0.5 points were considered to have ended at different points when they should have ended at the same position. * Fixed a bug whereby scaling animated in only one direction. * Added example animations from the collapsed state to the fully expanded state, and back. * Added support for automatically adding a handle view and automatically animating it. * Added support for not covering a portion of the screen when fully expanding the drawer. * Removed TODOs that have been handled already. * Small refactoring. * More refactoring. * Added previous gif. * Display the gifs at the same size. * Removed an extraneous comment. * Minor English corrections. * Renamed some properties to avoid abbreviations. Not all abbreviations could be removed, however, because Swift doesn't allow functions and properties to have the same name. * Merge master into…
* Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and preparation for release 0.3.0 (#30) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Large refactoring work in preparation for adding concurrent animations. * WIP on concurrent animations * Replaced the suffix Signature with Handler in DrawerAnimationActions. * Added a number of TODO comments * Minor change, for clarity. * Changed some config params in the demo app. * Turns out it's ok to simply return false in these two comparisons. * Fixed code formatting. * Fixed a subtle bug whereby UIKit animations that ended at positions differing by as much as 0.5 points were considered to have ended at different points when they should have ended at the same position. * Fixed a bug whereby scaling animated in only one direction. * Added example animations from the collapsed state to the fully expanded state, and back. * Added support for automatically adding a handle view and automatically animating it. * Added support for not covering a portion of the screen when fully expanding the drawer. * Removed TODOs that have been handled already. * Small refactoring. * More refactoring. * Added previous gif. * Display the gifs at the same size. * Removed an extraneous comment. * Minor English corrections. * Renamed some properties to avoid abbreviations. Not all abbreviations could be removed, however, because Swift doesn't allow functions and properties to have the same name. * Merge master into dev (#32) * Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and prep for release 0.3.1 (#36) * Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * DrawerKit 0.3.0 release (#35) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and preparation for release 0.3.0 (#30) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Large refactoring work in preparation for adding concurrent animations. * WIP on concurrent animations * Replaced the suffix Signature with Handler in DrawerAnimationActions. * Added a number of TODO comments * Minor change, for clarity. * Changed some config params in the demo app. * Turns out it's ok to simply return false in these two comparisons. * Fixed code formatting. * Fixed a subtle bug whereby UIKit animations that ended at positions differing by as much as 0.5 points were considered to have ended at different points when they should have ended at the same position. * Fixed a bug whereby scaling animated in only one direction. * Added example animations from the collapsed state to the fully expanded state, and back. * Added support for automatically adding a handle view and automatically animating it. * Added support for not covering a portion of the screen when fully expanding the drawer. * Removed TODOs that have been handled already. * Small refactoring. * More refactoring. * Added previous gif. * Display the gifs at the same size. * Removed an extraneous comment. * Minor English corrections. * Renamed some properties to avoid abbreviations. Not all abbreviations could be removed, however, because Swift doesn't allow functions and properties to have the same name. * Merge master into dev (#32) * Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added Drawe…
* Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * DrawerKit 0.3.0 release (#35) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and preparation for release 0.3.0 (#30) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Large refactoring work in preparation for adding concurrent animations. * WIP on concurrent animations * Replaced the suffix Signature with Handler in DrawerAnimationActions. * Added a number of TODO comments * Minor change, for clarity. * Changed some config params in the demo app. * Turns out it's ok to simply return false in these two comparisons. * Fixed code formatting. * Fixed a subtle bug whereby UIKit animations that ended at positions differing by as much as 0.5 points were considered to have ended at different points when they should have ended at the same position. * Fixed a bug whereby scaling animated in only one direction. * Added example animations from the collapsed state to the fully expanded state, and back. * Added support for automatically adding a handle view and automatically animating it. * Added support for not covering a portion of the screen when fully expanding the drawer. * Removed TODOs that have been handled already. * Small refactoring. * More refactoring. * Added previous gif. * Display the gifs at the same size. * Removed an extraneous comment. * Minor English corrections. * Renamed some properties to avoid abbreviations. Not all abbreviations could be removed, however, because Swift doesn't allow functions and properties to have the same name. * Merge master into dev (#32) * Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * Removed files that were supposed to have been removed already. * Removed files that were supposed to have been removed already. * DrawerKit release 0.3.1 (#37) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and preparation for release 0.3.0 (#30) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Large refactoring work in preparation for adding concurrent animations. * WIP on concurrent animations * Replaced the suffix Signature with Handler in DrawerAnimationActions. * Added a number of TODO comments * Minor change, for clarity. * Changed some config params in the demo app. * Turns out it's ok to simply return false in these two comparisons. * Fixed code formatting. * Fixed a subtle bug whereby UIKit animations that ended at positions differing by as much as 0.5 points were considered to have ended at different points when they should have ended at the same position. * Fixed a bug whereby scaling animated in only one direction. * Added example animations from the collapsed state to the fully expanded state, and back. * Added support for automatically adding a handle view and automatically animating it. * Added support for not covering a portion of the screen when fully expanding the drawer. * Removed TODOs that have been handled already. * Small refactoring. * More refactoring. * Added previous gif. * Display the gifs at the same size. * Removed an extraneous comment. * Minor English corrections. * Renamed some properties to avoid abbreviations. Not all abbreviations could be removed, however, because Swift doesn't allow functions and properties to have the same name. * Merge master into dev (#32) * Update README.md (#23) * Release 0.2.0 (#…
* Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and preparation for release 0.3.0 (#30) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Large refactoring work in preparation for adding concurrent animations. * WIP on concurrent animations * Replaced the suffix Signature with Handler in DrawerAnimationActions. * Added a number of TODO comments * Minor change, for clarity. * Changed some config params in the demo app. * Turns out it's ok to simply return false in these two comparisons. * Fixed code formatting. * Fixed a subtle bug whereby UIKit animations that ended at positions differing by as much as 0.5 points were considered to have ended at different points when they should have ended at the same position. * Fixed a bug whereby scaling animated in only one direction. * Added example animations from the collapsed state to the fully expanded state, and back. * Added support for automatically adding a handle view and automatically animating it. * Added support for not covering a portion of the screen when fully expanding the drawer. * Removed TODOs that have been handled already. * Small refactoring. * More refactoring. * Added previous gif. * Display the gifs at the same size. * Removed an extraneous comment. * Minor English corrections. * Renamed some properties to avoid abbreviations. Not all abbreviations could be removed, however, because Swift doesn't allow functions and properties to have the same name. * Merge master into dev (#32) * Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and prep for release 0.3.1 (#36) * Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * DrawerKit 0.3.0 release (#35) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and preparation for release 0.3.0 (#30) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Large refactoring work in preparation for adding concurrent animations. * WIP on concurrent animations * Replaced the suffix Signature with Handler in DrawerAnimationActions. * Added a number of TODO comments * Minor change, for clarity. * Changed some config params in the demo app. * Turns out it's ok to simply return false in these two comparisons. * Fixed code formatting. * Fixed a subtle bug whereby UIKit animations that ended at positions differing by as much as 0.5 points were considered to have ended at different points when they should have ended at the same position. * Fixed a bug whereby scaling animated in only one direction. * Added example animations from the collapsed state to the fully expanded state, and back. * Added support for automatically adding a handle view and automatically animating it. * Added support for not covering a portion of the screen when fully expanding the drawer. * Removed TODOs that have been handled already. * Small refactoring. * More refactoring. * Added previous gif. * Display the gifs at the same size. * Removed an extraneous comment. * Minor English corrections. * Renamed some properties to avoid abbreviations. Not all abbreviations could be removed, however, because Swift doesn't allow functions and properties to have the same name. * Merge master into dev (#32) * Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added Drawe…
* Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * DrawerKit 0.3.0 release (#35) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and preparation for release 0.3.0 (#30) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Large refactoring work in preparation for adding concurrent animations. * WIP on concurrent animations * Replaced the suffix Signature with Handler in DrawerAnimationActions. * Added a number of TODO comments * Minor change, for clarity. * Changed some config params in the demo app. * Turns out it's ok to simply return false in these two comparisons. * Fixed code formatting. * Fixed a subtle bug whereby UIKit animations that ended at positions differing by as much as 0.5 points were considered to have ended at different points when they should have ended at the same position. * Fixed a bug whereby scaling animated in only one direction. * Added example animations from the collapsed state to the fully expanded state, and back. * Added support for automatically adding a handle view and automatically animating it. * Added support for not covering a portion of the screen when fully expanding the drawer. * Removed TODOs that have been handled already. * Small refactoring. * More refactoring. * Added previous gif. * Display the gifs at the same size. * Removed an extraneous comment. * Minor English corrections. * Renamed some properties to avoid abbreviations. Not all abbreviations could be removed, however, because Swift doesn't allow functions and properties to have the same name. * Merge master into dev (#32) * Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * Removed files that were supposed to have been removed already. * Removed files that were supposed to have been removed already. * DrawerKit release 0.3.1 (#37) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and preparation for release 0.3.0 (#30) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Large refactoring work in preparation for adding concurrent animations. * WIP on concurrent animations * Replaced the suffix Signature with Handler in DrawerAnimationActions. * Added a number of TODO comments * Minor change, for clarity. * Changed some config params in the demo app. * Turns out it's ok to simply return false in these two comparisons. * Fixed code formatting. * Fixed a subtle bug whereby UIKit animations that ended at positions differing by as much as 0.5 points were considered to have ended at different points when they should have ended at the same position. * Fixed a bug whereby scaling animated in only one direction. * Added example animations from the collapsed state to the fully expanded state, and back. * Added support for automatically adding a handle view and automatically animating it. * Added support for not covering a portion of the screen when fully expanding the drawer. * Removed TODOs that have been handled already. * Small refactoring. * More refactoring. * Added previous gif. * Display the gifs at the same size. * Removed an extraneous comment. * Minor English corrections. * Renamed some properties to avoid abbreviations. Not all abbreviations could be removed, however, because Swift doesn't allow functions and properties to have the same name. * Merge master into dev (#32) * Update README.md (#23) * Release 0.2.0 (#…
* Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * DrawerKit 0.3.0 release (#35) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and preparation for release 0.3.0 (#30) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Large refactoring work in preparation for adding concurrent animations. * WIP on concurrent animations * Replaced the suffix Signature with Handler in DrawerAnimationActions. * Added a number of TODO comments * Minor change, for clarity. * Changed some config params in the demo app. * Turns out it's ok to simply return false in these two comparisons. * Fixed code formatting. * Fixed a subtle bug whereby UIKit animations that ended at positions differing by as much as 0.5 points were considered to have ended at different points when they should have ended at the same position. * Fixed a bug whereby scaling animated in only one direction. * Added example animations from the collapsed state to the fully expanded state, and back. * Added support for automatically adding a handle view and automatically animating it. * Added support for not covering a portion of the screen when fully expanding the drawer. * Removed TODOs that have been handled already. * Small refactoring. * More refactoring. * Added previous gif. * Display the gifs at the same size. * Removed an extraneous comment. * Minor English corrections. * Renamed some properties to avoid abbreviations. Not all abbreviations could be removed, however, because Swift doesn't allow functions and properties to have the same name. * Merge master into dev (#32) * Update README.md (#23) * Release 0.2.0 (#28) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * Removed files that were supposed to have been removed already. * Removed files that were supposed to have been removed already. * DrawerKit release 0.3.1 (#37) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * DrawerKit release 0.0.1 (#13) (#14) * Added git ignore file * Added project workspace * Added tab bar template project * Added DrawerKit empty framework * Added basic view controllers and storyboards * Fixed broken outlets * Added implementation of DrawerKit. A few bits to complete still. * Hooked up the view controllers to the custom presentation. * Added clamping to the three possible resting positions of the drawer * Added more configuration to the presenting VC * Fixed a few glitches related to allowing partial expansion or not, and some refactoring. * Removed the two timing configurations and now using only one for all animations. * Added support for not having the gesture recognisers. * Fixed a potential division by zero. * Adding more configuration controls to presenting VC. WIP. * Added debug mode. * Added some TODOs * Renamed a function to make it clear it's a debugging feature. * Minor refactoring. * Renamed some source files for better clarity of intention. * Removed source headers. * Changed the presented VC to make a larger drawer (easier to play with). * Changed some parameters as per Sam's input. * Improved behaviour of corner rounding at the two edges of the screen. Still not a perfect solution because the animator's completion block is, surprisingly, not always called. Apparently, that's a bug in UIViewPropertyAnimator. * Made the logic for the drawer behaviour easier to read, because Sergey doesn't like `guard` with boolean statements. ;) * Moved some code closer to where it's actually used. * Minor formatting. * Added a fix to the corner-radius animation issue whereby the corner radius would not be set to zero because the property animator's completion would not always be called. Now we force it to zero on presentationTransitionDidEnd() (for the appropriate drawer ending positions). * Disabled automatic code signing. * The heights of the bands surrounding the resting position of the drawer are now given in absolute rather than relative terms. * Oopsie... committed a compiler error. Fixed now. * Added a scrollview to the presented view controller in the demo app, for testing how scrolling interacts with the drag gesture recogniser in the presentation controller. * Added an interaction controller, the first step in fixing the non-interactive presentation/dismissal itself. * Renamed TransitionAnimator to AnimationController. * Renamed a file to match the extension it's about. * Duh, it was supposed to be AnimationController, not AnimatorController. * Implemented interactive controller for the presentation and dismissal, and cleaned up the code for the animation controller (it doesn't need to know anything about the drawers). * Added license file and CocoaPods podspec. Not passing lint just yet. * Removed indirect access to configuration parameters. * Removed currently unused source file TransitionGeometry. * Fixed company name in the license file. * Cleared the team entry in the demo app. * Demo app: adding controls for all the configurable parameters. WIP. * Added control for manipulating cubic Bezier control points, CubicBezierView. * Added all the controls to the presenter VC. * Fixed a TODO comment. * Make sure that durationInSeconds is a positive value. * Removed all references to coversStatusBar since that hasn't been implemented yet. * Make sure that flickSpeedThreshold is a non-negative value. Also, if zero, disables support for flicking. * Make sure that upperMarkGap and lowerMarkGap are non-negative values. * Only add debugging mark lines if at least one of upperMarkGap and lowerMarkGap is a positive value. * Make sure that maximumCornerRadius is a non-negative value. * Only animate the corner radius if maximumCornerRadius is strictly positive. * Make sure that numberOfTapsForOutsideDrawerDismissal is a non-negative value. * Resolved an issue with animating rounding the presented view corners. * Simplified the demo app to its bare essentials. No more configuration controls to the wazoo. * Added based documentation to the library. * Preliminary version of README. WIP. * Removed unused assets. * Added some pseudo-code to the README, to explain the presentation/dismissal logic. * Code style change. * Removed unnecessary [weak self] capture lists. * Changed default value of durationInSeconds from 0.8 to 0.3 seconds. * Fixed a botched global search/replace in DrawerConfiguration+Equatable. * Renamed evil local gr variables to less evil names. * Fixed guard statements as per comments. * Removed a comment. * Removed a protocol extension. * Make sure that the height of the partially expanded drawer is non-negative. * Added documentation to all exposed public entities. * Style change as per comments. * Fixed documentation. * Updated README file. * Tweaked the README file. * Decreased the deployment target requirement, from 10.3 to 10.0. * Removed hidden extension in the LICENSE file. * Fixed source_files entry in the podspec. Removed the exclude_files entry. * Added a .swift-version file with the appropriate version of Swift to pod lib lint the pod. * Fixed the homepage in the podspec. * Fixed a bug when running under iOS 10 in which the initial presentation animation doesn't complete, therefore not invoking viewDidAppear, which causes the drawer not to show up at all. The work-around means that the initial presentation and dismissal aren't interactive but Product signed off on that decision. The drawers work fine under iOS 11. * Style change. * Killed the use of IUO references. * Changed author email address in the podspec. * Added support for Carthage. * [ci skip] Removed a commented out section from the README. Also, an excuse to turn CI off since DrawerKit fails it for lack of configuration for testing. * Added CircleCI config file. (#9) * Added CircleCI config file. * Changed circle.yml to "test" with the simulator, which disables testing * Let's try this one more time, shall we? * And again * Fixed circle.yml * And again * Fixed circle.yml * Fixed circle.yml. * Added CircleCI badge to README. * Simplified circle.yml build command. * Added dependency management commands to circle.yml * Fixed podspec source item. (#12) * Fixed podspec source item. * Missed the s in https. * Add gif and fixes the circle CI badge. (#17) * Adds a gif and fixes the circleci badge. * Moved the gif down a bit. * Removed extra space below the gif. * Changes version from 0.0.1 to 0.1. (#18) * Add missing link to Carthage (#15) * Fix to README (#21) * Changed version number from 0.0.1 to 0.1.1 in the dependency management sections of the README file. * Fix README as per David's suggestion. * Update podspec in preparation for release 0.1.2. * Revert "Update podspec in preparation for release 0.1.2." This reverts commit df1c07aa3ab36e1b82fc630ac847695edc928818. * Add 4 UI tests to check the Drawer Kit demo app is working (#22) - Open the drawer - Close the drawer - Slide to full screen - Tap close on fully open drawer * Run UI Tests as part of the CircleCI build (#25) * Experiment in running the UI tests as part of the circleci build * Fixed name in scheme * Change simulator being used to match local environment * Add scheme for demo with UI tests * Between a branch build and the merge the version available for the simulator seems to have changed. This updates the yml file to reflect this (#26) * New features (#27) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Tweaked the demo. * Added ChangeLog and updated ReadMe. * More changes to ReadMe. * Updated podspec. * More changes to the ChangeLog and ReadMe files. * Fixed guard indentation, as per comments. * Fixed guard indentations, as per comments. * New features and preparation for release 0.3.0 (#30) * Update README.md (#23) * Fixed version number in Carthage section. * Renamed some properties and functions, for better clarity of intention. * More renaming along the same lines as the last commit. * Added support for tapping on the drawer to fully present it * More renaming. * Turned on debug mode in the demo app. * Make sure that quantities are always in their expected ranges. * Introduced an enumeration for drawer states * Removed extra blank line * Replaced the DrawerPresenting protocol with a new protocol, DrawerCoordinating, and made it so that objects other than view controllers can also coordinate the presentation of drawers. * Changed some configuration parameters in the demo app. * Large refactoring work in preparation for adding concurrent animations. * WIP on concurrent animations * Replaced the suffix Signature with Handler in DrawerAnimationActions. * Added a number of TODO comments * Minor change, for clarity. * Changed some config params in the demo app. * Turns out it's ok to simply return false in these two comparisons. * Fixed code formatting. * Fixed a subtle bug whereby UIKit animations that ended at positions differing by as much as 0.5 points were considered to have ended at different points when they should have ended at the same position. * Fixed a bug whereby scaling animated in only one direction. * Added example animations from the collapsed state to the fully expanded state, and back. * Added support for automatically adding a handle view and automatically animating it. * Added support for not covering a portion of the screen when fully expanding the drawer. * Removed TODOs that have been handled already. * Small refactoring. * More refactoring. * Added previous gif. * Display the gifs at the same size. * Removed an extraneous comment. * Minor English corrections. * Renamed some properties to avoid abbreviations. Not all abbreviations could be removed, however, because Swift doesn't allow functions and properties to have the same name. * Merge master into dev (#32) * Update README.md (#23) * Release 0.2.0 (#…
This PR adds the following changes:
Release 0.2.0 breaks backward compatibility with the earlier release, since one of the protocols has disappeared and a new one has been added. Specific changes and new features are as follows:
The presenting view controller is no longer required to conform to
DrawerPresenting
. In fact,DrawerPresenting
no longer exists. Instead, a new protocol was created to take its place,DrawerCoordinating
, so that any object can conform to it and be responsible for vending the drawer display controller. Of course, the presenting view controller can still fulfil that responsibility but it no longer must do so.Added tap-to-expand. Now, if the corresponding configuration boolean is turned on, tapping on the drawer when it's in its partially expanded state will trigger it to transition to its fully expanded state.
Added some under-the-hood improvements in preparation for adding upcoming new features.