The Easy Eighty
Probably Followed by the Hard Twenty
Because there are some questions what the API we're programming against will look like, and about Model structure because of that, the team prioritized working on a section of the project that is mostly isolated from the API. One consequence of that is that the team started building out views and view controllers early, and are working without design right now.
Which means I get to look super productive because I'm doing basic data manipulation, and putting together the flow between views and not even thinking about styling. This means I'm throwing together entire workflows of screens in a day because putting a UITableView
on screen and throwing stock cells with labels in it for an array of data is easy.
It's entirely possible I'll be spending significantly more time later styling everything, making sure all the bits fit together smoothly, and generally polishing these screens than what it took to build them in the first place.
Another interesting side effect to spending so much time thinking in terms of raw functionality is I came up with slightly different than usual patterns for managing modally presented workflows for creating / editing data over multiple screens. The flow is executed as an operation, with a completion block that fires when the flow completes handling the data and removes any concept of presenting the workflow from the view controller that needs the data. This means that the implementation details like needing a navigation controller, or even a pre-populated navigation stack, are handled by the workflow manager rather than the presenting view controller. I may abstract these out another layer into the application router, but so far it's a very promising start to minimizing the linkage between different view controllers in the project.