Learning Swift Second Edition : Develop the Skills Required to Create Compelling, Maintainable, and Robust IOS and OS X Apps with Swift - Andrew J Wagner (2016)