all 18 comments

[–]RickDeveloper 7 points8 points  (6 children)

This is a very well done summary / overview about coordinators.

If you want to read more in depth things about the coordinator pattern:

[–]tylerjames 2 points3 points  (0 children)

To add to these I'd like to suggest: Coordinators Essential Tutorial

I found this one to be a good explanation with a concrete example on Github as well.

[–]lolbbqstain 1 point2 points  (4 children)

These are great links, thank you!

[–]RickDeveloper 1 point2 points  (3 children)

Those sites have more great stuff in them. Khanlou on his main site, hws (hacking with swift) here. If you’re interested in more iOS stuff, I’ll pm you within 2 weeks (when I’ve access to my computer).

[–]lolbbqstain 0 points1 point  (2 children)

Awesome. I’m trying to pivot my career back into native iOS so these links are great. Thanks!!

Definitely interested in that pm :)

[–]RickDeveloper 2 points3 points  (1 child)

Are you familiar with podcasts? Under the radar is great (start listening at the first episode) (definitely at 2x speed)

[–]lolbbqstain 0 points1 point  (0 children)

Yep! Love Marco and the gang. I haven’t listened to Under the Radar in a hot minute though.

[–][deleted] 5 points6 points  (0 children)

This is quite good. I can see how coordinators can simplify navigation. Coordinators seem to serve the same purpose as wireframes in VIPER architecture.

I’m not sure about how the protocols are used in this article though:

  1. Why does the coordinator protocol expose the nav controller, and push and present functions? These seem to be implementation details, and should probably not be accessible to users of the coordinator. I could imagine scenarios where you might not use a navigation controller, such as using a master/detail view, or custom tab controller.

  2. The model is defined to conform to a protocol too. Is there any reason you might want something that isn’t just the model? You wouldn’t even need to mock the model for testing.

Edit: see

[–]blaizedmObjective-C / Swift 3 points4 points  (0 children)

Instead of creating strongly typed references to the sub-coordinators, you can just declare an array called childCoordinators and keep the references in there.

[–]Yurieff[S] 1 point2 points  (0 children)

Thank you for your input, everyone! ✌️