About the Design Patterns by Tutorials category

For any and all discussion on the Design Patterns by Tutorials book.

Hi! Just grabbed the book and it seems to me very promising - all pattern stuff is in one place. Though, few chapters are about MVC and MVVM and it’s great, but there are nothing about MVP, Viper and Clean Architecture.

Are you planning to add these patterns?

I’m glad you’re enjoying the book!

We included MVC and MVVM as these can be used as design patterns and are very commonly used on iOS. However, a case can definitely be made that these are architectural patterns, and they can definitely be used that way.

What’s the difference? Scope.

Architectural patterns define the structure for an entire app or subsystem. In general, you don’t have multiple architectural patterns used by the same app. Rather, you pick one and use it throughout.

Design patterns are meant to solve specific, common problems. You use them as needed and will typically use several in the same app.

MVP, VIPER and Clean Architecture are nearly always used as architectural patterns. Consequently, they are out of scope for this book.

However, that’s not to say we aren’t considering writing about them in a possible future book! :smile:

1 Like

Yep, I understand the difference, the presence of MVC and MVVM just confused me a little bit.

To be honest all of us understand that design patterns is a topic that will be needed at interview firsty and only then we can find something interesting for current projects. Patterns are certainly cool, but most of iOS apps are clients that just got json, parse it and display on the screen, and using advanced patterns is a such a rare case. On the other hand flexible architecture that could be expand and testable is always challenge! So please keep it in mind that some of your readers are looking forward to meat something like this (just).

PS BTW I really need a good book about testing that includes all technics, and also work with Quick & Nimble and Kakapo frameworks.

Page 136:

let app = UIApplication.shared
// let app2 = UIApplication()

“If you try to uncomment the let app2 line, you’ll get a compiler error!”

I haven’t received a compiler error :see_no_evil:

I am wondering, which app/tool did you use to generate the diagrams? Any recommendations?

We actually used keynote to create all of the diagrams in this book. We wanted them to have a stylistic look to go well with the RW theme. ;] However, this isn’t exactly the easiest way to create class diagrams.

For normal day-to-day projects, I’d recommend the following tools: