pixelknitter / ByrdApp

A twitter client providing you a way to manage, tweet, and feeeed.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

iOS CodePath Review

pixelknitter opened this issue · comments

Please Review my App /cc @thecodepath

Had a few things I wanted to clean up if possible. Don't bother hitting the sign out button, it currently causes an issue with user persistence.

PS: I know if you cause the persistency crash because I integrated Crittercism ;)

Also, I can see if you make the network calls to twitter. Yay!

I've added instructions now.

👍 nice work. The point of this homework was to explore some challenges involved in developing a richer MVC client. A few notes after checking out the code:

  • You should move all unnecessarily public properties to the private class extension in the .m file.
  • You shouldn't access your private instance variable directly (names with underscores). The compiler generates important things in the getters and setters that get circumvented when the instance variables are used directly. Always use self.property to access a property
  • Nice work specifying the Auto Layout constraints.
  • Note that you should try handling the conditionally present retweet label in the cells. This is a situation where its not possible to specify the behavior that you want solely using Interface Builder.
  • Nice work setting up the controls within the Tweet cells. It can sometimes be hard to have a clean design for embedded controls because it usually involves cumbersome plumbing. This is an instance where I think having the model handle the network action helps greatly simplify the implementation.
  • I see that you used Mantle, it's a lightweight ORM that eliminates a lot of boilerplate, and it's also compatible with Core Data if your project requires that.
  • Nice work handling the post tweet insertion into the feed. In real MVC apps, the more polished experiences have to do a certain amount of local object management to make a fully seamless experience.

Please Review my App /cc @thecodepath

Had some clean up of some custom views that would load the data due to it not loading from bundle. However, I fixed that and cleaned up a few more things.

Nice work! We added this homework so that you'll have the experience building an app that's more similar in complexity to a production app. It's also useful to have practical experience building a container view controller, which is a more advanced topic. The optional account switching feature is interesting because you have to think about how TwitterClient is caching the access token to make sure it works correctly for multiple accounts. Displaying the account switching screen is implemented using custom view controller transitions.

A few notes after checking out the code:

  • Nice work encapsulating the properties into the private class extension.
  • You shouldn't access your private instance variable directly (names with underscores). The compiler generates important things in the getters and setters that get circumvented when the instance variables are used directly. Always use self.property to access a property.
  • You should always specify Auto Layout constraints in your nibs.
  • Note that you should resolve all the Auto Layout constraint warnings in your nibs.
  • Nice work implementing the profile view controller so that it doesn't duplicate code in the timeline view controller.
  • Nice work encapsulating the properties of the custom cells that you added.
  • You should consider what a more generic design for your hamburger controller might look like. Right now, it's tightly bound to this Twitter application.
  • You should consider implementing the blurred table view header. There are several approaches here that are all valid. You can implement the header has a table header, a section header, or a cell. My preferred approach is to implement it as a table header, it's the easiest way to flow the image above the content. These detail touches are where you really learn the nooks and crannies of the framework.