Genre: Development / Programming In this project will see how to implement a beautiful and engaging flat design for the Ribbit app from Build a Self-Destructing Message iPhone App. We will start out by implementing custom login and sign up screens including how to manage the soft keyboard when it covers input fields. Then we will heavily customize the table view controllers that make up most of the app including using custom cell layouts. Finally well add a few improvements to the app like pull-to-refresh in the Inbox and getting Gravatar images for users. [hr] Implementing Custom Login and Sign Up Screens In this stage we will take some time to improve the interface by adding a custom icon and splash screen and improving the login and sign up screens. Well see how to add a background image to a view controller and position controls on top of it. Using Auto Layout and Managing the Keyboard One of the great features added to iOS recently is Auto Layout which allows us to design layouts that adapt to different screen sizes and resolutions. In this stage well see how to use some of the basic constraints of Auto Layout to make our Login and Sign Up screens look great on both 3.5 inch and 4 inch iPhones. Well also see how to handle the common case where the iOS keyboard covers important areas of the screen. Customizing Table View Controllers Well go a bit further with our interface improvements in this stage. Well start out with styling the navigation and tab bars and then well see how to create custom layouts for table view cells that we can use throughout the app. Finishing the User Interface Most of the user interface is complete but to really set our app apart we want to polish all the details. In this stage we will add a pull-to-refresh control to the Inbox add user images from Gravatar.com and see how to use Grand Central Dispatch to manage asynchronous tasks. What youll learn Auto Layout Managing the Keyboard UIAppearance for Navigation and Tab bars Custom table view cells UIRefreshControl Grand Central Dispatch Hidden Content: You must 'reply' before you can see the hidden content.