This took a lot longer than I had hoped, due mainly to all the details that needed to be addressed. I got through the OAuth authentication flow and basic project setup / layout in 3-4 hours, but then taking care of all the bits and pieces around getting communication between view controllers in place, all the different API calls, managing assets, auto layout fine tuning, I ended up at around 15 hours.
Good job! The point of this homework was to explore some challenges involved in developing a richer MVC client.
Good implementation.
Nice work with the dynamic constraint for the retweet.
For buttons with small images, you should still have the button be at least 30x30 or they are hard to tap.
If you get a chance, you should attempt more of the optional features. They are trickier than they appear and will help prepare you to build richer apps.
Here's my checklist as I'm reviewing the submissions:
Code styling. The New York Times has a good summary of appropriate Objective-C coding conventions, you should take a quick look here.
Was the current user persisted across restarts?
Did you create a custom Tweet cell and properly set up Auto Layout constraints?
Did you augment the User and Tweet model with the required properties?
Date parsing and formatting is expensive, so consider caching in models when you can.
Does tapping on a Tweet take you to a detailed Tweet view?
Is the detailed Tweet view styled like the mock?
Did you add both standard and retina (@2x) image assets? A new feature of XCode is to use the Images.xcassets, it makes it easier to handle the standard and retina assets. If you only included standard assets, it will be scaled for retina displays which makes them a little blurry.
/cc @nesquena @timothy1ee
This took a lot longer than I had hoped, due mainly to all the details that needed to be addressed. I got through the OAuth authentication flow and basic project setup / layout in 3-4 hours, but then taking care of all the bits and pieces around getting communication between view controllers in place, all the different API calls, managing assets, auto layout fine tuning, I ended up at around 15 hours.
Time for bed.