--

With other words, the use case is pretty pointless and you can use the protocol in a more straightforward manner. He overcomplicated some stuff, and the example is quite simple and it looks like overenginnering. I get it.

But you just hate on him instead of providing constructive feedback. I've seen so many projects collapse under the strong coupling with API and dependency injection (which you seem to hate), used properly, might have saved those codebases.

I've seen also countless examples of implementations claiming to implement Clean Architecture, and throwing layers at the project just for the sake of it was never the intention.

My take is incremental design, let it emerge while developing the product. If it is big, complex, you have options to address some concerns, like depending on components that change a lot. But if you have a Pokedex list app, just keep it simple.

--

--