Hi Brian,
Very good animation. However, I have 2 improvement I want to share regarding to fullscreen dismissal
1.While in full mode and you are pulling down to scale down the appFullscreenController to the smallest, as you release, you will see the TodayController's cell (its twin brother) waiting there! It seem better we set alpha = 0 for that cell right before having fullscreen mode. We set it back to 1 in handleAppFullscreenDismissal's completion part
2. While in full mode, in case the description text is long and you have to scroll very down to bottom, as you press Close button, the view is trying to scroll up, not so fully, and disappearing before the whole view got removed, showing the TodayController's cell in the back with different view content, making the animation very funny :))
I found a solution that make this scrolling up completely and so the transition is smoothier, using
self.signFullscreenVC.tableView.scrollToRow(at: IndexPath(row: 0, section: 0), at: UITableView.ScrollPosition.top, animated: true)
at the beginning of handleAppFullscreenDismissal
Just some opinion. Let me know what you think. Thanks and cheer ;)