iOS 8 Programming: An End-to-End Approach