The main issue that you'll have is not the email as an optional field but you will need to override the entire customer login feature, since Magento uses email / password combination to log and check user existance.
The easiest and less painfull way to achieve what you need is using a third party module. There are several vendors that you can find such as Magecomp and their module: https://magecomp.com/magento-2-mobile-login-email-optional.html