I made @_readingapp’s root view controller apply additionalSafeAreaInsets from keyboard frame change notifications and boom: whole app avoids the keyboard. Gist: gist.github.com/douglashill/41ea84f0ba59feecd3be51f21f73d501

7 hours later: @_readingapp Updated the Gist to fix it double counting device safe area inset. Thank you @geoffhackworth for pointing this out.

1 day later: A build with keyboard avoidance is now up. twitter.com/_readingapp/status/1237071512768831490